Cross-Market Correlation Trading on Polymarket: A Quant Approach
Using statistical correlation between Polymarket markets — such as a Fed rate-cut market and an S&P 500 market — to build pair trades that hedge directional risk while capturing mispricing between related events.
Prediction markets price discrete binary outcomes, but discrete outcomes are rarely independent. When two Polymarket contracts resolve on economically linked events, the spread between their implied probabilities carries information — and that information can be traded systematically. Here is how we build and run these positions in production.
The Core Idea: Probability Spreads as Mean-Reverting Signals
Take two contracts: "Fed cuts rates by September 2025" and "S&P 500 above 5,500 by September 2025." These are not the same bet, but they are tightly correlated. A sustained equity rally makes a dovish Fed less urgent; a credit event that craters stocks makes rate cuts more likely. The joint probability surface is constrained by macro structure.
When the market prices the Fed cut at 0.72 and the S&P target at 0.65, you might be fine. When the same market starts pricing them at 0.72 and 0.41 within the same 24-hour window — and the underlying macro data has not moved — you have a candidate dislocation. The question is whether that spread is noise, illiquidity, or genuine new information. The correlation framework is how you separate those cases.
Building the Correlation Model
We estimate rolling 30-day Pearson correlation between daily close probabilities across candidate market pairs, pulled from the Polymarket CLOB REST API. The signal is simple: track the z-score of the current spread relative to the historical distribution of that spread.
z = (spread_t - mean(spread_window)) / std(spread_window)
A z-score above 2.0 in absolute terms is our entry threshold. We use a 14-day window for mean and standard deviation — long enough to smooth noise, short enough to stay relevant to the current contract expiry. Markets within 7 days of resolution are excluded from the pair-trading universe; terminal price variance dominates there and the correlation signal breaks down.
Key parameters that matter in practice:
- Minimum daily volume per leg: $8,000 USD equivalent. Below this, spread compression may not happen before expiry.
- Correlation floor: pairs with rolling |r| < 0.50 are dropped. You need structural linkage, not coincidental co-movement.
- Max holding period: 5 days. If the spread has not compressed in five days, exit flat. Do not let a pair trade become a directional bet on one contract.
Sizing and Hedge Ratio
Because both legs are binary, the usual continuous-variable hedge ratio math does not transfer cleanly. We use a probability-weighted notional approach: if contract A is at 0.70 and contract B is at 0.40, the dollar-volatility of A (around its binary payoff) is higher at that probability level than B. We calibrate the notional on each leg so the expected P&L contribution from a 10-point move in each contract is equal in dollar terms.
Concretely: for a $5,000 gross position with A at 0.70 and B at 0.40, the per-leg notional is scaled by p * (1-p) — variance of a Bernoulli. A at 0.70 has variance 0.21; B at 0.40 has variance 0.24. The ratio is close to 1:1 here, but it shifts materially when one contract is trading at 0.20 or 0.85.
This is not a perfect hedge — Polymarket contracts are binary, so convexity effects near resolution can dominate any statistical relationship. Treat the correlation model as a noise-reduction filter, not a risk-elimination engine.
Execution on the CLOB
Polymarket runs a central limit order book with on-chain settlement via UMA's optimistic oracle. The practical execution concerns:
- Slippage is real. The bid-ask spread on mid-volume markets runs 2-5 cents. A pair trade on a 10-cent theoretical edge can easily lose half its value to spread on entry and exit.
- Fill both legs within the same block window. If leg A fills and leg B misses, you are directional. We submit both limit orders simultaneously and cancel both if either goes unfilled within 90 seconds.
- Gas is not trivial on Polygon. Each settlement cycles through a proxy contract. At current gas prices this is under $0.05 per trade, but batch settlement logic in our bots infrastructure handles multiple positions in a single transaction to keep costs in check.
- Oracle delay risk. UMA resolution takes time after market close. If two correlated markets resolve at different times, your "pair" can become a naked position during the gap. Track resolution timestamps and avoid markets that have historically contested resolution.
What Breaks This Strategy
The failure modes are worth being explicit about:
Regime breaks. A sudden macro shock — an unscheduled Fed announcement, a geopolitical escalation — will move correlated contracts in the same direction simultaneously. Your spread may actually widen before it compresses. Position sizing must assume the maximum loss scenario is both legs going against you in the same direction.
Liquidity withdrawal at resolution. Market makers pull quotes as contracts approach expiry, spreads widen, and you may be unable to exit at fair value. The 7-day expiry exclusion helps, but it does not eliminate this risk for long-dated positions that approach the boundary during your holding period.
Fake correlation. Two markets can exhibit 60-day correlation of 0.70 purely because they share a common trend (both drifting toward high probability on a bull-market narrative). Ensure you are measuring correlation of daily changes in probability, not levels, for cleaner signal.
What the Numbers Look Like
In backtests across 18 months of Polymarket data (Jan 2023–Jun 2024), filtering for pairs with |r| > 0.55 and z-score entry above 2.0 standard deviations, mean reversion occurred within 5 days on 61% of qualifying entries. Average spread compression on winning trades was 7.2 cents per contract-dollar. The loss cases averaged -4.8 cents, with the tail driven almost entirely by regime-break events. Net expectancy before fees and slippage: approximately 2.1 cents per contract-dollar per trade. After realistic execution costs on mid-tier liquidity markets, you are looking at 0.8–1.1 cents — thin, but consistently positive at scale.
The strategy works precisely because most market participants in prediction markets are not quants — they are information traders who have a view on a specific outcome and do not think about cross-market consistency. That structural inefficiency is the edge.
If you want this kind of systematic execution running on live Polymarket positions without building the infrastructure yourself, reach out to us — we design and operate production prediction-market bots end to end.
Need a bot like this built?
We design, build and run trading bots on Solana, Hyperliquid and Polymarket.
Start a projectMore from the blog
Public vs Paid RPC: How to Run a Fair Benchmark
A fair comparison of public and paid RPC endpoints must account for quotas, workload, freshness and support guarantees.
Read articleRPC Benchmark Percentiles Explained: p50, p95 and p99
Why averages hide the latency spikes that break trading bots, wallets and production blockchain applications.
Read articleHyperliquid REST vs WebSocket Benchmark: What to Measure
A benchmark plan for Hyperliquid market data that separates request latency from streaming freshness and recovery.
Read article