Polymarketボットを作る:スキャナー、サイジング、実行のアーキテクチャ
Polymarketボットの開発者向けガイド:スキャナー、リスクサイジング、実行、監視。実践的なアーキテクチャとAPI参照。
Polymarketボットを作る:スキャナー、サイジング、実行、監視
このガイドは、マーケットを継続的にスキャンし、機会をサイジングし、CLOBを通じて実行し、パフォーマンスを監視するPolymarketボットの構築方法を示します。アーキテクチャと、Polymarketの公開APIおよびRelayerモデルを使って実装できる開発パターンに焦点を当てています。
主なポイント
- ボットを4つの独立したサービスとして設計します:スキャナー、サイザー(sizer)、エグゼキューター(executor)、モニター。
- 上場情報と注文発注にはPolymarketのGammaおよびCLOB APIを使用し、リアルタイムの板更新にはWebSocketを利用します。
- 任意の速度での実行にはFAKのマーケット注文を優先しますが、常にスリッページと手数料を考慮してください。
- オラクルの異議申立て、決済遅延、予期せぬ約定に備えて監視と迅速なキルスイッチを計装します。
なぜこの構成か
責任を分離するとトレーディングシステムは理解しやすくなります。スキャナーは候補エッジを見つけ、サイザーはエッジをポジションに変換し、エグゼキューターはCLOB経由で注文を出し、モニターは正確性と安全性を担保します。この分離により、スケーリング、テスト、レイテンシとリスクの評価を独立して行えます。
H2: データソースとAPI
まずこれらのPolymarketエンドポイントをサービスに組み込みます:
- Gamma(マーケットメタデータ):https://gamma-api.polymarket.com — markets、events、tags、series。after_cursorによるページネーションを使い、offsetは避けてください。
- CLOB(オーダーブックとトレーディング):https://clob.polymarket.com — オーダーブックの読み取りは公開されています。取引にはAPIキーとHMACが必要です。CLOBのSDKが注文発注を扱います。
- Market WebSocket(リアルタイム板):wss://ws-subscriptions-clob.polymarket.com/ws/market — book、price_change、best_bid_ask、tick_size_changeを購読します。PINGは10秒ごと。
- Data API(ポジション、未決済建玉):https://data-api.polymarket.com — 取引後の分析用。
設計ノート:ライブスキャンにはGammaの一覧とWebSocketフィードを組み合わせて効率化します。Gammaのレート制限(例:/marketsの上限)と、注文発注時のCLOBのキー要件を尊重してください。
H2: スキャナー — 候補機会の発見
機能
スキャナーはあなたの戦略に合う機会を発見します:バイナリのインラマーケットスプレッド、マルチアウトカムの合計、またはエンドゲームのパターンなど。ステートレスで水平スケーラブルにし、生のエッジ計算に集中させるべきです。
入力と周期
- custom_feature_enabled: trueでMarket WebSocketを購読し、best_bid_askとティック変更を受け取ります。
- 新しい銘柄に初めて遭遇した際はGammaの /markets でバックフィルして、メタデータとアウトカムを取得します。
- 各アウトカムのbest asks/bidsの小さなインメモリビューを維持します。
エッジ計算
- バイナリ・インラマーケット:edge = 1.00 - (bestAsk(YES) + bestAsk(NO)) を計算します。edgeが正なら候補です。
- マルチアウトカム:edge = 1.00 - sum(bestAsk(outcomes))。
閾値とフィルター
- 最低エッジ閾値(例:設定されたセント単位より大きい)を設け、テイカーフィーと実行リスクをカバーします。
- 最低流動性チェック:best askでの深さが最小約定サイズを満たすこと。
- ティックサイズ認識:tick_size_changeイベントを考慮してください — 価格刻みは極端値付近で$0.001に変わることがあります。
H2: サイジング — リスクと資本配分
目的
サイジングは生のエッジを注文プランに変換します:各アウトカムで何株買うか、スリッページを制限するために注文をどう分割するか、などです。
構成要素
- エクスポージャー上限:マーケットごとおよびグローバルなpUSDエクスポージャー制限。
- 深さ制限のサイジング:アスク側の価格レベルごとの累積ボリュームを計算し、期待スリッページが許容範囲内に収まるボリュームまでサイジングします。
- 手数料考慮:粗エッジから予想テイカーフィー(カテゴリによって可変、最大で1.8%)を差し引いてから取引を決定します。
実践パターン
- 保守的な約定から始める:大きな1回の注文よりも複数の小さいFAKマーケット注文を好みます(ブックを支配している場合を除く)。
- CTFのsplit/mergeフローでコンプリートセットを取得する場合、split/mergeのガスコスト(Relayerが処理)とティックサイズによる端数の影響を含めます。
H2: エグゼキューター — 注文発注と約定処理
注文タイプと制約
- 注文発注にはCLOBのトレーディングエンドポイントを使用します:https://clob.polymarket.com。CLOB SDKとRelayerがウォレット展開、承認、注文署名を管理します。
- 速度が求められる場合は、適切にFAK(Fill-And-Kill)マーケット注文を使用します。FAKは即時実行またはキャンセルされ、残存エクスポージャーを避けるのに役立ちますが、部分約定になることがあります。
実行フロー
- 取引インテントを準備する:サイザーが返すアウトカムトークンIDと目標数量のリスト。
- マルチアウトカムのコンプリートセットを実行する場合は、代わりにCTFのsplitでコンプリートセットをミントし、その後レッグを売ることもできます — RelayerとSDKがCTF操作を抽象化します。
- Builder Programの一員であれば、適切なアトリビューションヘッダーを付けてCLOBのトレードAPIに注文を送信します。
- WebSocketのlast_trade_priceやbest_bid_askの更新、またはCLOBの取引レスポンスから約定を観察します。
安全性と照合
- 部分約定を追跡し、残りをキャンセルするか即座に再プライスします。
- 約定後にData API経由でオンチェーンのCTF残高を照合し、期待どおりのアウトカムトークンを保有していることを確認します。
- 再試行のために冪等キーとノンス処理を実装します。
H2: 監視と運用上の安全
監視すべき項目
- 約定率、期待値に対する平均スリッページ、手数料後の実現エッジ。
- WebSocket更新と注文送信間のレイテンシ。
- 異常イベント:UMAの異議申立て、tick_size_change、市場全体の停止。
アラートとキルスイッチ
- 自動ソフトキル:実現PNLが閾値を下回る、または約定スリッページが制限を超えた場合に新規注文発注を一時停止します。
- ハードキル:UMAがあなたがポジションを持つマーケットの異議を報告した場合、またはRelayerが決済問題を通知した場合には即座に全トラフィックを停止します。
監査ログと可観測性
- すべての注文インテント、生のマーケットスナップショット、実行済み約定を保存します。これらのログをポストモーテムやバックテストに使用します。
- ログにはmarket id、condition_ids、request idsをタグ付けしてGammaやCLOBのレコードと突合できるようにします。
H2: Builder Program、資格情報、レート制限
アトリビューション付きで注文をルーティングする予定がある場合はBuilder Programに参加し、Polymarketの設定でキーを管理します。Builderの階層は日次のRelayer制限と報酬を制御します。CLOB経由で取引するにはAPIキーとHMACが必要で、レート制限とRelayerのクオータを守る必要があります。
H2: よくあるリスクと軽減策
数学的なエッジが保証されていると決して仮定しないでください。考慮すべきリスク:
- 決済リスク:UMAの異議申立ては支払いを一時停止または変更する可能性があります。
- スリッページと部分約定:FAKは部分約定になることがあるため、残存エクスポージャーに備えてください。
- 手数料:テイカーフィーはカテゴリにより変動し、小さなエッジを侵食する可能性があります(Geopoliticsは手数料無料です)。
- 決済タイミング:redeem/mergeのタイミングやオラクルの解決遅延が資本を拘束することがあります。
- スマートコントラクトまたはRelayerの故障:フォールバックと人的アラートを整備してください。
これがトレードに与える影響
各取引単位を小さく、観測可能で、リスク許容内で反転可能に設計してください。保守的なサイジング、迅速な監視、および明確なキル条件がテールリスクを減らします。決定的なマーケット状態にはGammaとCLOBのエンドポイントを使用し、迅速な実行にはFAK注文を好みますが、常に実現スリッページを期待値と比較して計測してください。
締めくくり
上記のアーキテクチャは、ハイスループットのスキャナー、保守的なサイザー、CLOBとRelayerを使った堅牢なエグゼキューター、層状の監視を備えたPolymarketトレーディングボットを構築するための実践的ブループリントを提供します。小さく始め、積極的に計装し、実データを蓄積しながらサイジングとフィルターを反復してください。
よくある質問
マーケットの上場情報とライブ板データを取得するにはどのAPIを使うべきですか?
マーケットメタデータには https://gamma-api.polymarket.com を(/markets)、リアルタイムのオーダーブックとbest_bid_askイベントには wss://ws-subscriptions-clob.polymarket.com/ws/market を使用してください。オーダーブックの読み取りとトレーディングには https://clob.polymarket.com を使います。読み取りは公開ですが、トレードにはAPIキー+HMACが必要です。
アービトラージにはリミット注文とマーケット(FAK)注文のどちらを使うべきですか?
FAK(Fill-And-Kill)マーケット注文は速度と残存エクスポージャー回避のためによく使われます。部分約定になる可能性があるため、サイジングと照合設計を行ってください。CLOB SDKはFAKマーケット注文を作るヘルパーを提供します。
サイジング時に手数料をどう考慮すべきですか?
取引前に粗エッジから予想テイカーフィーを差し引いてください。テイカーフィーはカテゴリによって変わり(現在は0%〜1.8%)、手数料と期待スリッページおよび監視バッファをカバーするネットエッジ閾値を使います。
ライブボットにとって必須の監視は何ですか?
約定率、実現スリッページ、レイテンシ、UMAの異議通知、tick_size_changeイベント、Relayerの健全性を監視してください。大きなスリッページ、PNLのドローダウン、オラクルの異議に対してソフトおよびハードキルスイッチを実装します。
Builder Program経由で注文をルーティングできますか?
できます。Builder Programはサードパーティがアトリビューション付きで注文をルーティングし、builder feesを獲得できる仕組みです。階層によって日次のRelayer制限と報酬が管理されます。資格情報は polymarket.com/settings で取得します。
参照用語
関連ガイド
教育目的の情報のみ。金融・法務・税務の助言ではありません。Polymarket はお住まいの地域で利用できない場合があります。