Polymarket Bot Tutorial · 第23章 / 全32章
Polymarketの5分BTC/ETH上昇・下落市場向けボットパターン:1日288回の満期、レイテンシーが重要な執行、エッジの源泉、多くの個人向けボットが負ける理由、そして戦略用のコード骨子。
この章で扱う内容
Polymarketの5分BTC上昇/下落シリーズは1日に288回決済されるため、わずかなエッジでも何度も繰り返すことで複利的に積み上がります。多くの個人向けボットは、出来高があるにもかかわらずここで負けます。理由は、レイテンシーとエッジの基準がプロの運用会社によって決まっているからです。この章は、その中で生き残るものだけを扱います。
- 5分暗号資産市場とは何か
- 1日288回の満期 = 複利的な反復回数
- なぜ個人向けボットはここで負けるのか
- 生き残るエッジの源泉
- レイテンシー予算
- リスク:1トレードあたり小さく、1日あたり大きく
- コード:5分戦略の骨子
5分暗号資産市場とは何か
Polymarketの5分暗号資産市場は、BTC(およびETH)の価格が上がるか下がるかを問う二択の市場です。新しい市場は5分ごとに開き、各市場は開始から5分後の終値で決済され、公開されたオラクルをソースとします。
これにより、1資産あたり1日288市場が生まれます。どんなエッジでも複利効果の機会は非常に大きく、たとえ小さな1回あたりのエッジでも、1日に100回以上取れるなら意味のあるものになります。
一方で、基準はプロの運用会社が決めています。ミッド価格は原資産の価格フィードと非常に厳密に連動して動き、板はたいてい逆側のレッグで薄いです。
1日288回の満期 = 複利的な反復回数
もしあなたのエッジが1回あたり0.5c、勝率55%で、1日に60回トレードできるなら、期待日次PnLは60 × 0.5c = $0.30、10枚ポジションで = $3/日です。小さく見えますが、252営業日 × $3 = 年間$750になります。資本拘束はほぼゼロで、ポジションは5分以内に決済されます。
同じエッジで四半期に1回しか決済しないバイナリーで年間$750を生み出そうとすると、はるかに大きい1回あたりのサイズと、もっと広い損失のテールが必要になります。
5分市場は、少額だが頻繁なエッジが意味のある年収に積み上がる、Polymarket上で唯一のセグメントです。
なぜ個人向けボットはここで負けるのか
個人参入者を一貫して負かす3つの失敗パターンがあります。
- レイテンシー: プロの運用会社は50〜100msで注文を出しますが、個人向けボットは1〜3秒かかります。発注した時点では、価格はすでに新しいミッドに移っています。
- 情報の非対称性: 取引所(Binance、Coinbase)の約定情報は、Polymarketの価格フィードより速く流れます。CEXの直接購読なしで動くボットは、古いデータで取引していることになります。
- スプレッド税: 5分刻みでは、0.5cのスプレッド × 60回のトレード = 1日30cの避けられないコストです。利益を出すには、そのコストを上回るエッジが必要です。
個人向けボットが損益トントンか損失に終わるのは、プロに先行できず、スプレッド税も回避できないからです。個人向けで機能する戦略は、プロより速く動くことを前提にしたものではなく、特定の情報優位性を持つ、判断が遅くてよい戦略です。
生き残るエッジの源泉
5分市場で個人向けに機能するもの。
- 資金調達率に基づく方向バイアス: パーペチュアル先物の極端なプラス資金調達率は平均回帰を示唆します。資金調達率に逆張りします。
- 建玉整理のウィンドウ: 毎時ちょうどにはパーペチュアル先物の清算が起きやすくなります。その時間帯の極端な値動きは反転狙いで取ります。
- 終盤ウィンドウの決済裁定: 5分ウィンドウの残り30秒では、決済価格がより予測しやすくなります。板はしばしば、ライブの値動きと一致しない確率で薄い流動性を提示します。
機能しないもの: 純粋なテクニカルシグナル(RSI、移動平均)、単純なモメンタム追従、ボットがプロより速くある必要があるあらゆる手法。
レイテンシー予算
実用的な5分戦略では、予算配分はおおむね次の通りです。
- シグナルソースの読み取り(CEXの約定情報、資金調達率): 100〜300ms
- 判断計算: 50ms
- FOK注文の発注: 200〜500ms
- 約定確認の受信: 200ms
合計:550〜1050ms。これは、課金RPCとCEXの直接WebSocket購読を備えたVPSなら実現可能です。自宅のノートPCや無料枠APIでは実現できません。
合計500ms未満を要する戦略はプロの領域です。個人がそこで勝負すべきではありません。
リスク:1トレードあたり小さく、1日あたり大きく
5分市場でのポジションサイズは、1回あたり小さく、日次では上限を設けます。
- 1トレードあたり: 1市場につき5〜15枚($1〜6)。5枚未満だとGTC売りが難しく、15枚を超えるとエントリーで板を食い始めます。
- 1日合計: 50〜100トレード。それ以上は、単一のオラクル上の癖に対する相関エクスポージャーを増やします。
- 日次PnLのキルスイッチ: 累計PnLが$10超、または配分資本の5%を超えてマイナスなら停止します。5分市場での悪い日は、たいてい戦略の前提が壊れているサインです。その日は生き残り、デバッグして再デプロイします。
1回あたりのサイズと1日の回数に非対称性を持たせるのは意図的です。深さではなく、広さを取りにいく戦いです。
コード:5分戦略の骨子
参考: 資金調達率ベースの5分ボットのトレードループ。
def five_min_loop():
while True:
wait_for_next_window_open() # blocks until xx:x0:00 or xx:x5:00
markets = find_open_5min_markets("btc")
if not markets: continue
funding = fetch_perp_funding_rate("BTCUSDT")
bias = "DOWN" if funding > 0.001 else "UP" if funding < -0.001 else None
if bias is None: continue
market = markets[0]
token = market["clobTokenIds"][0 if bias == "UP" else 1]
book = fetch_book(token)
if not book.best_ask or book.best_ask > 0.55: continue
place_fok(token, "BUY", book.best_ask + 0.01, 10)
本番版に追加すべきもの: 5分ウィンドウ全体でポジションを追跡して正確なエグジットタイミングを管理すること、ライブ前に30ウィンドウ分ペーパートレードすること、連敗時に停止すること。





