BtcWeekendLiquidityOverextensionReversionLS
Hypotheses
BTC Weekend-Liquidity Overextension Reversion, Long-Short (Single-Instrument BTCUSDT.BINANCE Perp — Fade Exaggerated WEEKEND Moves Driven by Thin Saturday/Sunday Order Books, Normalize on Monday Liquidity Return, 3-Parameter)
Hypotheses
A LONG-SHORT strategy on the BTCUSDT.BINANCE USD-M perpetual that exploits the documented WEEKEND-LIQUIDITY EFFECT: on Saturdays/Sundays, institutional and market-maker liquidity thins out, so a given order flow moves price further than it would on a weekday, producing exaggerated weekend moves that tend to NORMALIZE (partially revert) when weekday liquidity returns on Monday. It is a genuinely different FAMILY from everything pending or dead — a calendar-MICROSTRUCTURE mean-reversion keyed on the WEEKEND liquidity regime, not a momentum/continuation, not a supplementary-confirm, not a fade of a price/vol/leverage extreme, and distinct from my pending day-of-week directional-drift seasonality (that harvests persistent drift; this fades a specific liquidity-driven overextension and requires the weekend regime). The mechanism: measure the size of the weekend move relative to normal weekday volatility, and if it is exaggerated (a thin-liquidity overshoot), take a reversion position expecting Monday-liquidity normalization. It is pure OHLCV (well-covered, no coverage/no-trades risk), single-instrument (dev-safe), BTC (the one tradable instrument, deepest data), long-short (fills the 13.4% bucket vs 86.6% long-only), low-frequency (~one setup per weekend → ~40-50/year → measurable over multi-year history) so fee drag is light, with a defined stop/target for favorable RR and bounded drawdown. 3 parameters.
Hypotheses
HONEST HEADLINE FIRST: I implemented the fade exactly as specified, but measured on the real catalog the weekend overextension CONTINUES rather than reverts, so I believe the hypothesis has the sign backwards -- the Research Lead and Analyst own that call, and the strategy ships as asked.
THE EVIDENCE (real BTCUSDT.BINANCE 4H catalog, 14,412 bars, 2019-12 to 2026-07, 342 weekend-end decision bars). Raw forward returns after a weekend-end bar, bucketed by the size of the weekend move: weekend UP >1 sigma -> next 24h +1.25%, next 48h +1.93% (64% up, n=25); weekend DOWN >1 sigma -> next 24h -2.40%, next 48h -1.80% (n=16); quiet weekends -> ~+0.05%, i.e. nothing. The overshoot extends in its own direction. Running the shipped stop/target engine both ways at entry_z 0.8: the FADE gives 59 trades, 46% win, -0.786% net per trade, PF 0.61, while the exact opposite (continuation) gives 54% win, +0.557% net per trade, PF 1.43. The fade also degrades MONOTONICALLY as the threshold tightens (entry_z 0.7 -> PF 0.70, 1.0 -> 0.50, 1.3 -> 0.50 with avg trade -1.17%), which is the signature of a real negative edge rather than noise: the more exaggerated the weekend move, the worse it is to fade. Tail sample sizes are small (n=16 and n=25) so this is indicative rather than conclusive, but it points one way consistently. Practical suggestion for the Analyst: the identical machinery with the signal sign flipped is a one-parameter change, so if this is abandoned at backtest review it may be worth respinning as a weekend-continuation rather than discarding the calendar machinery.
WHAT I VERIFIED RATHER THAN ASSUMED. A weekend strategy is only as good as its weekday arithmetic, and an off-by-one would silently fade Fridays. I established the bar-timestamp convention against a known event instead of trusting a default: the daily bar containing the COVID crash (open 7938 -> close 4765, low 4347) is stamped 2020-03-12, the crash date itself, so ts_event is the bar's OPEN time in UTC and day-of-week is taken directly from it. I then confirmed the decision-bar rule selects 342 bars over 343 weeks of history, with the first opening 2020-01-05 20:00 and closing 2020-01-06 00:00 (a Monday). Setup frequency at the shipped defaults is 59 entries over the full history and 12-16 inside a trailing 365-day window, so Layer 3's >=1-trade requirement has margin and the optimizer's plausible entry_z range stays non-zero (0.7 -> 73 trades, 1.0 -> 41, 1.3 -> 22).
DESIGN CHOICES THAT MATTER. (1) The volatility yardstick is WEEKDAY-ONLY. Using all-days sigma would fold the weekend's own thin-liquidity behaviour into the benchmark meant to detect it -- if weekends really are more volatile per unit of flow, an all-days sigma is inflated by exactly the effect being measured and the test is diluted. (2) The 48h window is not a tuned lookback: on the decision bar the trailing 48h IS the weekend by construction, which is why a single continuous expression can serve both as the always-varying per-bar signal and as the tradable weekend measurement -- the calendar restriction sits in the entry gate, so the signal is never zeroed or frozen. (3) No compound entry gate: the calendar already limits this to 52 opportunities a year, and ANDing a regime filter onto that is how this class of strategy ends up firing twice a decade. (4) All per-position state (the pre-weekend reference price and the entry ATR) is RECONSTRUCTED from the bar buffer keyed on the position's own ts_opened rather than latched at signal time, so it survives a mid-trade restart and is identical in backtest and replay. (5) The stop is checked BEFORE the target, so a bar touching both books the loss -- bar data cannot say which came first, and this is the pessimistic reading.
RISK AND VENUE. Sizing is anchored to a 3-ATR gap floor rather than to the stop itself, which matters more here than usual because weekend gaps are precisely the scenario that punishes tight-stop anchoring; gross notional is capped at 0.5x equity independently of the equity path and risk_frac is locked so an optimizer cannot buy Sharpe with notional instead of edge. Turnover is ~15-20 entries a year against targets of 1.5-2.5%, so the ~0.10% round trip is a rounding error rather than the deciding term -- if this loses, it will be the signal and not the fees. Futures (BINANCE USD-M MARGIN) is required rather than preferred: a weekend RALLY is faded SHORT, which a CASH spot account cannot do. leverage stays 1.0 and no sizing path reads it, so there is no leverage-set-but-unused mismatch. Pure OHLCV, single instrument, no supplementary feeds -- none of the coverage failure modes that have dominated recent verification loops apply.
Hypotheses
Net loser with a falsified premise. profit_factor 0.587 (< 1.0), total_return -12.1%, Sharpe -0.518 (CI [-1.08, 0.07]), avg_trade_return_pct -0.634%, and expectancy -$201/trade across 59 trades — a decisive negative edge, negative in 6 of 7 years with rolling Sharpe pinned at -3 to -6. The reward:risk is inverted (avg_win $625 < avg_loss $899 at a 45.8% win rate): the weekend-overshoot does NOT revert on Monday in the data, so the fade side is consistently wrong, and the retracement-target/ATR-stop geometry banks small wins while losers run (return_skew -3.75, kurtosis 70). This is the BTC mean-reversion fade family that has died repeatedly (the hypothesis itself concedes it), now confirmed loss-making on the weekend-liquidity variant. Tuning entry_z/stop_atr_mult/target_frac cannot flip a negative expectancy that holds across every regime — it would only overfit noise. Abandon per the PF < 1.0 / negative-return / negative-avg_trade_return_pct rules rather than spend 2 hours optimizing.
Implementation
Long/short BTCUSDT.BINANCE USD-M perpetual on 4H bars that fades exaggerated weekend moves into the Monday liquidity return. Once per week, on the bar that closes exactly at Monday 00:00 UTC, it measures the trailing 48h displacement (which on that bar is precisely the Saturday 00:00 -> Monday 00:00 weekend window) and normalizes it by WEEKDAY-only 4H volatility scaled to 48h. If the weekend move exceeds entry_z sigmas it takes the reverting side -- long after a weekend dump, short after a weekend rally -- on the thesis that a thin-book overshoot partially normalizes when weekday liquidity returns. Defined risk per trade: an ATR stop at stop_atr_mult ATRs (checked first, so a bar touching both stop and target books the loss), a target at a target_frac retracement of the weekend move back toward the pre-weekend reference, and a 48h max hold since the premise is specifically about Monday normalization. The signal itself (negated 48h displacement in sigma units) is computed on EVERY bar so it always varies; the calendar restriction lives in the entry gate, not in the signal. Sizing is risk-first and gap-aware (1.5% of equity over a 3-ATR excursion), capped at 0.5x equity notional, leverage 1.0. Three tunable parameters: entry_z, stop_atr_mult, target_frac.
Verification Results
Developer-disclosed sign-backwards edge — analyst's call, not a code defect
Verification Results
Marginal trade count (~59 over full history) — thin but decisive given developer's full replay
Verification Results
Static-analysis unbounded-growth flags are false positives — both deques are bounded
Backtest Review
Clean calendar construction, verified bar-timestamp convention, contained max_drawdown 15.9%
Backtest Review
Low turnover (3.56) so fees are not the issue — the signal itself is measured cleanly
Backtest Review
profit_factor 0.587 (< 1.0, net loser) and total_return -12.1% — the strategy loses money
Backtest Review
avg_trade_return_pct -0.634% and expectancy -$201/trade — negative per-trade edge
Backtest Review
Inverted reward:risk: avg_win $625 < avg_loss $899 at a 45.8% win rate — target/stop geometry banks small, loses big
Backtest Review
Negative in 6 of 7 years; Sharpe -0.518 (CI [-1.08, 0.07]), sortino -0.20, omega 0.75; return_skew -3.75, kurtosis 70
Backtest Review
BTC mean-reversion FADE family — the class the hypothesis itself notes 'has all died'; the weekend overshoot does not revert on Monday in the data
Outcome Summary
BtcWeekendLiquidityOverextensionReversionLS tried a genuinely distinct family — a calendar-microstructure fade betting that thin-liquidity weekend overshoots would normalize when weekday desks returned Monday morning — with meticulous construction: an exact weekly decision bar, a verified bar-timestamp convention, and a weekday-only volatility ruler so the benchmark wouldn't absorb the very effect it was measuring. The care went into the method, not the edge: over 59 trades the fade lost money outright (profit factor 0.587, -12.1% total return, Sharpe -0.518), with an inverted reward:risk that banked small wins while losers ran (skew -3.75, kurtosis 70). The reviewer abandoned it at backtest-review under the PF<1.0 / negative-return / negative-per-trade rules, concluding the weekend overshoot does not revert on Monday in the data. It was another confirmation that the BTC mean-reversion fade family — which the hypothesis itself conceded has all died — stays dead, even in this novel weekend-liquidity variant.
Outcome Summary
Clean, honest construction (verified timestamp convention, weekday-only volatility yardstick, low turnover) can't save a false premise — the BTC weekend overshoot simply does not mean-revert on Monday, confirming again that the BTC mean-reversion fade family is a dead end even in a novel calendar-microstructure form.
Outcome Summary
It was abandoned at the pre-optimization BACKTEST_REVIEW gate as a net loser with a falsified premise: the weekend overshoot does not revert on Monday in the data, so the fade side was consistently wrong (profit factor below 1.0, negative return, negative per-trade edge), and tuning the three parameters could not flip a negative expectancy that held across every regime.
Outcome Summary
Fade exaggerated BTCUSDT.BINANCE weekend moves on a calendar-microstructure premise — that thin Saturday/Sunday order books overshoot price, then partially revert when weekday liquidity returns at the Monday 00:00 UTC open — taking a reversion position sized against weekday-only volatility.
Outcome Summary
The signal was measured cleanly (59 trades, low turnover 3.56, max drawdown 15.9%) but lost money decisively: profit factor 0.587, total return -12.1%, Sharpe -0.518 (CI [-1.08, 0.07]), avg per-trade return -0.634%, expectancy -$201/trade, with inverted reward:risk (avg win $625 < avg loss $899 at a 45.8% win rate) and negative results in 6 of 7 years.
Backtest and paper results are hypothetical. Trading involves risk of loss.