Skip to content

Repository files navigation

polymarket-deribit-pricing

Pricing crypto prediction markets as one-touch barrier options — and a critical look at whether the "edge" survives.

Polymarket crypto touch markets are systematically overpriced relative to realized touch frequency

Across every probability band of the closed-market population, the crowd's entry price sits above the realized touch frequency — the systematic overpricing this repo dissects. (reproduce the figures · live scan for today)

Crypto "Will BTC reach $X?" / "Will ETH dip to $X?" markets on Polymarket are, mechanically, one-touch barrier options: YES pays if the price touches the level at any point before expiry. That means you can price them against Deribit's option surface and hunt for mispricing.

This repo is the full toolkit from that hunt — scanner, backtest, and hedge analysis — plus a written walkthrough of what actually held up. Spoiler: the exciting-looking 5–130× "mispricing" is mostly variance risk premium and favorite-longshot bias, the far-OTM fade is thin and carries a real −100% tail, and "cheap crash hedge" turns out to price at ~par against real Deribit puts. The one thing that genuinely survives is a small, useful hedge-design insight.

📄 Read the full writeup: WRITEUP.md — this is the main deliverable; the code just reproduces it.


What's here

file what it does
edge_scan.py Live scan: RN first-passage touch probability (from Deribit IV) vs Polymarket YES price. Flags far-OTM longshots and near-money dips.
backtest.py Model-independent retro backtest on the closed-market population: entry YES price vs actual touch frequency (calibration) + fade PnL.
hedge_compare.py dip-YES vs real Deribit put marks (European digital, 2×euro fair-touch, barrier-IV touch) + vanilla-put convexity crossover.
hedge_mix.py Worked modular hedge for a long crypto position: LP-optimal puts (terminal risk) + dip-YES touch leg (path/liquidation risk), with a payoff table.

Quickstart

python -m venv venv && source venv/bin/activate   # Windows: venv\Scripts\activate
pip install -r requirements.txt

python edge_scan.py        # live longshot / dip scan
python backtest.py         # calibration + fade PnL on closed markets
python hedge_compare.py    # dip-YES vs Deribit puts
python hedge_mix.py        # modular hedge example

All scripts hit public endpoints only (Deribit v2 public API, Polymarket Gamma/CLOB). No keys, no accounts. backtest.py caches the closed-market pull into data/ on first run.

Method notes (the parts that matter)

  • Touch pricing uses the reflection-principle first-passage formula under a driftless risk-neutral measure (ν = −½σ²), with IV read at the barrier strike.
  • The measure trap: a gap between a risk-neutral model and a market price is often a risk premium, not a mispricing. edge_scan.py prints the confound direction; the writeup works through why it matters.
  • The decisive test is backtest.py: a live scan is a hypothesis; the closed-market population is the evidence. They disagree exactly where it counts (far-OTM never touched → 100% win rate is "the tail didn't happen," not a proven edge).

Data & terms

No market data is redistributed in this repo — the scripts fetch it live from public APIs, and any data you pull is subject to the respective venue's terms of use (Deribit / Polymarket market data is generally licensed for personal use). This is research tooling, not a data product.

Disclaimer

Research and educational material only. Not investment advice. The whole point of this repo is that the exciting-looking part of the "edge" did not survive scrutiny — do not trade off it. Numbers in the writeup are a point-in-time (2026-07-21) snapshot; re-running the scripts refreshes them.

License

MIT

About

Pricing crypto prediction markets (Polymarket) as one-touch barrier options against the Deribit vol surface.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages