Skills polymarket-simmer-fastloop
Trade Polymarket BTC/ETH/SOL 5/15-minute fast markets with momentum and order book filters.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/andrewbrownrd/polymarket-simmer-fastloop" ~/.claude/skills/openclaw-skills-polymarket-simmer-fastloop && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/andrewbrownrd/polymarket-simmer-fastloop" ~/.openclaw/skills/openclaw-skills-polymarket-simmer-fastloop && rm -rf "$T"
skills/andrewbrownrd/polymarket-simmer-fastloop/SKILL.mdPolymarket Simmer FastLoop Trader
[!TIP] This is a template. The default signal is a Mean Reversion strategy using Binance momentum exhaustion and L2 order book imbalance. Remix it with alternative signals like trend-following momentum, social sentiment feeds, or cross-venue arbitrage models. The skill handles all the plumbing (market discovery, fee-accurate EV math, position tracking). Your agent provides the alpha.
Automated trading skill for Polymarket BTC/ETH/SOL 5-minute and 15-minute fast markets.
Default is paper mode. Use
for real trades.--live
Strategy
When the latest 5-minute candle shows a rapid spike (momentum > threshold) the script buys the reverse side, capturing the pullback. Signals are filtered by:
- Momentum: Binance 1-minute candles, configurable threshold (default 1.0%).
- Order Book Imbalance (optional): Top 20 levels of Binance L2 book confirm directional bias.
- NOFX Institutional Netflow: Filters trades using institutional flow data.
- Time-of-Day Filter: Skips low-liquidity hours (02:00–06:00 UTC) by default.
- Fee-Accurate EV: Only trades when divergence exceeds fee breakeven + buffer.
- Volatility-Adjusted Sizing: High volatility reduces position size automatically.
- Pre-Caching (Ignition): On every run, the skill scans and caches upcoming market IDs to disk (
). At market open, the Simmer API briefly hides the market — the skill uses the cache to execute trades during this "API blackout" window, ensuring no opportunity is missed.fast_markets_cache.json
Setup
1. Get Simmer API Key
- Register at simmer.markets.
- Go to Dashboard -> SDK tab.
- Copy your API key:
.export SIMMER_API_KEY="your-key-here"
2. Required Environment Variables
| Variable | Required | Description | Values |
|---|---|---|---|
| Yes | Your Simmer SDK key | Get from simmer.markets |
| Yes | Execution environment | (Paper) or (Live) |
| Optional | Your Polymarket wallet key | Required only if |
(Default): Paper Trading. Simulates trades using virtual funds. No real USDC needed.simmer
: Real Trading. Connects to Polymarket. You must have USDC in the wallet.polymarket
[!WARNING] Never share your
orWALLET_PRIVATE_KEY. The SDK signs trades locally; your private key is never transmitted.SIMMER_API_KEY
Quick Start
pip install simmer-sdk export SIMMER_API_KEY="your-key-here" # Paper mode (default) python polymarket-simmer-fastloop.py # Live trading python polymarket-simmer-fastloop.py --live # Check win rate and P&L stats python polymarket-simmer-fastloop.py --stats # Resolve expired trades against real outcomes python polymarket-simmer-fastloop.py --resolve # Quiet mode for cron python polymarket-simmer-fastloop.py --live --quiet
Cron Setup
OpenClaw:
openclaw cron add \ --name "Simmer FastLoop" \ --cron "*/5 * * * *" \ --tz "UTC" \ --session isolated \ --message "Run: cd /path/to/skill && python polymarket-simmer-fastloop.py --live --quiet. Show output summary." \ --announce
Linux crontab:
*/5 * * * * cd /path/to/skill && python polymarket-simmer-fastloop.py --live --quiet
All Settings
| Setting | Default | Description |
|---|---|---|
| 0.05 | Min divergence from 50c |
| 1.0 | Min % asset move to trigger |
| 5.0 | Max $ per trade |
| binance | binance or coingecko |
| 5 | Candle lookback window |
| 60 | Skip if < N seconds left |
| 90 | Prefer markets with >= N seconds left |
| 210 | Prefer markets with <= N seconds left |
| BTC | BTC, ETH, or SOL |
| 5m | 5m or 15m |
| true | Skip low-volume signals |
| false | Require order book confirmation |
| true | Skip 02:00–06:00 UTC |
| true | Adjust size by volatility |
| 0.05 | Extra edge above fee breakeven |
| 10.0 | Max spend per UTC day |
| 1000.0 | Paper portfolio starting balance |
🎨 Remixing the Signal
This skill is a remixable template. We distinguish between Plumbing (Infrastructure) and Alpha (Strategy).
Core Components:
- The Plumbing (Structural): Market discovery (Gamma/Simmer fallback), Pre-Caching, execution via Simmer SDK, and fee-accurate EV calculations.
- The Alpha (Replaceable): The decision-making logic inside
whererun_strategy
is determined based on CEX signals.side
How to Remix:
- Find the Signal logic: In
, look for thepolymarket-simmer-fastloop.py
function around line ~950.run_strategy - Modify the Decision:
- Swap the
andside = "no"
logic to change from Mean Reversion to Trend Following.side = "yes" - Replace
with your own model or API (e.g., custom XGBoost classifier or GPT-4o signal).get_momentum
- Swap the
- Refine Execution: Edit
to implement custom risk management formulas.calculate_position_size
Use this template to bypass the complexity of Polymarket's order book and focus entirely on your strategy logic.
Troubleshooting
"Momentum below threshold" — Asset move is too small. Lower
min_momentum_pct if needed.
"Order book imbalance: neutral" — Market is balanced, signal skipped when
require_orderbook=true.
"Time filter: low liquidity window" — Current hour is 02–06 UTC. Set
time_filter=false to override.