polymarket-trading について
polymarket-tradingは、Polymarket取引ボットの戦略とコードパターンを解説し、確信度計算、注文処理、決済計画、ポジションサイズを扱います。ボットの取引ロジックや運用動作を開発する人を対象としています。
主な機能
- 01加算式とベイズ式の確信度計算の比較
- 02自動決済注文と修復の管理
- 03タイミングと確信度に応じたポジション追加
- 04手数料・リベート・注文制約への対応
- 05市場データと注文処理のコード例
活用シーン
- 01確信度計算方式のA/Bテスト
- 02ポジション決済注文の設定と維持
- 03条件に基づくポジションの追加
- 04手数料を考慮した注文戦略の検討
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ niller2005/ polyflup --skill polymarket-tradingインストール後、Claude Code で/polymarket-tradingを入力して読み込まれたか確認します。
詳細
用語と概念
- 出口プラン:ポジションを建てた直後に発注する、$0.99での自動指値売りです。
- ヘッジ付き反転:トレンドが反転したときに、UPとDOWNの両方のポジションを同時に保有することです。
- 中間値ストップロス:中間値が$0.30以下に下がると発動する成行売りです。
- 買い増し:成行注文(FAK)で、利益が出ているポジションに資金を追加することです。
- アンダードッグ:$0.50未満で取引されている側です。エントリーには40%を超える確信度が必要です。
- ティックサイズ:市場で許容される最小価格刻みです(例:0.01または0.001)。
戦略の詳細
確信度の計算方法(v0.5.0+)
ボットは、A/Bテスト用に2種類の確信度計算方法をサポートしています。
加算方式(デフォルト):
- シグナルを重み付けして集計する方向性投票システム
- 確信度 = (winning_total - (losing_total × 0.2)) × lead_lag_bonus
- BinanceとPolymarketのモメンタムが一致した場合、トレンド一致ボーナス(1.1倍)を適用します
ベイズ方式(代替):
- 対数オッズを使用する、統計的に原理に基づいた確率論
- Polymarketのオーダーブックから市場の事前確率を取得します
- 対数尤度比を通じて証拠を蓄積します:
evidence = (score - 0.5) × 2 # Scale to -1 to +1 log_LR = evidence × 3.0 × quality # Quality factor (0.7-1.5x) log_odds += log_LR × weight confidence = 1 / (1 + exp(-log_odds)) - 相反するシグナルを自然に処理します(互いに相殺されます)
- 市場の事前確率によって、計算がPolymarketの実情を反映します
A/Bテスト:
- すべての取引で両方の方式を同時に計算します
- 比較用に結果をデータベースに保存します
BAYESIAN_CONFIDENCE環境変数で切り替えます(デフォルト:NO)- 取引が100件以上になった後、勝率を比較します:
SELECT AVG(CASE WHEN bias='UP' THEN edge ELSE -edge END) as avg_edge, COUNT(*) as total, SUM(CASE WHEN result='WIN' THEN 1 ELSE 0 END) as wins, CAST(wins AS REAL) / COUNT(*) as win_rate FROM trades WHERE settled = 1 GROUP BY method;
出口プランの最適化
- スマートな出口価格設定:
- 確信度の高い取引(≥85%):利益を最大化するため、出口価格に$0.999を使用します
- 通常の取引:出口価格に$0.99を使用します(EXIT_PRICE_TARGETで設定可能)
- 0.999を適用するのは、利益が出ているポジションのみです(UP側は価格がエントリー価格以上、DOWN側は価格がエントリー価格以下の場合)
- 即時発注:ポジションの約定直後に出口プランを発注します(経過時間の要件はありません)
- リアルタイムのサイズ検証:1秒ごとのサイクルで出口注文のサイズを検証します
- 修復ロジック:
- 出口注文のサイズがデータベースのサイズと一致しない場合、自動的に修復します
- 取引所の丸め処理による無限の修復ループを防ぐため、0.05株のしきい値を使用します
- 注文をキャンセルし、正しいサイズで新しい注文を発注します
- 採用ロジック:重複を防ぐため、取引所にある既存のSELL注文を検出して採用します
買い増し戦略(動的)
- デフォルトの
SCALE_IN_TIME_LEFT:450秒(7.5分) - 確信度(
edge)と中間値に基づいて、早期エントリーのタイミングを動的に設定します:- 残り12分:
edgeが90%以上、かつ価格が$0.80以上 - 残り9分:
edgeが80%以上、かつ価格が$0.70以上 - 残り7分:
edgeが70%以上、かつ価格が$0.65以上
- 残り12分:
- 即時約定を確実にするため、成行注文(FAK)を使用します
- 倍率:1.5倍(資金をさらに150%追加し、合計で2.5倍のポジションを形成します)
シグナルボーナス
- トレンド一致ボーナス:BinanceとPolymarketのトレンドが一致する場合、1.1倍の倍率を適用します
- リード/ラグボーナス:取引所間の整合性に応じて、1.2倍のボーナスまたは0.8倍のペナルティを適用します
技術要件
- 精度:残高の同期には、厳密な0.0001のしきい値を使用します
- 最小サイズ:Polymarketでは指値注文に5.0株の最小サイズが適用されます
- 丸め処理:取引所の精度に合わせるため、すべての注文サイズに
truncate_float(value, 2)を使用します
手数料とリベート(15 分の暗号資産市場)
- テイカー手数料:15 分の暗号資産市場にのみ適用されます。
- 手数料の控除:
- BUY:受取額からトークンで手数料が差し引かれます。
- SELL:受取額からUSDCで手数料が差し引かれます。
- 実効手数料率:
- 購入:価格が $0.50 のときに最大約 1.6% です。
- 売却:価格が $0.30 のときに最大約 3.7% です。USDC が直接差し引かれるため、通常は売却のほうが割高です。
- 手数料の精度:小数点以下 4 桁に丸められます(最小 0.0001 USDC)。極端な価格での少額取引では、手数料がかからない場合があります。
- メイカーリベート:約定する流動性を提供したメイカーに、USDC で毎日分配されます。
- 戦略への影響:
- 手数料を避け、リベートを得られる可能性もあるため、メイカー注文(流動性を追加する指値注文)を優先してください。
- テイカーとして低価格で売却すると、特にコストがかかります。
よく使われるコードパターン
市場データ
from src.trading.orders import get_midpoint, get_spread, check_liquidity
# Get accurate midpoint price
price = get_midpoint(token_id)
# Check if liquidity is good
if check_liquidity(token_id, size=100, warn_threshold=0.05):
# Safe to trade
注文の発注
from src.trading.orders import place_batch_orders, place_market_order
# Batch Orders
results = place_batch_orders(orders)
# Market Sell
result = place_market_order(token_id, amount=10.0, side="SELL", order_type="FAK")
標準絵文字ガイド
ポジションのモニタリング
- 👀 ポジションをモニタリング中
- 📈 UP 側のポジション(PnL がプラスなら勝ち)
- 📉 DOWN 側のポジション(PnL がプラスなら勝ち)
- 📦 ポジションサイズの表示
- 🧮 PnL パーセンテージの表示
ポジションのステータス
- ⏰ 決済計画が有効(指値売り注文を発注済み)
- ⏳ 決済計画が保留中(条件待ち)
- ⏭️ 決済をスキップ(ポジションが MIN_SIZE のしきい値未満)
- 📊 ポジションの追加購入インジケーター
注文のライフサイクル
- 🚀 取引の執行/エントリー
- 🎯 指値注文の発注
- ✅ 成功/注文約定
- 🧹 注文のキャンセル
- ❌ エラー/失敗
リスク管理
- 🛑 ストップロス発動
- 🔄 反転/トレンド転換
- ⚠️ 警告/検証上の問題
- 🔧 ポジションの修復/同期
システム
- 💰 資金/残高/決済
- 🌍 地理的な制限
- 🧟 ゴーストトレードの検出
コメント
Markdown 対応