Skip to main content
Ultra Feature. Requires an Ultra subscription. Get started at api.mathematicalcompany.com
What is this? When you trade in one market, correlated markets move too. The cross-impact matrix quantifies this spillover: how much does a $1 trade in market A move the price of market B? Use it to estimate the true cost of multi-market trades and to avoid inadvertently moving prices against your other positions.

Cross-Impact Matrix

When you trade in one prediction market, correlated markets move. The cross-impact matrix quantifies this relationship: how much does a $1 trade in market A move the price of market B? Horizon estimates this matrix from synchronized return and volume data, then exposes it for cost-aware execution and portfolio construction.

Cross-Impact Estimation

hz.estimate_cross_impact() computes the N x N impact matrix from return and volume histories.

Streaming Estimator

CrossImpactEstimator maintains a rolling window and updates the matrix incrementally as new data arrives.

Impact Decomposition

Separates self-impact (diagonal) from cross-impact (off-diagonal) to identify contagion channels.

Pipeline Integration

hz.cross_impact_monitor() injects the live impact matrix into your strategy context each cycle.

hz.estimate_cross_impact

Estimate the cross-impact matrix from synchronized return and volume matrices. The estimator regresses price changes in each market against signed volume flow in all markets.

CrossImpactMatrix Type

The matrix is generally asymmetric: trading in the election market may move the recession market more than the reverse. Large off-diagonal entries indicate strong cross-market contagion.

CrossImpactEstimator

A streaming estimator that maintains a rolling window of observations and recomputes the cross-impact matrix as new data arrives.

Methods


Reading the Matrix


Pipeline Integration

The hz.cross_impact_monitor() pipeline function recomputes the cross-impact matrix every N cycles and injects it into ctx.params["cross_impact"].

Parameters


Mathematical Background

The cross-impact matrix Lambda is estimated via multivariate OLS regression:delta_p_i(t) = sum_j Lambda_ij * v_j(t) + epsilon_i(t)where delta_p_i(t) is the return of market i at time t, and v_j(t) is the signed volume in market j. The diagonal entries Lambda_ii correspond to Kyle’s lambda (self-impact), and off-diagonal entries Lambda_ij capture how volume in market j moves the price of market i.
In prediction markets, related events share information. A large buy in “Fed cuts rates in June” signals dovish expectations, which should also move “Recession by Q4” and “S&P above 5000.” Ignoring cross-impact leads to underestimating execution cost when trading correlated markets simultaneously. The cross-impact matrix lets you:
  1. Route orders to minimize total market impact across all correlated markets
  2. Avoid inadvertently signaling your view through cross-market contagion
  3. Identify which markets are most informationally connected
A high condition number indicates that the estimated matrix is sensitive to small perturbations in the input data. This typically happens when markets are nearly collinear (e.g., two markets track almost the same event). When the condition number exceeds 100, consider reducing the number of markets or increasing the lookback window.
Cross-impact estimation requires synchronized observations across all markets. If markets trade at very different frequencies, the volume matrix will contain many zeros, degrading the estimate. Use markets with similar activity levels for best results.