Install
openclaw skills install polymarket-btc-midcandleClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
BTC Mid-Candle Scalper — 75%+ win rate on Polymarket BTC 15-minute markets. Enters mid-candle (2–12 min remaining) when intracandle momentum is confirmed by 5m + 3m price change. Fully configurable: tune the momentum threshold, volume gate, and entry price window to dial in your own edge. Proven on real money. Use when you want a battle-tested, high-WR crypto trading bot running 24/7 on Polymarket.
openclaw skills install polymarket-btc-midcandle75%+ win rate. Real money. 400+ trades. This is the highest-performing BTC strategy in the Simmer ecosystem — built, battle-tested, and profitable over months of live trading. Now you can run it yourself.
This is a template. The default signal is mid-candle BTC momentum from Binance klines — remix it with your own data sources, tighter time windows, or custom volume filters. The skill handles all the plumbing (market discovery, trade execution, safeguards). Your tuning provides the alpha.
Polymarket's BTC Up/Down markets close every 15 minutes at :00, :15, :30, and :45. Most traders enter blind at candle open — guessing direction with no data. This strategy waits.
The edge: By the time 2–12 minutes remain in a candle, BTC has shown its hand. If 5-minute and 3-minute price changes both agree on direction AND volume confirms it isn't noise — that's a high-conviction trade with a known time horizon.
The result: 65–75%+ win rate depending on your settings. Defaults are calibrated to produce edge out of the box.
⚠️ Important: The defaults are a starting point, not a magic formula. You need to fine-tune these settings to your account size, risk tolerance, and market conditions. A trader who tunes their thresholds will outperform one who runs defaults. The strategy section below explains exactly what each knob does.
clawhub install polymarket-btc-midcandle
Set your API key:
export SIMMER_API_KEY=sk_live_your_key_here
Or set it in your .env file if using OpenClaw.
Find it at simmer.markets/dashboard → Agents. Copy your agent ID.
python btc_midcandle.py --set poly_agent_id=your_agent_id_here
python btc_midcandle.py
You'll see [PAPER MODE] — no real money moves. Watch it for a day. Make sure the signals make sense.
python btc_midcandle.py --live
crontab -e
Add:
3,8,13,18,23,28,33,38,43,48,53,58 * * * * cd /path/to/skill && python btc_midcandle.py --live >> /var/log/btc-midcandle.log 2>&1
Runs every 5 minutes. This timing is intentional — entering slightly after the candle opens gives you confirmed momentum rather than a guess.
# View current config
python btc_midcandle.py --config
# Set a value
python btc_midcandle.py --set momentum_threshold=0.0012
python btc_midcandle.py --set bet_size=10.0
| Parameter | Env Var | Default | Description |
|---|---|---|---|
poly_agent_id | SIMMER_BTCMC_AGENT_ID | — | Your Polymarket agent ID (required) |
bet_size | SIMMER_BTCMC_BET_SIZE | 5.0 | USDC per trade |
momentum_threshold | SIMMER_BTCMC_THRESHOLD | 0.0015 | Min 5m price change (0.15%) |
min_volume_ratio | SIMMER_BTCMC_VOL_RATIO | 1.2 | Volume vs 2h avg (0 = disabled) |
min_entry_price | SIMMER_BTCMC_MIN_ENTRY | 0.45 | Min entry price per side |
max_entry_price | SIMMER_BTCMC_MAX_ENTRY | 0.65 | Max entry price per side |
enable_1m_confirm | SIMMER_BTCMC_1M_CONFIRM | false | Require 1m candle to confirm |
skip_hours | SIMMER_BTCMC_SKIP_HOURS | 2,9,10,11,15 | UTC hours to skip (see warning below) |
discord_webhook | SIMMER_BTCMC_WEBHOOK | "" | Discord alert webhook (optional) |
max_position_usd | SIMMER_BTCMC_MAX_POSITION | 50.0 | Max USDC per trade when using --smart-sizing |
sizing_pct | SIMMER_BTCMC_SIZING_PCT | 0.03 | Portfolio % per trade when using --smart-sizing (3%) |
⛔ Skip Hours — Do Not Remove Without Data
The following UTC hours are skipped by default because BTC midcandle has historically poor win rate during these windows:
Hour (UTC) Local time (ET) Why it's bad 2h 10pm ET (prev night) Low volume, thin books, random noise 9h 5am ET Pre-market — BTC drifts without conviction 10h 6am ET Pre-market open — spread widens, fills unpredictable 11h 7am ET Early NY session — choppy before real volume arrives 15h 11am ET Post-open chop — directional momentum breaks down These are configured as
skip_hours = "2,9,10,11,15"and enforced automatically. Do not remove hours from this list without your own shadow data showing consistent WR above 55% for that hour. Trading these hours is the single fastest way to drag your win rate below breakeven.
This is where you find your edge. The defaults produce solid results, but tuning to your conditions can meaningfully improve win rate.
momentum_threshold)Controls how much BTC must move in 5 minutes before you enter.
--positions output. If you're getting too many marginal trades, raise it.min_volume_ratio)Filters out low-volume momentum that tends to reverse.
min_entry_price / max_entry_price)Filters out bad entries. Entry price is how much you pay per share.
enable_1m_confirm) — OFF by defaultAdds a final gate: the last 1-minute candle must agree with your direction before a trade fires.
💡 Tip: Try enabling this after your first week. Compare your win rate with vs without — most traders see a meaningful improvement on choppy days.
# Paper trade (default)
python btc_midcandle.py
# Live trade
python btc_midcandle.py --live
# Show open positions
python btc_midcandle.py --positions
# Portfolio-based sizing (% of balance)
python btc_midcandle.py --live --smart-sizing
# Skip safeguards (advanced — not recommended)
python btc_midcandle.py --live --no-safeguards
# View config
python btc_midcandle.py --config
# Set a config value
python btc_midcandle.py --set bet_size=10
============================================================
🔴 LIVE: BTC Mid-Candle Scalper — 2026-03-15 22:33 UTC
============================================================
⏰ Candle :30 | 8 min remaining | ✅ In window
📊 Volume: 1.41x ✅
📈 Momentum: up | 5m: +0.1821% | 3m: +0.0943%
📋 Market: Will BTC go up or down — March 15, 10:30-10:45PM ET?
💲 Entry price: 0.512 (side=yes)
🚀 Placing YES $5.00 — Mid-candle up (8m left): 5m=+0.1821% 3m=+0.0943% vol=1.41x
✅ Filled: 9.7 YES shares for $5.00
The skill handles market discovery, execution, and safeguards. Swap in your own signal:
No trades firing?
tail -f /var/log/btc-midcandle.log0.0010Too many losing trades?
momentum_threshold — only trade stronger movesenable_1m_confirm — adds a final confirmation stepmin_volume_ratio to 1.5 — only trade high-conviction volume"No active BTC market found"?
poly_agent_id is set correctlyWin rate lower than expected?
--positions for markets that are resolving against you — look for patterns in losing trades