home / skills / openclaw / skills / simmer-weather
/skills/adlai88/simmer-weather
This skill automates Polymarket weather trading using NOAA forecasts via Simmer API, enabling smart sizing, safeguards, and gopfan2-style temperature bets.
npx playbooks add skill openclaw/skills --skill simmer-weatherReview the files below or copy the command above to add this skill to your agents.
---
name: simmer-weather
displayName: Polymarket Weather Trader
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":null,"autostart":false}}
authors:
- Simmer (@simmer_markets)
attribution: "Strategy inspired by gopfan2"
version: "1.6.0"
---
# Polymarket Weather Trader
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:
1. **Ask for Simmer API key**
- They can get it from simmer.markets/dashboard โ SDK tab
- Store in environment as `SIMMER_API_KEY`
2. **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)
3. **Save settings to environment variables**
4. **Set up cron** (disabled by default โ user must enable scheduling)
## 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
```bash
# Check account balance and positions
python scripts/status.py
# Detailed position list
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
```bash
# Dry run (default โ shows opportunities, no trades)
python weather_trader.py
# Execute real trades
python weather_trader.py --live
# With smart position sizing (uses portfolio balance)
python weather_trader.py --live --smart-sizing
# Check positions only
python weather_trader.py --positions
# View config
python weather_trader.py --config
# Disable safeguards (not recommended)
python weather_trader.py --no-safeguards
# Disable trend detection
python weather_trader.py --no-trends
```
## How It Works
Each cycle the script:
1. Fetches active weather markets from Simmer API
2. Groups markets by event (each temperature day is one event)
3. Parses event names to get location and date
4. Fetches NOAA forecast for that location/date
5. Finds the temperature bucket that matches the forecast
6. **Safeguards**: Checks context for flip-flop warnings, slippage, time decay
7. **Trend Detection**: Looks for recent price drops (stronger buy signal)
8. **Entry**: If bucket price < threshold and safeguards pass โ BUY
9. **Exit**: Checks open positions, sells if price > exit threshold
10. **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
This skill automates trading of Polymarket temperature markets using NOAA forecasts via the Simmer API. It implements a gopfan2-style strategy to buy low and sell high on temperature buckets, with smart sizing, safeguards, and tagging for portfolio tracking. Use it to scan markets, detect opportunities, and optionally execute trades on a schedule.
Each run fetches active weather markets from Simmer, groups them by event, parses location and date, and pulls NOAA forecast data for the matched day. The skill matches the forecast to the corresponding temperature bucket, applies trend detection and safeguard checks, then buys buckets below the entry threshold and exits positions above the exit threshold. Trades are tagged with sdk:weather and sizing can be fixed or computed from portfolio balance.
How do I provide credentials?
Set SIMMER_API_KEY in your environment from simmer.markets/dashboard โ SDK and ensure Authorization header uses Bearer token.
What locations are supported?
Supported locations are NYC, Chicago, Seattle, Atlanta, Dallas, and Miami; set SIMMER_WEATHER_LOCATIONS as a comma-separated list.
What safeguards exist?
The skill checks for flip-flop warnings, estimated slippage >15%, markets resolving in under 2 hours, and resolved markets; safeguards can be disabled with --no-safeguards but that is not recommended.