- Trade Prediction Markets
- Quick Start
- This skill enables trading on Polymarket prediction markets (YES/NO tokens) for real-world events.
- Load the tools first
- :
- 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
- Basic workflow
- :
- 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",
- ...
- )
- When to use this skill
- :
- Trading on real-world events (elections, Fed decisions, sports)
- Want binary outcome exposure (YES/NO)
- Interested in probability-based trading
- Exploring prediction market opportunities
- Available Tools (6)
- get_all_prediction_events
- Purpose
-
- Browse available Polymarket prediction markets
- Parameters
- :
- active_only
- (optional, boolean): Only active events (default: true)
- market_category
- (optional, string): Filter by category
- Categories
- :
- crypto_rolling
-
- Crypto price predictions (BTC >$100k in next hour?)
- politics
-
- Elections, policy decisions
- economics
-
- GDP, inflation, Fed decisions
- sports
-
- Game outcomes, championships
- entertainment
-
- Awards, box office results
- Returns
-
- List of events with names, categories, markets, condition IDs, resolution status
- Pricing
-
- $0.001
- Use when
-
- Discovering trading opportunities, browsing available markets
- get_prediction_market_data
- Purpose
-
- Analyze YES/NO token price history for specific market
- Parameters
- :
- condition_id
- (required): Polymarket condition ID
- start_date
- (optional): Filter from date (YYYY-MM-DD)
- end_date
- (optional): Filter to date (YYYY-MM-DD)
- timeframe
- (optional): Candle timeframe (1m, 5m, 15m, 30m, 1h, 4h, default: 1m)
- limit
- (optional, 1-10000): Max candles per token (default: 1000)
- Returns
-
- Market metadata, YES token price timeseries, NO token price timeseries
- Pricing
-
- $0.001
- Use when
-
- Analyzing market price history, researching token behavior, validating strategy concepts
- create_prediction_market_strategy
- Purpose
-
- Generate Polymarket strategy code with YES/NO trading logic
- Parameters
- :
- strategy_name
- (required): Strategy name (follow pattern: Name_RiskLevel)
- description
- (required): Detailed requirements for YES/NO logic, exit criteria, position sizing
- Returns
-
- Complete Python PolymarketStrategy code
- Pricing
-
- Real LLM cost + margin (max $4.50)
- Execution Time
-
- ~30-60 seconds
- Use when
-
- Building new Polymarket strategies
- run_prediction_market_backtest
- Purpose
-
- Test prediction market strategy on historical data
- Parameters
- :
- strategy_name
- (required): PolymarketStrategy to test
- start_date
- (required): Start date (YYYY-MM-DD)
- end_date
- (required): End date (YYYY-MM-DD)
- condition_id
- (for single market): Specific condition ID
- asset
- (for rolling markets): Asset symbol ("BTC", "ETH")
- interval
- (for rolling markets): Market interval ("15m", "1h")
- initial_balance
- (optional): Starting USDC (default: 10000)
- timeframe
- (optional): Execution timeframe (default: 1m)
- Returns
-
- Backtest metrics (profit/loss, win rate, position history)
- Pricing
-
- $0.001
- Execution Time
-
- ~20-60 seconds
- Use when
-
- Validating prediction market strategies
- get_data_availability
- Purpose
-
- Check available data ranges for Polymarket markets
- Parameters
- :
- data_type
-
- "polymarket" or "all"
- asset
- (optional): Filter by asset
- include_resolved
- (optional): Include resolved markets
- Returns
-
- Data availability with date ranges
- Pricing
-
- $0.001
- Use when
-
- Before backtesting (verify sufficient data)
- get_latest_backtest_results
- Purpose
-
- View recent prediction market backtest results
- Parameters
- :
- strategy_name
- (optional): Filter by strategy
- limit
- (optional): Number of results
- Returns
-
- Recent backtest records
- Pricing
-
- Free
- Use when
- Checking existing backtest results
Core Concepts
Prediction Market Mechanics
YES/NO Token Structure
:
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)
How trading works
:
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
Market Categories
Crypto Rolling Markets
(high frequency):
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
Politics
(event-driven):
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
Economics
(data release):
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
Sports
(scheduled events):
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
Strategy Types
Probability Arbitrage
(mean reversion):
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
Trend Following
(momentum):
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
Mean Reversion
(range trading):
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)
Event-Driven
(catalyst trading):
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
Rolling Markets
How rolling markets work
:
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
Advantages of rolling markets
:
Continuous trading opportunities
More data for backtesting (many markets)
Predictable resolution times
Suitable for algorithmic trading
Disadvantages
:
Higher frequency = more fees
Requires active monitoring
Shorter time to resolution (less time to be right)
Polymarket Strategy Framework
Required methods
:
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
Optional methods : 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
- Best Practices
- Market Selection
- Choose liquid markets
- :
- 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
- Prefer clear resolution criteria
- :
- 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
- Avoid ambiguous outcomes
- :
- 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
- Strategy Development
- Define clear probability thresholds
- :
- 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)
- Include position sizing
- :
- 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
- Set exit criteria
- :
- 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
- Risk Management
- Position limits
- :
- 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
- Market diversification
- :
- 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
- Liquidity monitoring
- :
- 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
- Common Workflows
- Workflow 1: Exploring Rolling Markets
- Goal
-
- Find BTC rolling market trading opportunities
- 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"
- )
- Cost
-
- ~$2.50 ($0.003 data + $2.50 strategy creation)
- Workflow 2: Event-Driven Politics Trading
- Goal
-
- Trade on election prediction market
- 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
- Cost
-
- ~$2.50
- Workflow 3: Multi-Market Portfolio
- Goal
-
- Build diversified prediction market portfolio
- 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
- Cost
-
- ~$7.50 (3 strategies)
- Troubleshooting
- "No Prediction Events Found"
- Issue
-
- get_all_prediction_events returns empty
- Solutions
- :
- Try
- active_only=False
- to see resolved markets
- Check different market_category
- Markets may be temporarily unavailable
- "Insufficient Market Data"
- Issue
-
- Not enough history for backtesting
- Solutions
- :
- Prediction markets have shorter history than crypto
- Use shorter backtest periods (1-3 months)
- Focus on rolling markets (more data points)
- Some events are one-time (limited data)
- "Strategy Performs Poorly"
- Issue
-
- Backtest shows losses
- Solutions
- :
- Prediction markets are efficient (hard to beat)
- Check if probability estimation is accurate
- Verify strategy logic makes sense
- Consider fees and slippage
- May need more sophisticated approach
- Next Steps
- After creating prediction market strategies
- :
- Test thoroughly
- :
- Use
- test-trading-strategies
- for backtesting
- Validate on multiple markets
- Check win rate and profit factor
- Refine strategies
- :
- Use
- improve-trading-strategies
- to refine
- Optimize thresholds and parameters
- Test improvements
- Live deployment
- (when supported):
- Currently simulation only
- Live Polymarket deployment coming soon
- Will use
- deploy-live-trading
- when available
- Summary
- This skill provides
- Polymarket prediction market trading
- :
- 6 tools
-
- Events browsing, data analysis, strategy creation, backtesting
- Cost
-
- $0.001 for data, $1-$4.50 for strategy creation
- Markets
-
- Politics, economics, sports, crypto rolling
- Status
-
- Simulation only (live deployment coming)
- Core principle
-
- Prediction markets trade YES/NO tokens on real-world events. Success requires accurate probability estimation and disciplined risk management.
- Best practices
-
- Choose liquid markets with clear resolution criteria, diversify across event types, use proper position sizing (5-10% per market), set profit targets and stop losses.
- Current limitation
-
- Live deployment not yet supported. Use for backtesting and strategy development. Live trading will be available in future updates.
- Note
- Prediction markets are efficient. Beating them consistently is difficult. Start with simulation, validate edge thoroughly before risking capital (when live deployment available).