Polymarket & Kalshiで予測市場戦略をバックテストする方法
予測市場のバックテストは株式のバックテストとは異なります。契約は $0 または $1 で決済し、ウィンドウは数分単位であり、終値付近では板が薄くなります。正直に実行する方法をここで説明します。
予測市場戦略を正直にバックテストするには、各市場が取引されたであろう記録済み板データを再現し、実際にそこに存在した流動性に対してすべての約定をサイジングし、各ポジションを実際の $0/$1 の結果で精算する必要があります。DepthFeedでは2つの方法でこれを実行できます — Backtest Labでのノーコード、または独自スタックでのデータAPIを通じた方法 — そして生き残ったものをペーパートレードでライブ板のフォワードテストに進めます。
予測市場をバックテストする際の違い
予測市場の契約は株式でも先物でもありません。各アウトカムは0から1で価格付けされ — その暗示確率 — 決済時に一方は正確に $1 の価値を持ち、他方は $0 になります。暗号資産の上下市場は参照価格に対して5分から60分で決済し、終値に近づくにつれてスプレッドが広がり板が薄くなり、市場の全生涯が通常チャートの1本ローソク足より短い場合があります。
この形状がバックテストに求めるものを変えます。1分ごとに最終価格をサンプリングすると5分市場のほとんどを見逃します;板を無視すると最大1ドルの契約のP&Lを決めるスプレッドが隠れます;決済の誤ラベルは勝者を敗者に変えます。このガイドの残りはそれぞれを正しく行うことについてです。
ステップ1 — 実際の板データから始める
バックテストはそのデータと同じくらいしか正直になれません。完全な板データが必要です — 両サイドのすべての待機ビッドとアスクとそのサイズ — 固定クロックではなく変化のたびにキャプチャされたもの。なぜなら、イベント駆動のキャプチャだけが短期市場の全アークを見せてくれるからです。PolymarketもKalshiも独自の歴史的板データを提供していないため、板をあった通りに再現するには継続的にキャプチャしたプロバイダーが必要です。
DepthFeedは両会場のデータを1つのスキーマで提供します:PolymarketはCLOB WebSocketからイベント駆動でキャプチャ、Kalshiはフルデプス(片側最大100レベル)で継続的にポーリング、各スナップショットにエポックミリ秒タイムスタンプと結合済みの原資産暗号資産参照価格を付与。1つのローダーでどちらの会場も読み込めます。
ステップ2 — 中値ではなく板の深さで約定をモデル化
これが、実際に取引できるバックテストと嘘をつくバックテストを分けるステップです。マーケタブルな注文は板を走査します — 最良レベルを最初に約定し、次のレベルに進むため、トップレベル以上を消費する場合は平均価格がタッチより悪くなります。レスティング注文はキューに参加し、十分なサイズを背後に持って市場がその価格を通過した場合にのみ約定します。すべてをゼロスリッページで中値約定するのは、ほとんどのカジュアルなバックテストのデフォルトですが、エッジを系統的に過大評価します。
どの方法を取るにせよ、板対応の約定を主張してください。最大1ドルの契約での4セントのラウンドトリップスプレッドでは、中値約定と実際の約定の差は莫大であり、すべての取引にわたって複利になります。
ステップ3 — 実際の結果で決済
ペイオフがバイナリーであるため、決済は四捨五入の細部ではありません — P&Lのほとんどがここで決まります。Polymarketの上下市場はオープン時に設定された「勝つべき価格」対終値の参照価格に対して解決します;Kalshiの契約は有効期限時の公開参照価格に対してイエス/ノーで決済します。実際の解決に対してバックテストし、仮定に対してではなく、スプリットをサニティチェックしてください:キャプチャした解決済み暗号資産上下市場では、アウトカムはコインフリップに近く、決済が大きく偏ったバックテストは勝者をおそらく誤ラベルしています。
ステップ4 — ワークフローを選択:ノーコードまたはAPI
DepthFeedで上記のすべてを実行する方法は2つあります。ノーコードの方法はBacktest Labです:銘柄とウィンドウを選択し、プリセットを選択するか短いルールを記述し、約定モデルを選択すると、ブラウザ上で解決済み市場を再現して精算します — 板対応VWAPの約定を含め、構築するパイプラインはありません。
APIの方法はスケールでのカスタムリサーチ向けです:REST APIを通じてフルデプスのスナップショットを取得し、独自スタックで板を再構築し、任意のモデルを実行します。歴史的なREST APIとライブWebSocketが同一のJSONを出力するため、履歴再現のために書いたローダーはライブフィードをそのまま読み込みます — バックテストしたコードそのもので取引します。
ステップ5 — 実資金を投じる前にフォワードテスト
バックテストはどれだけ軽くとも過去にフィットしているため、最後のステップは誰も結果を知らない市場で生き残ったものを前向きに実行することです。ルールをペーパートレードにデプロイするか — または独自ボットからwebhookで駆動し — 仮想資金を使ってライブ板で取引し、実際のビッド/アスクで約定して解決時に自動的に精算します。構築するエクイティカーブがバックテストが提供できないフォワードの証拠となります。
ループが完成します:データ → 正直なバックテスト → フォワードテスト。アイデアを歴史上で安価に排除し、生き残ったものをライブペーパー板に卒業させ、そのときだけ実際の資金を検討します。
よくある落とし穴
- 最終価格または時間足データ:スプレッドを隠し、5〜60分市場の全貌を見逃す。
- 中値約定:ゼロスリッページ仮定はエッジを過大評価する。最大 $1 の契約では致命的。
- 推定決済:勝者を推測ではなく実際の参照価格から判定すること — P&Lのほとんどがここで決まる。
- 先読みバイアス:意思決定時刻以前の受信タイムスタンプのデータにのみ反応すること。
- フォワードテストの省略:決済済み履歴だけに存在するエッジはライブ市場で生き残れないかもしれない。
Key takeaways
- 01予測市場は数分で $0/$1 に決済するため、板、タイミング、決済は通常のチャートよりもはるかに重要です。
- 02実際の記録済み板データに対してバックテストしてください — 両サイド、すべてのレベル — サンプリングではなく変化のたびにキャプチャされたもの。
- 03板に対して約定をモデル化してください(板を走査);中値約定は最大 $1 の契約でエッジを密かに過大評価します。
- 04実際の解決で精算し、コインフリップに近いスプリットをサニティチェックしてください;誤ラベルの決済は勝者を反転させます。
- 05Backtest Labでノーコードで実行するか、APIを通じて実行し、生き残ったものをペーパートレードでライブ板のフォワードテストに進めます。
予測市場のバックテストは株式のバックテストとは異なります。契約は $0 または $1 で決済し、ウィンドウは数分単位であり、終値付近では板が薄くなります。正直に実行する方法をここで説明します。
無料で始める