Install
openclaw skills install polymarket-fast-scalerTrade Polymarket BTC 5-minute fast markets using a magnitude-gated conviction-ladder strategy. Only fires when |1m BTC momentum| >= 0.10% — the backtested threshold above which the strategy shows positive EV. Position size scales with signal strength (3 conviction tiers). Use when user wants disciplined, gate-filtered BTC fast-market trading.
openclaw skills install polymarket-fast-scalerTrade Polymarket BTC 5-minute fast markets with a conviction-ladder strategy. Only enters when Binance 1m momentum exceeds the 0.10% magnitude gate — the EV-positive regime validated by backtest. Position size scales with signal strength across 3 tiers.
🚨 Framework, not a production trading system. Read DISCLAIMER.md before connecting to a wallet with real funds.
Polymarket only. All trades execute on Polymarket with real USDC. Paper mode is the default.
⚠️ Strategy invariants. Do not lower
magnitude_gate_pctbelow 0.10% without re-running the backtest. The 89.4% win rate is gated on this threshold. Below it, the strategy enters the noise zone where fees dominate.
⚠️ Risk monitoring does not apply to sub-15-minute markets. Simmer's stop-loss and take-profit monitors check positions every 15 minutes — they will never fire on 5m markets before resolution. Size accordingly.
Signal: Binance 1m candle at window-open — momentum = (close - open) / open × 100
Gate: |momentum| >= magnitude_gate_pct (default 0.10%). Below = no trade.
Side: momentum > 0 → YES, momentum < 0 → NO. Pure direction — no divergence filter.
Sizing (conviction ladder): | Tier | |momentum| | Position | |------|-----------|----------| | 1 | 0.10% – 0.20% | $3 | | 2 | 0.20% – 0.35% | $5 | | 3 | ≥ 0.35% | $10 |
Hold: position held to expiry. No exit logic.
Why this works: Polymarket fast markets resolve on Chainlink oracle snapshots. At the moment of the 1m window-open candle, strong BTC momentum correlates with the resolution direction before the market re-prices. The 0.10% gate filters the noise zone where this correlation collapses and fees dominate.
Backtest (BTC 5m, 30d): +5.04% gross / 218 markets / 89.4% win rate at |momentum| ≥ 0.10%. Past performance does not guarantee future results — see DISCLAIMER.md.
Use this skill when the user wants to:
Do NOT use for: ETH/SOL/XRP fast markets (separate backtest required), 15m windows (backtest pending), or any strategy where the user wants to trade below the 0.10% magnitude gate.
Install the Simmer SDK
pip install simmer-sdk
Set your Simmer API key
export SIMMER_API_KEY="your-key-here"
# Get from: simmer.markets/dashboard → SDK tab
Run in paper mode first
python fast_scaler.py
Set up cron (every minute)
# crontab -e
* * * * * cd /path/to/skill && python fast_scaler.py --live --quiet
# Paper mode (default) — see what the strategy would do
python fast_scaler.py
# Live trading
python fast_scaler.py --live
# Live + quiet (for cron)
python fast_scaler.py --live --quiet
# Show current positions
python fast_scaler.py --positions
# Tune the magnitude gate (don't go below 0.10%)
python fast_scaler.py --set magnitude_gate_pct=0.12
# Adjust position sizes
python fast_scaler.py --set position_tier3_usd=15
| Parameter | Default | Description |
|---|---|---|
magnitude_gate_pct | 0.10 | Min |momentum| % to trade. Strategy invariant — don't lower below 0.10. |
ladder_tier2_pct | 0.20 | Momentum threshold to enter tier 2 sizing |
ladder_tier3_pct | 0.35 | Momentum threshold to enter tier 3 (max) sizing |
position_tier1_usd | 3.0 | Position size for tier 1 |
position_tier2_usd | 5.0 | Position size for tier 2 |
position_tier3_usd | 10.0 | Position size for tier 3 |
daily_budget_usd | 30.0 | Max total USD per day across all trades |
per_market_cap_usd | 10.0 | Max USD on a single market window |
asset | BTC | Asset (BTC only in v1.0) |
window | 5m | Window (5m only in v1.0) |
order_type | GTC | GTC or FAK |
position_tier3_usd.The +5.04% / 89.4% backtest result is conditional on the parameter values it was run against. Three values are invariants — changing them invalidates the backtest and the skill becomes an unvalidated experiment:
magnitude_gate_pct ≥ 0.10 — lowering admits noise; backtest win rate degrades fast below 0.10%.position_tier3_usd ≤ 10 — the conviction ladder ($3/$5/$10) is sized for the observed win-rate distribution. Raising T3 without re-running the backtest scales bet size beyond what the empirical edge supports.daily_budget_usd ≤ 50 — the daily budget caps total daily exposure. Raising it past ~$50 admits parameter combinations the backtest didn't cover.Lowering any of these is always safe. Raising them is your call but invalidates the empirical evidence cited above.
The skill fetches BTC 1m klines from api.binance.com. In geo-restricted regions (e.g. US-hosted Railway deployments) Binance returns HTTP 451. The skill auto-falls-back to api.binance.us in that case. If both endpoints are unreachable, market discovery returns nothing for that cycle — the skill exits cleanly with no orders placed.
If you're running this on a host that can reach neither endpoint, you'll need to proxy/VPN the request or run the skill from a host that can reach Binance.
When the Simmer SDK's primary market-discovery path is unavailable, the skill falls back to Polymarket's Gamma API. Gamma-sourced markets come through without is_live_now precision — the skill uses a time-window heuristic instead. This can occasionally admit a market that has time remaining on the clock but isn't yet in the live trading window. Known gap; tracked for future fix.
The conviction ladder and magnitude gate are the two load-bearing components. All other parameters are tunable without invalidating the backtest. If you want to:
asset — but run your own backtest first. The 0.10% gate and 89.4% win rate are BTC-only results.window — 15m backtest is on the roadmap but not yet run.ladder_tier2_pct / ladder_tier3_pct for fewer but higher-conviction trades.position_tier3_usd or daily_budget_usd.