Polymarket Fast Loop
Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when...
Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when...
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Trade Polymarket's 5-minute crypto fast markets using real-time price signals. Default: BTC momentum from Binance. Works with ETH and SOL too.
Polymarket only. All trades execute on Polymarket with real USDC. Use --live for real trades, dry-run is the default.
This is a template. The default signal (Binance momentum) gets you started — remix it with your own signals, data sources, or strategy. The skill handles all the plumbing (market discovery, import, trade execution). Your agent provides the alpha.
⚠️ Fast markets carry Polymarket's 10% fee (is_paid: true). Factor this into your edge calculations.
⚠️ Risk monitoring does not apply to sub-15-minute markets. Simmer's stop-loss and take-profit monitors check positions every 15 minutes — which means they will never fire on 5m or 15m markets before resolution. Any risk settings you configure in the Simmer dashboard have no effect on these positions. Size accordingly and do not rely on automated stop-losses for fast market trades.
You don't need to wait for markets to show up in Simmer. FastLoop finds them in real-time on Polymarket, then imports and trades them through Simmer.
Use this skill when the user wants to:
When user asks to install or configure this skill:
Get from simmer.markets/dashboard → SDK tab Store in environment as SIMMER_API_KEY
This is the private key for their Polymarket wallet (the wallet that holds USDC) Store in environment as WALLET_PRIVATE_KEY The SDK uses this to sign orders client-side automatically — no manual signing needed
Asset: BTC, ETH, or SOL (default BTC) Entry threshold: Min divergence to trade (default 5¢) Max position: Amount per trade (default $5.00) Window: 5m or 15m (default 5m)
# Set your API key export SIMMER_API_KEY="your-key-here" # Dry run — see what would happen python fastloop_trader.py # Go live python fastloop_trader.py --live # Live + quiet (for cron/heartbeat loops) python fastloop_trader.py --live --quiet # Live + smart sizing (5% of balance per trade) python fastloop_trader.py --live --smart-sizing --quiet
The script runs one cycle — your bot drives the loop. Set up a cron job or heartbeat:
Linux crontab (local/VPS installs):
# Every 5 minutes (one per fast market window) */5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet # Every 1 minute (more aggressive, catches mid-window opportunities) * * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet
OpenClaw native cron (containerized or OpenClaw-managed setups):
openclaw cron add \ --name "Fast Loop Trader" \ --cron "*/5 * * * *" \ --tz "UTC" \ --session isolated \ --message "Run fast loop trader: cd /path/to/skill && python fastloop_trader.py --live --quiet. Show the output summary." \ --announce
Via OpenClaw heartbeat: Add to your HEARTBEAT.md:
Run: cd /path/to/fast market && python fastloop_trader.py --live --quiet
Configure via config.json, environment variables, or --set:
# Change entry threshold python fastloop_trader.py --set entry_threshold=0.08 # Trade ETH instead of BTC python fastloop_trader.py --set asset=ETH # Multiple settings python fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10
| Setting | Default | Env Var | Description |
|---|---|---|---|
| entry_threshold | 0.05 | SIMMER_SPRINT_ENTRY | Min price divergence from 50¢ to trigger |
| min_momentum_pct | 0.5 | SIMMER_SPRINT_MOMENTUM | Min BTC % move to trigger |
| max_position | 5.0 | SIMMER_SPRINT_MAX_POSITION | Max $ per trade |
| signal_source | binance | SIMMER_SPRINT_SIGNAL | Price feed (binance, coingecko) |
| lookback_minutes | 5 | SIMMER_SPRINT_LOOKBACK | Minutes of price history |
| min_time_remaining | 60 | SIMMER_SPRINT_MIN_TIME | Skip fast markets with less time left (seconds) |
| asset | BTC | SIMMER_SPRINT_ASSET | Asset to trade (BTC, ETH, SOL) |
| window | 5m | SIMMER_SPRINT_WINDOW | Market window duration (5m or 15m) |
| volume_confidence | true | SIMMER_SPRINT_VOL_CONF | Weight signal by Binance volume |
{ "entry_threshold": 0.08, "min_momentum_pct": 0.3, "max_position": 10.0, "asset": "BTC", "window": "5m", "signal_source": "binance" }
python fastloop_trader.py # Dry run python fastloop_trader.py --live # Real trades python fastloop_trader.py --live --quiet # Silent except trades/errors python fastloop_trader.py --smart-sizing # Portfolio-based sizing python fastloop_trader.py --positions # Show open fast market positions python fastloop_trader.py --config # Show current config python fastloop_trader.py --set KEY=VALUE # Update config
Default signal (Binance momentum):
Momentum ≥ min_momentum_pct (default 0.5%) Price diverges from 50¢ by ≥ entry_threshold (default 5¢) Volume ratio > 0.5x average (filters out thin moves)
Example: BTC up 0.8% in last 5 min, but fast market YES price is only $0.52. The 3¢ divergence from the expected ~$0.55 → buy YES.
This skill is a template. The default Binance momentum signal is just a starting point. The skill handles all the boring parts (market discovery, import, order execution, budget tracking). You bring the signal.
Ideas for custom signals:
To customize, edit get_momentum() in fastloop_trader.py or add your own signal function. The rest of the skill (discovery, import, sizing, fee-aware EV check) stays the same.
⚡ Simmer FastLoop Trading Skill ================================================== [DRY RUN] No trades will be executed. Use --live to enable trading. ⚙️ Configuration: Asset: BTC Entry threshold: 0.05 (min divergence from 50¢) Min momentum: 0.5% (min price move) Max position: $5.00 Signal source: binance Lookback: 5 minutes Min time left: 60s Volume weighting: ✓ 🔍 Discovering BTC fast markets... Found 3 active fast markets 🎯 Selected: Bitcoin Up or Down - February 15, 5:30AM-5:35AM ET Expires in: 185s Current YES price: $0.480 📈 Fetching BTC price signal (binance)... Price: $97,234.50 (was $96,812.30) Momentum: +0.436% Direction: up Volume ratio: 1.45x avg 🧠 Analyzing... ⏸️ Momentum 0.436% < minimum 0.500% — skip 📊 Summary: No trade (momentum too weak: 0.436%)
All trades are tagged with source: "sdk:fastloop". This means:
"No active fast markets found"
"No fast markets with >60s remaining"
"Import failed: Rate limit exceeded"
"Failed to fetch price data"
"Trade failed: no liquidity"
"External wallet requires a pre-signed order"
"Balance shows $0 but I have USDC on Polygon"
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.