| name | simmer-weather |
| description | Trade Polymarket weather markets using NOAA forecasts via Simmer API. Inspired by gopfan2's $2M+ strategy. Use when user wants to trade temperature markets, automate weather bets, check NOAA forecasts, or run gopfan2-style trading. |
| metadata | {"clawdbot":{"emoji":"🌡️","requires":{"env":["SIMMER_API_KEY"]},"cron":"0 */2 * * *"}} |
| authors | ["Simmer (@simmer_markets)"] |
| attribution | Strategy inspired by gopfan2 |
| version | 1.4.2 |
Simmer Weather Trading
Trade temperature markets on Polymarket using NOAA forecast data.
When to Use This Skill
Use this skill when the user wants to:
- Trade weather markets automatically
- Set up gopfan2-style temperature trading
- Buy low on weather predictions
- Check their weather trading positions
- Configure trading thresholds or locations
What's New in v1.2.0
- Max Trades Per Run: New
SIMMER_WEATHER_MAX_TRADES config to limit trades per scan cycle (default: 5)
v1.1.1
- Status Script: New
scripts/status.py for quick balance and position checks
- API Reference: Added Quick Commands section with API endpoints
v1.1.0
- Source Tagging: All trades tagged with
sdk:weather for portfolio tracking
- Smart Sizing: Position sizing based on available balance (
--smart-sizing)
- Context Safeguards: Checks for flip-flop warnings, slippage, time decay
- Price Trend Detection: Detects recent price drops for stronger signals
Setup Flow
When user asks to install or configure this skill:
-
Ask for Simmer API key
- They can get it from simmer.markets/dashboard → SDK tab
- Store in environment as
SIMMER_API_KEY
-
Ask about settings (or confirm defaults)
- Entry threshold: When to buy (default 15¢)
- Exit threshold: When to sell (default 45¢)
- Max position: Amount per trade (default $2.00)
- Locations: Which cities to trade (default NYC)
-
Save settings to environment variables
-
Set up cron (runs every 2 hours by default)
Configuration
| Setting | Environment Variable | Default | Description |
|---|
| Entry threshold | SIMMER_WEATHER_ENTRY | 0.15 | Buy when price below this |
| Exit threshold | SIMMER_WEATHER_EXIT | 0.45 | Sell when price above this |
| Max position | SIMMER_WEATHER_MAX_POSITION | 2.00 | Maximum USD per trade |
| Max trades/run | SIMMER_WEATHER_MAX_TRADES | 5 | Maximum trades per scan cycle |
| Locations | SIMMER_WEATHER_LOCATIONS | NYC | Comma-separated cities |
| Smart sizing % | SIMMER_WEATHER_SIZING_PCT | 0.05 | % of balance per trade |
Supported locations: NYC, Chicago, Seattle, Atlanta, Dallas, Miami
Quick Commands
python scripts/status.py
python scripts/status.py --positions
API Reference:
- Base URL:
https://api.simmer.markets
- Auth:
Authorization: Bearer $SIMMER_API_KEY
- Portfolio:
GET /api/sdk/portfolio
- Positions:
GET /api/sdk/positions
Running the Skill
python weather_trader.py
python weather_trader.py --dry-run
python weather_trader.py --smart-sizing
python weather_trader.py --positions
python weather_trader.py --config
python weather_trader.py --no-safeguards
python weather_trader.py --no-trends
How It Works
Each cycle the script:
- Fetches active weather markets from Simmer API
- Groups markets by event (each temperature day is one event)
- Parses event names to get location and date
- Fetches NOAA forecast for that location/date
- Finds the temperature bucket that matches the forecast
- Safeguards: Checks context for flip-flop warnings, slippage, time decay
- Trend Detection: Looks for recent price drops (stronger buy signal)
- Entry: If bucket price < threshold and safeguards pass → BUY
- Exit: Checks open positions, sells if price > exit threshold
- Tagging: All trades tagged with
sdk:weather for tracking
Smart Sizing
With --smart-sizing, position size is calculated as:
- 5% of available USDC balance (configurable via
SIMMER_WEATHER_SIZING_PCT)
- Capped at max position setting ($2.00 default)
- Falls back to fixed size if portfolio unavailable
This prevents over-deployment and scales with your account size.
Safeguards
Before trading, the skill checks:
- Flip-flop warning: Skips if you've been reversing too much
- Slippage: Skips if estimated slippage > 15%
- Time decay: Skips if market resolves in < 2 hours
- Market status: Skips if market already resolved
Disable with --no-safeguards (not recommended).
Source Tagging
All trades are tagged with source: "sdk:weather". This means:
- Portfolio shows breakdown by strategy
- Copytrading skill won't sell your weather positions
- You can track weather P&L separately
Example Output
🌤️ Simmer Weather Trading Skill
==================================================
⚙️ Configuration:
Entry threshold: 15% (buy below this)
Exit threshold: 45% (sell above this)
Max position: $2.00
Locations: NYC
Smart sizing: ✓ Enabled
Safeguards: ✓ Enabled
Trend detection: ✓ Enabled
💰 Portfolio:
Balance: $150.00
Exposure: $45.00
Positions: 8
📍 NYC 2026-01-28 (high temp)
NOAA forecast: 34°F
Matching bucket: 34-35°F @ $0.12
💡 Smart sizing: $2.00 (capped at max position)
✅ Below threshold ($0.15) - BUY opportunity! 📉 (dropped 15% in 24h)
Executing trade...
✅ Bought 62.5 shares @ $0.12
📊 Summary:
Events scanned: 12
Entry opportunities: 1
Trades executed: 1
Troubleshooting
"Safeguard blocked: Severe flip-flop warning"
- You've been changing direction too much on this market
- Wait before trading again
"Slippage too high"
- Market is illiquid, reduce position size or skip
"Resolves in Xh - too soon"
- Market resolving soon, risk is elevated
"No weather markets found"
- Weather markets may not be active (seasonal)
"API key invalid"
- Get new key from simmer.markets/dashboard → SDK tab