ETH Mid-Candle Scalper 🔥
77%+ win rate. Real money. 400+ trades.
ETH's 15-minute markets are even more profitable than BTC's — if you know when to enter. This strategy does. The BTC alignment gate alone filters out a third of losing trades. Battle-tested, configurable, and running 24/7.
This is a template. The default signal is mid-candle ETH momentum from Binance klines, filtered by BTC cross-asset alignment —
remix it with your own data sources, alternate confirmation signals, or additional asset gates.
The skill handles all the plumbing (market discovery, BTC/ETH data fetching, execution, safeguards).
Your tuning provides the alpha.
What It Does
ETH Up/Down markets on Polymarket close every 15 minutes. This strategy waits until the candle has shown its hand — typically 2–12 minutes remaining — and only enters when:
- 1. ETH momentum is clear: 5m and 3m price change both agree on direction
- BTC agrees: BTC isn't moving hard against you (cross-asset alignment check)
- Volume confirms: The move is backed by real activity, not noise
- Entry price is fair: Not too cheap (contrarian) or too expensive (overpriced)
Why BTC alignment matters: ETH and BTC are heavily correlated. When ETH is signaling UP but BTC is dumping 0.3%, you're fighting the tide — and you'll lose. The BTC gate eliminates that class of trade entirely.
The result: 77%+ win rate on real money. Out of the box.
⚠️ Important: The defaults are calibrated to produce edge, but you need to tune them. Different account sizes, different risk tolerances, different times of day all affect optimal settings. The tuning guide below tells you exactly what to adjust and why. A tuned strategy beats a default strategy every time.
Setup
1. Install
CODEBLOCK0
Set your API key:
CODEBLOCK1
2. Configure your agent ID
CODEBLOCK2
Find your agent ID at simmer.markets/dashboard → Agents.
3. Paper trade first
CODEBLOCK3
You'll see [PAPER MODE] — no real money. Run this for at least a day to understand when it fires and why.
4. Go live
CODEBLOCK4
5. Set up cron
CODEBLOCK5
Add:
CODEBLOCK6
Runs every 5 minutes, staggered for best execution timing.
Configuration
CODEBLOCK7
| Parameter | Env Var | Default | Description |
|---|
| INLINECODE1 | INLINECODE2 | — | Your Polymarket agent ID (required) |
| INLINECODE3 |
SIMMER_ETHMC_BET_SIZE |
5.0 | USDC per trade |
|
momentum_threshold |
SIMMER_ETHMC_THRESHOLD |
0.0012 | Min 5m ETH price change (0.12%) |
|
btc_gate_threshold |
SIMMER_ETHMC_BTC_GATE |
0.0015 | BTC move required to veto trade (0.15%) |
|
min_volume_ratio |
SIMMER_ETHMC_VOL_RATIO |
1.1 | Volume vs 2h avg (0 = disabled) |
|
min_entry_price |
SIMMER_ETHMC_MIN_ENTRY |
0.45 | Min entry price per side |
|
max_entry_price |
SIMMER_ETHMC_MAX_ENTRY |
0.65 | Max entry price per side |
|
enable_1m_confirm |
SIMMER_ETHMC_1M_CONFIRM |
false | Require 1m candle to confirm direction |
|
skip_hours |
SIMMER_ETHMC_SKIP_HOURS |
13,17 | UTC hours to skip (historically poor WR) |
|
discord_webhook |
SIMMER_ETHMC_WEBHOOK |
"" | Discord alert webhook (optional) |
|
max_position_usd |
SIMMER_ETHMC_MAX_POS |
50.0 | Max USDC per trade when using
--smart-sizing |
|
sizing_pct |
SIMMER_ETHMC_SIZING_PCT |
0.03 | Portfolio % per trade when using
--smart-sizing (3%) |
⚠️ SKIP HOURS — READ THIS BEFORE TRADING
By default, the strategy skips hour 13 UTC (9am ET) and hour 17 UTC (1pm ET). These hours have a historically poor ETH midcandle win rate — sub-45%, meaning you lose money on average.
- - Hour 13 UTC (9am ET): NY open volatility makes ETH momentum signals unreliable. Sharp reversals are common.
- Hour 17 UTC (1pm ET): Post-lunch chop. Random, low-conviction price action that fakes out momentum signals.
Do NOT remove these skip hours unless you have your own data (50+ trades minimum) showing profitability during those hours. The default skip list exists because real money was lost learning this lesson.
To modify: python eth_midcandle.py --set skip_hours=13,17,21 (add hours) or --set skip_hours= (disable — not recommended).
Tuning Guide
The defaults work. Tuning makes them work better for you specifically.
Momentum threshold (momentum_threshold)
How much ETH must move in 5 minutes before you enter.
- - Lower (0.0008–0.0012): More trades. Good when ETH is in a clear trend.
- Higher (0.0018–0.0025): Only trade strong moves. Better in choppy or sideways conditions.
- Start at default (0.0012) and only adjust after 50+ paper trades.
BTC alignment gate (btc_gate_threshold)
The BTC 5m move that triggers a veto.
- - Lower (0.0010): Stricter BTC filter — vetoes more trades when BTC wiggles
- Higher (0.0020–0.0025): Only veto when BTC is moving hard — allows more ETH-independent trades
- Default (0.0015) is the sweet spot: vetoes divergent trades without over-filtering
Volume ratio (min_volume_ratio)
Filters low-volume moves that tend to reverse.
- - 0 (disabled): Pure momentum, no volume filter
- 1.1 (default): Trade when volume is 10% above the 2-hour average
- 1.5+: High-conviction only. Fewer trades, stronger confirmation
Entry price window
- - Too cheap (<0.40): You're fading the crowd — usually wrong
- Too expensive (>0.70): Limited upside relative to risk
- Default 0.45–0.65: Balanced. You can tighten to 0.50–0.60 for higher precision at cost of volume
1m confirmation (enable_1m_confirm) — OFF by default
Adds a final gate: the last 1-minute candle must agree with your trade direction.
- - Disabled (default): More trades, baseline win rate
- Enabled: Meaningful reduction in false signals — especially useful during London/NY open volatility
💡 Tip: Enable 1m_confirm after your first week of paper trading. Most users see their win rate tick up 2–4% with it on.
Skip hours (skip_hours)
UTC hours with historically poor ETH midcandle win rate. Defaults are
13,17.
- - Hour 13 UTC (9am ET): NY open volatility makes momentum signals unreliable
- Hour 17 UTC (1pm ET): Post-lunch chop, random price action
- Only remove these if you have enough personal data showing otherwise
Commands
CODEBLOCK8
Example Output
CODEBLOCK9
The BTC Gate — Explained
ETH and BTC move together ~80% of the time. When they diverge:
- - ETH signaling UP while BTC dropping hard → ETH is wrong, BTC leads
- ETH signaling DOWN while BTC pumping hard → same problem
The BTC gate catches this. Before entering, the strategy checks if BTC moved more than btc_gate_threshold in the opposite direction. If it did, the trade is skipped.
This single filter is responsible for a significant portion of the win rate improvement over naive ETH momentum strategies. Don't disable it without data.
Remix Ideas
- - Funding rate confirmation: Only trade ETH UP when perpetual funding is positive (longs paying)
- ETH/BTC ratio: Add a ratio signal — trade ETH when it's outperforming BTC on the ratio
- Options skew: Skip trades when ETH options put/call ratio is elevated
- On-chain: Add net exchange flows as a confirmation signal for larger size
Troubleshooting
Firing less than expected?
- - Lower
momentum_threshold to 0.0010 - Check skip hours — maybe you're running during 13h or 17h UTC
- Verify your cron is running: INLINECODE49
Losing more than expected?
- - Enable
enable_1m_confirm — adds a key anti-noise filter - Raise
momentum_threshold to 0.0018 - Check that
btc_gate_threshold is set — it should NOT be 0
"BTC check failed"?
- - Binance API timeout — the strategy falls through to neutral (still trades)
- If happening regularly, your server may have connectivity issues to Binance
Win rate below 65%?
- - You're likely trading the wrong hours — check if hour 13 or 17 UTC is in your logs
- Try enabling INLINECODE53
- Run paper mode for a week before re-evaluating
ETH 中烛剥头皮交易策略 🔥
77%+ 胜率。真实资金。400+ 笔交易。
ETH 的 15 分钟市场比 BTC 的更具盈利潜力——前提是你知道何时入场。本策略正是为此设计。仅 BTC 对齐门控就能过滤掉三分之一的亏损交易。经过实战检验、可配置,且 7x24 小时运行。
这是一个模板。 默认信号来自币安 K 线的 ETH 中烛动量,经 BTC 跨资产对齐过滤——
你可以用自有数据源、替代确认信号或额外资产门控进行重新组合。
本策略处理所有底层工作(市场发现、BTC/ETH 数据获取、执行、风控)。
你的调优提供超额收益。
功能说明
Polymarket 上的 ETH 涨跌市场每 15 分钟收盘一次。本策略等待蜡烛图显露趋势——通常在剩余 2-12 分钟时——仅在以下条件满足时入场:
- 1. ETH 动量明确: 5 分钟和 3 分钟价格变化方向一致
- BTC 方向一致: BTC 未朝相反方向大幅波动(跨资产对齐检查)
- 成交量确认: 价格变动有真实交易量支撑,而非噪音
- 入场价格合理: 既不太便宜(逆势)也不太贵(溢价过高)
为什么 BTC 对齐很重要: ETH 和 BTC 高度相关。当 ETH 发出上涨信号但 BTC 下跌 0.3% 时,你是在逆势而行——结果必然亏损。BTC 门控完全消除了这类交易。
结果: 真实资金胜率 77%+。开箱即用。
⚠️ 重要提示: 默认参数经过校准可产生优势,但你需要进行调优。不同的账户规模、风险承受能力和交易时段都会影响最优设置。下方的调优指南会明确告诉你调整什么以及为什么。经过调优的策略始终优于默认策略。
设置
1. 安装
bash
clawhub install polymarket-eth-midcandle
设置你的 API 密钥:
bash
export SIMMERAPIKEY=skliveyourkeyhere
2. 配置代理 ID
bash
python ethmidcandle.py --set polyagentid=youragentidhere
在 simmer.markets/dashboard → Agents 找到你的代理 ID。
3. 先进行模拟交易
bash
python eth_midcandle.py
你会看到 [PAPER MODE] 标识——不涉及真实资金。至少运行一天以了解策略何时触发及原因。
4. 上线实盘
bash
python eth_midcandle.py --live
5. 设置定时任务
bash
crontab -e
添加:
3,8,13,18,23,28,33,38,43,48,53,58 cd /path/to/skill && python eth_midcandle.py --live >> /var/log/eth-midcandle.log 2>&1
每 5 分钟运行一次,错开时间以获得最佳执行时机。
配置
bash
python eth_midcandle.py --config
python ethmidcandle.py --set momentumthreshold=0.0012
| 参数 | 环境变量 | 默认值 | 描述 |
|---|
| polyagentid | SIMMERETHMCAGENTID | — | 你的 Polymarket 代理 ID(必填) |
| betsize |
SIMMER
ETHMCBET_SIZE | 5.0 | 每笔交易 USDC 金额 |
| momentum
threshold | SIMMERETHMC_THRESHOLD | 0.0012 | 最小 5 分钟 ETH 价格变化(0.12%) |
| btc
gatethreshold | SIMMER
ETHMCBTC_GATE | 0.0015 | BTC 变动触发否决交易的门槛(0.15%) |
| min
volumeratio | SIMMER
ETHMCVOL_RATIO | 1.1 | 成交量与 2 小时均值之比(0 表示禁用) |
| min
entryprice | SIMMER
ETHMCMIN_ENTRY | 0.45 | 每侧最低入场价格 |
| max
entryprice | SIMMER
ETHMCMAX_ENTRY | 0.65 | 每侧最高入场价格 |
| enable
1mconfirm | SIMMER
ETHMC1M_CONFIRM | false | 要求 1 分钟蜡烛图确认方向 |
| skip
hours | SIMMERETHMC
SKIPHOURS | 13,17 | 跳过的 UTC 小时(历史胜率较差) |
| discord
webhook | SIMMERETHMC_WEBHOOK | | Discord 警报 Webhook(可选) |
| max
positionusd | SIMMER
ETHMCMAX_POS | 50.0 | 使用 --smart-sizing 时每笔交易最大 USDC |
| sizing
pct | SIMMERETHMC
SIZINGPCT | 0.03 | 使用 --smart-sizing 时每笔交易占投资组合百分比(3%) |
⚠️ 跳过时段——交易前请阅读
默认情况下,策略跳过 UTC 13 点(美东时间上午 9 点)和 UTC 17 点(美东时间下午 1 点)。这些时段 ETH 中烛胜率历史表现较差——低于 45%,意味着平均亏损。
- - UTC 13 点(美东时间上午 9 点): 纽约开盘波动使 ETH 动量信号不可靠。常见剧烈反转。
- UTC 17 点(美东时间下午 1 点): 午盘震荡行情。随机、低确信度的价格行为会误导动量信号。
除非你有自己的数据(至少 50 笔交易)证明这些时段具有盈利能力,否则不要移除这些跳过时段。 默认跳过列表的存在是因为真实资金为此付出了代价。
修改方式:python ethmidcandle.py --set skiphours=13,17,21(添加时段)或 --set skip_hours=(禁用——不推荐)。
调优指南
默认参数有效。调优能让它们更适合你的具体情况。
动量阈值(momentum_threshold)
ETH 在 5 分钟内需要变动多少才能入场。
- - 较低(0.0008–0.0012): 更多交易。适合 ETH 处于明确趋势时。
- 较高(0.0018–0.0025): 仅交易强势波动。适合震荡或横盘行情。
- 从默认值(0.0012)开始,仅在 50+ 笔模拟交易后进行调整。
BTC 对齐门控(btcgatethreshold)
触发否决的 BTC 5 分钟变动幅度。
- - 较低(0.0010): 更严格的 BTC 过滤器——BTC 小幅波动时否决更多交易
- 较高(0.0020–0.0025): 仅在 BTC 大幅波动时否决——允许更多独立于 ETH 的交易
- 默认值(0.0015) 是最佳平衡点:否决背离交易的同时不过度过滤
成交量比率(minvolumeratio)
过滤容易反转的低成交量波动。
- - 0(禁用): 纯动量,无成交量过滤
- 1.1(默认): 成交量高于 2 小时均值 10% 时交易
- 1.5+: 仅高确信度交易。交易更少,确认更强
入场价格区间
- - 太便宜(<0.40): 你在逆势操作——通常错误
- 太贵(>0.70): 相对于风险的上行空间有限
- 默认 0.45–0.65: 平衡。可收紧至 0.50–0.60 以提高精度,但会减少交易量
1 分钟确认(enable1mconfirm)——默认关闭
增加最终门控:最后 1 分钟蜡烛图必须与交易方向一致。
- - 禁用(默认): 更多交易,基准胜率
- 启用: 显著减少虚假信号——在伦敦/纽约开盘波动期间尤其有用
💡 提示: 模拟交易第一周后启用 1m_confirm。大多数用户启用后胜率提升 2–4%。
###