Strategies
BTC Perp CME Weekend Gap-Fill Reversion, Long-Short Event-Driven (Single-Instrument BTCUSDT.BINANCE USD-M — Measure BTC's Move During the CME-Closed Weekend Window; at Monday CME Reopen Fade It Toward the Friday CME-Close Anchor, Defined-Risk, 3-Parameter)
Outcome: Abandoned
BtcCmeWeekendGapFillReversionLS
Clean pure-OHLCV single-instrument implementation, no data_unavailable risk (DST-aware session boundaries, restart-safe scheduling)
Hypothesis
Negative-expectancy event-driven fade with no edge to optimize. Over 299 trades: avg_trade_return_pct -0.172% (NEGATIVE), profit_factor 0.571, expectancy -$173/trade, Sharpe -0.477 (CI [-1.23,0.25]), PSR 0.31, information_ratio -1.07. It loses in EVERY year 2020-2026 (-3% to -18.5%, total_return -52.9%) and in every vol regime, so the CME weekend gap-fill premise has the wrong sign on the BTC perp — fading the weekend move loses systematically as gaps extend rather than fill (avg_loss $704 > avg_win $545, tail_ratio 0.40). max_drawdown 54.7% (CI to 82%) is past the L19 hard-abandon line. The strategy was already iterated three times (iteration 3 recentered the trade to the reopen session) and remains decisively negative, so the mechanism is falsified rather than mistuned; no search over min_gap_pct/fill_frac/stop_pct flips a negative per-trade edge positive. Failure pattern: no_edge/wrong-sign calendar-event fade with >50% DD. Not worth 2 hours of optimization.
Implementation
Event-driven long-short fade of BTC's CME-closed weekend move on BTCUSDT.BINANCE USD-M 1H bars. The Friday CME-close perp price (16:00 America/Chicago, resolved per-bar to 21:00 UTC under CDT / 22:00 UTC under CST by pure integer DST arithmetic on the bar's own timestamp) is the ANCHOR. The signal is the continuous live gap versus that anchor, (close/anchor - 1) * 100, recomputed every bar. In the first entry_window_hours after the Sunday CME reopen, if |gap| >= min_gap_pct the strategy fades it: gapped up -> SHORT, gapped down -> LONG. Exits are a PARTIAL gap fill (fill_frac of the way back to the anchor, tested intrabar against the bar high/low), a tight stop_pct stop if the move extends, or a max_hold_hours time stop inside the first CME session. All scheduling is a pure function of ts_event and the anchor is re-derived from the bar buffer each bar, so the schedule is restart/replay-identical. Sizing is capital-relative: notional = min(equity * risk_frac / stop_pct, equity * max_notional_frac), leverage 1.0, no averaging down.
Verification Results
CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.
Negative, well-sampled edge (93 trades, PF 0.47, Sharpe CI entirely below zero, avg_trade_return_pct -0.21%, commission 32% of gross): the weekend gap-fill fade is wrong-signed on BTC — the weekend perp move continues more than it reverts at the reopen. Code faithfully implements the hypothesis, so a performance/premise finding for the analyst. Abandon at backtest-review per the developer's pre-registered condition; do not optimize and do not invert the sign inside this hypothesis (that's a separate Research-Lead continuation hypothesis).
Backtest Review
- Sharpe
- -0.48
- Total return
- -52.87%
- Max drawdown
- 54.75%
- Trades
- 299
- Win rate
- 42.5%
- Profit factor
- 0.57
Clean pure-OHLCV single-instrument implementation, no data_unavailable risk (DST-aware session boundaries, restart-safe scheduling)
Defined-risk, never liquidates (exposure only 2.16%, low leverage); 299 trades is a measurable sample
avg_trade_return_pct -0.172% (NEGATIVE), profit_factor 0.571, expectancy -$173/trade — no edge; the fade has the wrong sign on BTC
Loses in ALL seven years (2020-2026) and in every vol regime; total_return -52.9%, Sharpe -0.477 (CI [-1.23,0.25]), IR -1.07, PSR 0.31
max_drawdown 54.7% (CI to 82%) — past the L19 hard-abandon line; recovery_factor -0.96, max DD duration 2373 days
avg_loss ($704) > avg_win ($545), tail_ratio 0.40 — gaps extend rather than fill, so stops book losses while wins are capped at the partial-fill target
Already iterated 3 times (horizon recentered to the reopen session) and still decisively negative — the mechanism is falsified, not mistuned
Iteration History
Backtest and paper results are hypothetical. Trading involves risk of loss.