mcpField
T
trade-prediction-markets

trade-prediction-markets

github.com/robonet-techその他1305 回インストール38 週間前に更新
リポジトリ

trade-prediction-markets について

Polymarketの予測市場でYES/NOトークンを取引するためのスキルです。イベント取引を調査し、戦略を構築するユーザー向けに、市場探索、履歴分析、戦略生成、バックテストを支援します。

主な機能

  1. 01予測市場の検索と絞り込み
  2. 02YES/NO価格履歴の分析
  3. 03Python取引戦略の生成
  4. 04戦略のバックテストと指標表示
  5. 05市場データの利用可能範囲確認

活用シーン

  1. 01暗号資産や政治市場の機会探し
  2. 02トークン価格の動向調査
  3. 03戦略の過去実績の検証

MCP 対応

MCPSearchでWorkbenchのツールを選択し、市場イベント、価格データ、戦略生成、バックテストを利用します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/robonet-tech/skills --skill trade-prediction-markets

インストール後、Claude Code で/trade-prediction-marketsを入力して読み込まれたか確認します。

詳細

予測市場の取引

クイックスタート

このスキルを使うと、現実世界のイベントを対象とする Polymarket の予測市場(YES/NO トークン)で取引できます。

まずツールを読み込みます:

Use MCPSearch to select: mcp__workbench__get_all_prediction_events
Use MCPSearch to select: mcp__workbench__get_prediction_market_data
Use MCPSearch to select: mcp__workbench__create_prediction_market_strategy

基本的なワークフロー:

1. Browse markets:
   get_all_prediction_events(market_category="crypto_rolling")
   → See BTC/ETH price prediction markets

2. Analyze market data:
   get_prediction_market_data(condition_id="0x123...")
   → Study YES/NO token price history

3. Create strategy:
   create_prediction_market_strategy(
       strategy_name="PolymarketArb_M",
       description="Buy YES when price <40%, sell at 55%"
   )

4. Test strategy:
   run_prediction_market_backtest(
       strategy_name="PolymarketArb_M",
       ...
   )

このスキルを使う場面:

  • 現実世界のイベント(選挙、FRB の決定、スポーツ)で取引する場合
  • 二者択一の結果(YES/NO)に連動するエクスポージャーを得たい場合
  • 確率に基づく取引に関心がある場合
  • 予測市場での取引機会を調査する場合

利用可能なツール(6)

get_all_prediction_events

目的:利用可能な Polymarket の予測市場を閲覧します

パラメーター:

  • active_only(任意、boolean):アクティブなイベントのみを対象とします(デフォルト:true)
  • market_category(任意、string):カテゴリーで絞り込みます

カテゴリー:

  • crypto_rolling:暗号資産価格の予測(次の1時間で BTC は>$100kになるか?)
  • politics:選挙、政策決定
  • economics:GDP、インフレ、FRB の決定
  • sports:試合結果、選手権
  • entertainment:賞、興行収入

返却値:イベント名、カテゴリー、市場、条件 ID、解決状況を含むイベントの一覧

料金:$0.001

使用する場面:取引機会を見つける場合、利用可能な市場を閲覧する場合

get_prediction_market_data

目的:特定の市場における YES/NO トークンの価格履歴を分析します

パラメーター:

  • condition_id(必須):Polymarket の条件 ID
  • start_date(任意):この日付以降に絞り込みます(YYYY-MM-DD)
  • end_date(任意):この日付までに絞り込みます(YYYY-MM-DD)
  • timeframe(任意):ローソク足の時間枠(1m、5m、15m、30m、1h、4h、デフォルト:1m)
  • limit(任意、1-10000):トークンごとの最大ローソク足数(デフォルト:1000)

返却値:市場メタデータ、YES トークンの価格時系列、NO トークンの価格時系列

料金:$0.001

使用する場面:市場価格の履歴を分析する場合、トークンの挙動を調査する場合、戦略のコンセプトを検証する場合

create_prediction_market_strategy

目的:YES/NO の取引ロジックを備えた Polymarket 戦略コードを生成します

パラメーター:

  • strategy_name(必須):戦略名(パターン Name_RiskLevel に従います)
  • description(必須):YES/NO のロジック、決済条件、ポジションサイズに関する詳細な要件

返却値:完全な Python PolymarketStrategy コード

料金:実際の LLM コスト+マージン(最大 $4.50)

実行時間:約30~60秒

使用する場面:新しい Polymarket 戦略を作成する場合

run_prediction_market_backtest

目的:過去のデータを使って予測市場戦略をテストします

パラメーター:

  • strategy_name(必須):テストする PolymarketStrategy
  • start_date(必須):開始日(YYYY-MM-DD)
  • end_date(必須):終了日(YYYY-MM-DD)
  • condition_id(単一市場用):特定の条件 ID
  • asset(ローリング市場用):資産のシンボル("BTC"、"ETH")
  • interval(ローリング市場用):市場の時間枠("15m"、"1h")
  • initial_balance(任意):開始時の USDC 残高(デフォルト:10000)
  • timeframe(任意):実行時間枠(デフォルト:1m)

返却値:バックテスト指標(損益、勝率、ポジション履歴)

料金:$0.001

実行時間:約20~60秒

使用する場面:予測市場戦略を検証する場合

get_data_availability

目的:Polymarket 市場で利用可能なデータの期間を確認します

パラメーター:

  • data_type:「polymarket」または「all」
  • asset(任意):資産で絞り込みます
  • include_resolved(任意):解決済みの市場を含めます

返却値:日付範囲を含むデータの利用可能状況

料金:$0.001

使用する場面:バックテストの前に、十分なデータがあるか確認する場合

get_latest_backtest_results

目的:最近の予測市場バックテスト結果を表示します

パラメーター:

  • strategy_name(任意):戦略で絞り込みます
  • limit(任意):結果の件数

返却値:最近のバックテスト記録

料金:無料

使用する場面:既存のバックテスト結果を確認する場合

基本概念

予測市場の仕組み

YES/NO トークンの構造:

Event: "Will BTC exceed $100,000 by end of hour?"

YES Token:
- Pays $1.00 if event occurs
- Pays $0.00 if event doesn't occur
- Current price = Market's implied probability
- Example: YES token at $0.65 = 65% implied probability

NO Token:
- Pays $1.00 if event DOESN'T occur
- Pays $0.00 if event occurs
- Current price = 1 - YES price
- Example: NO token at $0.35 = 35% implied probability

Total: YES price + NO price ≈ $1.00 (arbitrage if not)

取引の仕組み:

Scenario: YES token at $0.40

Buy YES token:
- Pay $0.40 now
- If event occurs: Receive $1.00 (profit $0.60 = 150% return)
- If event doesn't occur: Lose $0.40 (-100% return)

Risk/Reward:
- Risking $0.40 to make $0.60
- 1.5:1 reward:risk ratio
- Need >40% win rate to break even
市場カテゴリー

暗号資産のローリング市場(高頻度):

Type: Continuous prediction markets
Frequency: Every 15m, 1h, 4h, etc.
Question: "Will BTC price increase next [interval]?"

Example:
- 1h BTC rolling market
- New market every hour
- Predict if BTC closes higher than current price

Use case: Short-term price speculation
Trading style: Active, high frequency

政治(イベント主導型):

Type: One-time events
Frequency: Varies (elections, policy decisions)
Timeline: Days to months until resolution

Examples:
- "Will candidate X win election?"
- "Will bill Y pass Congress by date Z?"
- "Will Fed cut rates in next meeting?"

Use case: Event speculation
Trading style: Position trading, hold until resolution

経済(データ発表):

Type: Scheduled data releases
Frequency: Monthly, quarterly
Timeline: Fixed resolution dates

Examples:
- "Will CPI exceed 3.5% next month?"
- "Will GDP growth exceed 2% this quarter?"
- "Will unemployment rate decrease?"

Use case: Economic data predictions
Trading style: Position before release, exit at resolution

スポーツ(予定されたイベント):

Type: Game outcomes, championships
Frequency: Varies by sport
Timeline: Hours to months

Examples:
- "Will Team X win game tonight?"
- "Will Player Y score >25 points?"
- "Will Team Z win championship?"

Use case: Sports betting alternative
Trading style: Event-based positions
戦略タイプ

確率アービトラージ(平均回帰):

Concept: Buy underpriced probabilities, sell when corrected

Example:
- Event has ~60% true probability
- YES token priced at $0.45 (implies 45%)
- Buy YES (underpriced)
- Sell when price reaches $0.60 (fair value)

Advantages: Mathematical edge if probability estimation accurate
Disadvantages: Requires good probability estimation

トレンドフォロー(モメンタム):

Concept: Follow YES/NO token price momentum

Example:
- YES token price rising from $0.30 → $0.45
- Buy YES (momentum continuing)
- Exit when momentum fades

Advantages: Captures strong moves
Disadvantages: Late entries, whipsaws

平均回帰(レンジ取引):

Concept: Fade extreme probability movements

Example:
- YES token spikes to $0.85 (85% implied)
- Seems too high, buy NO token ($0.15)
- Exit when reverts toward mean

Advantages: Profits from overreactions
Disadvantages: Catching falling knives (sometimes market is right)

イベント主導型(材料取引):

Concept: Trade based on news/catalysts

Example:
- Positive news for candidate X
- Buy YES token before market fully reacts
- Exit after market prices in news

Advantages: Early mover advantage
Disadvantages: Requires fast news reaction
ローリング市場

ローリング市場の仕組み:

BTC 1h Rolling Market:

Hour 1 (12:00-13:00):
- Market created at 12:00
- Question: "Will BTC close higher at 13:00 than 12:00?"
- YES/NO tokens trade 12:00-13:00
- Resolves at 13:00 based on price change

Hour 2 (13:00-14:00):
- New market created at 13:00
- Previous market resolved
- Profits/losses settled
- Process repeats

Strategy rolls from market to market automatically

ローリング市場の利点:

  • 継続的な取引機会
  • バックテストに使えるデータが豊富(多数の市場)
  • 決着する時期を予測しやすい
  • アルゴリズム取引に適している

欠点:

  • 頻度が高いほど手数料が増える
  • 積極的な監視が必要
  • 決着までの期間が短い(予測が当たるまでの時間が少ない)
Polymarket 戦略フレームワーク

必須メソッド:

class MyPolymarketStrategy(PolymarketStrategy):
    def should_buy_yes(self) -> bool:
        """Check if conditions met for YES token purchase"""
        # Return True to buy YES token

    def should_buy_no(self) -> bool:
        """Check if conditions met for NO token purchase"""
        # Return True to buy NO token

    def go_yes(self):
        """Execute YES token purchase with position sizing"""
        # Calculate position size
        # Buy YES token

    def go_no(self):
        """Execute NO token purchase with position sizing"""
        # Calculate position size
        # Buy NO token

任意のメソッド:

    def should_sell_yes(self) -> bool:
        """Exit YES position"""
        # Return True to sell YES tokens

    def should_sell_no(self) -> bool:
        """Exit NO position"""
        # Return True to sell NO tokens

    def on_market_resolution(self):
        """Handle market settlement"""
        # Called when market resolves
        # Settle P&L

ベストプラクティス

市場の選定

流動性の高い市場を選ぶ:

High liquidity: >$50k volume
- Tight spreads
- Easy entry/exit
- Reliable pricing

Low liquidity: <$10k volume
- Wide spreads
- Difficult exits
- Slippage risk

Recommendation: Start with high-volume markets

決着条件が明確な市場を優先する:

GOOD: "Will BTC close above $100k at 5pm EST on Jan 1, 2025?"
- Objective resolution source (price data)
- Specific date and time
- No ambiguity

BAD: "Will crypto have a good year in 2025?"
- Subjective ("good" is undefined)
- Ambiguous resolution criteria
- Dispute risk

結果が曖昧な市場を避ける:

Check resolution source:
- Data-driven (prices, scores, votes) → Good
- Subjective judgment → Bad
- "Community decides" → High dispute risk

Research past market resolutions:
- Were resolutions fair?
- Any disputed outcomes?
- Market maker credibility
戦略の開発

明確な確率のしきい値を定義する:

Example: Probability arbitrage strategy

Entry logic:
- Buy YES if price <40% (undervalued)
- Buy NO if price <40% (YES >60%, overvalued)

Exit logic:
- Sell YES at 55% (15% profit target)
- Sell NO at 55% (symmetric)
- Stop loss at 25% (37.5% loss, preserve capital)

ポジションサイズを設定する:

Fixed percentage:
- 5% of capital per market
- Max 10 simultaneous positions = 50% deployed
- Conservative, predictable

Kelly Criterion:
- Size based on edge and odds
- More aggressive, optimal growth
- Requires accurate probability estimation

決済条件を設定する:

Profit targets:
- Sell at X% gain (e.g., 15% above entry)

Time-based exits:
- Close position Y hours before resolution
- Avoid last-minute volatility

Stop losses:
- Sell if price drops below Z% (e.g., 60% of entry)
- Preserve capital on wrong predictions
リスク管理

ポジション制限:

Per market: 5-10% of capital
- Limits single-market exposure
- Diversifies risk

Total exposure: 50-70% of capital
- Leaves cash buffer
- Allows for new opportunities
- Prevents overtrading

市場の分散:

Don't concentrate in one category:
- 3 crypto markets
- 2 politics markets
- 2 sports markets
→ Diversified across event types

Avoid:
- 10 BTC rolling markets
→ All correlated, high concentration risk

流動性の監視:

Check before entry:
- Current volume
- Bid/ask spread
- Order book depth

If liquidity drops:
- May be unable to exit
- Accept mark-to-market loss
- Or hold until resolution

一般的なワークフロー

ワークフロー 1:ローリング市場の調査

目標:BTC のローリング市場で取引機会を見つける

1. Browse crypto rolling markets:
   get_all_prediction_events(market_category="crypto_rolling")
   → Lists BTC, ETH rolling markets with intervals

2. Check data availability:
   get_data_availability(data_type="polymarket", asset="BTC")
   → Verify sufficient history for backtesting

3. Analyze specific market:
   get_prediction_market_data(
       condition_id="0x123...",
       timeframe="1m",
       limit=5000
   )
   → Study YES/NO token price patterns

4. Identify strategy:
   - YES token often overshoots (>60%)
   - Mean reversion opportunity
   - Buy NO when YES >65%, exit at 55%

5. Create strategy:
   create_prediction_market_strategy(
       strategy_name="BTCRollingMeanRev_M",
       description="Buy NO token when YES >65%, exit at 55%..."
   )

6. Backtest strategy:
   run_prediction_market_backtest(
       strategy_name="BTCRollingMeanRev_M",
       asset="BTC",
       interval="1h",
       start_date="2024-01-01",
       end_date="2024-12-31"
   )

コスト:約 $2.50(データ $0.003 + 戦略作成 $2.50)

ワークフロー 2:イベント主導型の政治取引

目標:選挙予測市場で取引する

1. Browse politics markets:
   get_all_prediction_events(market_category="politics")
   → Find election markets

2. Analyze candidate X market:
   get_prediction_market_data(condition_id="election_123")
   → Study YES token price leading up to election

3. Identify pattern:
   - YES token very volatile
   - Spikes on good news, drops on bad news
   - Opportunities to buy dips, sell spikes

4. Create strategy:
   create_prediction_market_strategy(
       strategy_name="ElectionDipBuy_M",
       description="Buy YES when price drops >15% in 24h,
                   sell when recovers to pre-drop level..."
   )

5. Backtest (limited data for one-time events):
   - May have insufficient data for thorough backtest
   - Analyze manually or use similar past events

6. Trade carefully:
   - Event markets have less data
   - Higher uncertainty
   - Start with smaller position sizes

コスト:約 $2.50

ワークフロー 3:複数市場のポートフォリオ

目標:分散型の予測市場ポートフォリオを構築する

1. Identify multiple opportunities:
   - BTC 1h rolling (crypto)
   - Fed decision (economics)
   - Championship game (sports)

2. Create strategies for each:
   - Strategy 1: BTC rolling mean reversion
   - Strategy 2: Fed decision probability arbitrage
   - Strategy 3: Sports underdog value

3. Backtest all strategies:
   run_prediction_market_backtest(...) for each

4. Allocate capital:
   - BTC rolling: 15% (more data, higher confidence)
   - Fed decision: 10% (one-time event, moderate confidence)
   - Sports: 5% (less data, lower confidence)
   Total: 30% deployed, 70% cash

5. Monitor performance:
   - Track each strategy independently
   - Rebalance based on results
   - Stop underperformers

コスト:約 $7.50(戦略 3 件)

トラブルシューティング

「予測イベントが見つかりません」

問題:get_all_prediction_events が空を返す

解決策:

  • active_only=False を指定して、決着済みの市場を確認する
  • 別の market_category を確認する
  • 市場が一時的に利用できない可能性があります
「市場データが不十分です」

問題:バックテストに必要な履歴が不足している

解決策:

  • 予測市場の履歴は暗号資産市場より短い
  • バックテスト期間を短くする(1~3 か月)
  • ローリング市場に注目する(データポイントが多い)
  • 一部のイベントは一度限りのため、データが限られている
「戦略のパフォーマンスが低い」

問題:バックテストで損失が出ている

解決策:

  • 予測市場は効率的であり、勝つのは困難です
  • 確率の推定が正確か確認する
  • 戦略のロジックが妥当か検証する
  • 手数料とスリッページを考慮する
  • より高度なアプローチが必要な場合があります

次のステップ

予測市場の戦略を作成した後:

十分にテストする:

  • バックテストには test-trading-strategies を使用する
  • 複数の市場で検証する
  • 勝率とプロフィットファクターを確認する

戦略を改良する:

  • improve-trading-strategies を使用して改良する
  • しきい値とパラメーターを最適化する
  • 改善内容をテストする

ライブ環境へのデプロイ(対応後):

  • 現在はシミュレーションのみです
  • Polymarket のライブ環境へのデプロイは近日対応予定です
  • 利用可能になったら deploy-live-trading を使用します

概要

このスキルでは、Polymarket の予測市場での取引を行えます。

  • 6 つのツール:イベントの閲覧、データ分析、戦略の作成、バックテスト
  • 料金:データは $0.001、戦略の作成は $1~$4.50
  • 市場:政治、経済、スポーツ、暗号資産のローリング市場
  • ステータス:シミュレーションのみ(ライブ運用は今後対応予定)

基本原則:予測市場では、現実世界のイベントに対する YES/NO トークンを取引します。成功には、正確な確率の推定と規律あるリスク管理が欠かせません。

ベストプラクティス:解決条件が明確で流動性の高い市場を選び、イベントの種類を分散させ、適切なポジションサイズ(市場ごとに 5~10%)を設定し、利益目標と損切りを定めましょう。

現在の制限:ライブ運用にはまだ対応していません。バックテストと戦略の開発にご利用ください。ライブ取引は今後のアップデートで利用可能になる予定です。

注記:予測市場は効率的です。継続的に市場を上回るのは困難です。まずシミュレーションから始め、(ライブ運用が利用可能になった際に)資金を投じる前に優位性を十分に検証してください。

コメント