xvenue-arb
Tennis and golf | Bitcoin
Polymarket lists a Bitcoin "Up or Down" market every 5 minutes, and daily markets on whether Bitcoin will be above a set of prices at noon New York time. This page prices both from Bitcoin's volatility, shows the edge after Polymarket's taker fee, and shows how much BTC it would take to hedge. The backtest below checks whether any of it would have made money.
Live: 5-minute Up or Down
How the fair price is calculated
- The market resolves Up if Chainlink's BTC/USD 60-second TWAP at the end of the window is at or above the value at the start. The start value (the strike) is known when the window opens.
- Over a few minutes the price is treated as a random walk with volatility σ, measured from the last 30 minutes of one-second Binance prices.
- Before the last minute, the final average A is the current price plus noise with variance σ²S²(t − 60 + 60/3): the average of a random walk over 60 seconds varies only a third as much as the price at a single moment.
- Inside the last minute, part of the average is already fixed. If a share w of the 60 seconds has passed, A = w × (average so far) + (1 − w) × (rest), and the uncertain part has standard deviation (1 − w)σS√(t/3). So the price stops moving well before the window closes.
- P(Up) = N((E[A] − strike) / sd(A)). Edge = P − ask − 0.07 × ask × (1 − ask). The fee is 1.75 cents per share at 50 cents, so the model has to beat the ask by more than that.
- Hedge: an Up share gains about Δ = φ(z) / sd(A) dollars per $1 rise in BTC, so 100 shares are hedged by shorting 100Δ BTC on the perpetual. Near 50/50 that is hundreds of times the premium in BTC, so perpetual fees usually cost more than the edge.
- The backtest below found this model is less accurate than the market's own prices. Treat the EV above as the model's opinion, not a signal.
Backtest: 5-minute markets
Daily strikes vs Deribit options
Each "Bitcoin above K" market pays $1 if the Binance BTC/USDT one-minute close at noon New York time is above K. That is a digital option. Deribit lists BTC options that expire at 08:00 UTC, so the fair price here interpolates Deribit's implied variance between the expiries either side of noon. It also includes the volatility smile, by pricing a tight call spread around K with each strike at its own implied vol.
- Flat vol is N(d₂) at the strike's own implied vol. Smile is (C(K − h) − C(K + h)) / 2h with each call at its own vol, which equals N(d₂) − vega × dσ/dK. Where implied vol falls as the strike rises (the put side of BTC's smile), "above K" is worth more than the flat-vol price. Where it rises (the call wing), it is worth less. The difference is often several cents.
- EV is the expected profit per $1 contract after Polymarket's taker fee, if Deribit's prices are right. Positive values are highlighted.
- Δ is the BTC to short (buying Yes) or buy (buying No) per contract to stay flat against small moves. The position still loses on large moves (gamma) and needs rehedging. Deribit settles 8 hours away from Polymarket, so the two cannot be matched exactly.
Data: Polymarket Gamma, CLOB and live-data feeds, Chainlink BTC/USD through Polymarket, Binance spot and perpetual, Deribit public API. Not trading advice. Source: github.com/hpark236/xvenue-arb