Polymarket Btc Midcandle

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...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 33 · 0 current installs · 0 all-time installs
byDyll@DjDyll
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
The name/description (Polymarket BTC mid-candle scalper) match the code and SKILL.md: the script fetches Binance klines for signals and uses simmer_sdk to place trades on Polymarket. Using SIMMER_API_KEY and an agent ID is necessary for the stated purpose.
Instruction Scope
SKILL.md instructions (export SIMMER_API_KEY, set poly agent id, run in paper mode, cron schedule) align with the script's runtime behavior. The instructions do not request unrelated files or credentials and network calls are limited to Binance and the Simmer/Polymarket endpoints (plus an optional Discord webhook).
Install Mechanism
There is no explicit install spec in registry metadata, but clawhub.json declares a pip dependency on 'simmer-sdk' and the python script imports it. Using pip is expected for this skill, but verify the simmer-sdk package (source/review) before installing; pip installs are moderate risk but common for SDK-based skills.
Credentials
The runtime requires SIMMER_API_KEY and an agent ID (SIMMER_BTCMC_AGENT_ID) which are appropriate for a trading bot. However, the registry summary at the top incorrectly listed 'Required env vars: none' and 'Primary credential: none'—this metadata mismatch is an inconsistency you should resolve (the code and clawhub.json clearly require SIMMER_API_KEY). Optional discord webhook and sizing env vars are proportional.
Persistence & Privilege
The skill does not request always:true and autostart is false in clawhub.json. It can be scheduled via cron or run manually; its managed 'automaton' entrypoint is normal for a runnable skill and does not imply elevated system privileges or modification of other skills.
Assessment
This appears to be a legitimate Polymarket trading bot, but before installing: 1) Do not assume the registry header is authoritative—the script and clawhub.json require SIMMER_API_KEY and an agent ID; confirm you are willing to provide those credentials. 2) Review the simmer-sdk package (source, maintainers, and permissions) before pip installing. 3) Run extensively in paper mode and inspect logs before enabling live trading or cron jobs. 4) Keep API keys out of version control and limit the API key's permissions if possible. 5) Be aware of financial risk—marketing claims (75%+ WR) are not a security guarantee and should be validated with your own backtests/paper trades.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.1
Download zip
latestvk975pgffamh3tdafn811k7mfwn82y0dr

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

BTC Mid-Candle Scalper 🔥

75%+ 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.


What It Does

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.


Setup

1. Install & configure

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.

2. Get your Poly Agent ID

Find it at simmer.markets/dashboard → Agents. Copy your agent ID.

python btc_midcandle.py --set poly_agent_id=your_agent_id_here

3. Run in paper mode first

python btc_midcandle.py

You'll see [PAPER MODE] — no real money moves. Watch it for a day. Make sure the signals make sense.

4. Go live

python btc_midcandle.py --live

5. Set up cron (recommended)

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.


Configuration

# 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
ParameterEnv VarDefaultDescription
poly_agent_idSIMMER_BTCMC_AGENT_IDYour Polymarket agent ID (required)
bet_sizeSIMMER_BTCMC_BET_SIZE5.0USDC per trade
momentum_thresholdSIMMER_BTCMC_THRESHOLD0.0015Min 5m price change (0.15%)
min_volume_ratioSIMMER_BTCMC_VOL_RATIO1.2Volume vs 2h avg (0 = disabled)
min_entry_priceSIMMER_BTCMC_MIN_ENTRY0.45Min entry price per side
max_entry_priceSIMMER_BTCMC_MAX_ENTRY0.65Max entry price per side
enable_1m_confirmSIMMER_BTCMC_1M_CONFIRMfalseRequire 1m candle to confirm
skip_hoursSIMMER_BTCMC_SKIP_HOURS2,9,10,11,15UTC hours to skip (see warning below)
discord_webhookSIMMER_BTCMC_WEBHOOK""Discord alert webhook (optional)
max_position_usdSIMMER_BTCMC_MAX_POSITION50.0Max USDC per trade when using --smart-sizing
sizing_pctSIMMER_BTCMC_SIZING_PCT0.03Portfolio % 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
2h10pm ET (prev night)Low volume, thin books, random noise
9h5am ETPre-market — BTC drifts without conviction
10h6am ETPre-market open — spread widens, fills unpredictable
11h7am ETEarly NY session — choppy before real volume arrives
15h11am ETPost-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.


Tuning Guide

This is where you find your edge. The defaults produce solid results, but tuning to your conditions can meaningfully improve win rate.

Momentum threshold (momentum_threshold)

Controls how much BTC must move in 5 minutes before you enter.

  • Lower (0.0010): More trades, slightly lower accuracy. Good in trending markets.
  • Higher (0.0020): Fewer trades, only strong moves. Better in choppy conditions.
  • Start here: Run paper mode for 3–5 days. Check your --positions output. If you're getting too many marginal trades, raise it.

Volume ratio (min_volume_ratio)

Filters out low-volume momentum that tends to reverse.

  • 0 (disabled): Maximum trade frequency. Raw momentum only.
  • 1.2 (default): Only trade when volume is 1.2× the 2-hour average.
  • 1.5–2.0: High-conviction only. Fewer trades, but strong volume confirmation.

Entry price window (min_entry_price / max_entry_price)

Filters out bad entries. Entry price is how much you pay per share.

  • Too cheap (<0.40): You're betting against the crowd. Usually wrong.
  • Too expensive (>0.70): High cost, limited upside.
  • Sweet spot (0.45–0.65): Balanced risk/reward. Default is calibrated here.

1m confirmation (enable_1m_confirm) — OFF by default

Adds a final gate: the last 1-minute candle must agree with your direction before a trade fires.

  • Disabled (default): More trades, some noise. Good baseline to start.
  • Enabled: Reduces false signals at the cost of some missed entries. Recommended once you're comfortable with the strategy.

💡 Tip: Try enabling this after your first week. Compare your win rate with vs without — most traders see a meaningful improvement on choppy days.


Commands

# 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

Example Output

============================================================
🔴 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

Remix Ideas

The skill handles market discovery, execution, and safeguards. Swap in your own signal:

  • Fear & Greed signal: Only trade when Crypto Fear & Greed is above 60 (greed confirms momentum)
  • Order flow: Add Binance aggTrades to confirm buy/sell pressure before entering
  • Multi-asset confirmation: Only enter BTC UP if ETH is also moving up (correlated moves are stronger)
  • News filter: Skip trades during scheduled macro events (CPI, Fed announcements)

Troubleshooting

No trades firing?

  • Check your cron is running: tail -f /var/log/btc-midcandle.log
  • Momentum threshold may be too high for current market conditions — try lowering to 0.0010
  • Check Binance API is reachable from your server

Too many losing trades?

  • Raise momentum_threshold — only trade stronger moves
  • Enable enable_1m_confirm — adds a final confirmation step
  • Raise min_volume_ratio to 1.5 — only trade high-conviction volume

"No active BTC market found"?

  • Verify your poly_agent_id is set correctly
  • Check Simmer API status at status.simmer.markets

Win rate lower than expected?

  • Run paper mode for a week before going live — calibrate thresholds to your specific market hours
  • Check --positions for markets that are resolving against you — look for patterns in losing trades

Files

3 total
Select a file
Select a file to preview.

Comments

Loading comments…