BtcVolNormalizedMomentumStrengthLS
Hypotheses
BTC Volatility-Normalized Momentum-Strength Directional, Long-Short (Single-Instrument BTCUSDT.BINANCE Perp — Act ONLY on STRONG Moves: Trade When the Momentum Z-Score (Return ÷ Its Own Volatility) Is Large, Signal-Strength Gate Not Timeframe Agreement, ATR-Trailing, 3-Parameter)
Hypotheses
A LONG-SHORT, single-instrument, pure-OHLCV momentum strategy on the BTCUSDT.BINANCE USD-M perpetual whose selectivity comes from momentum STRENGTH (magnitude relative to volatility), not from the sign-based dual/triple-timeframe confluence the meta-learner has banned (L38, zero survivors across all clones). Instead of requiring two timeframes to agree on direction, it computes a single-timeframe VOLATILITY-NORMALIZED momentum z-score = (return over a lookback) ÷ (rolling volatility of that return), and acts ONLY when that z-score is large in magnitude — i.e. a strong, high-signal-to-noise directional move, not a weak drift. This is a documented, materially different selectivity mechanism (magnitude gate vs timeframe-agreement gate): weak momentum signals (which dominate and add noise) are skipped, and only decisive moves — where the trend is strong relative to the market's own noise — are traded. The thesis: strong, vol-normalized momentum has better continuation odds and a cleaner reward profile than raw sign-based momentum, targeting the trade QUALITY (PF/Sharpe) that thin single-signal versions lacked. It stays on BTC (the one tradable instrument), single perp execution (dev-safe), pure OHLCV (well-covered, no coverage/no-trades risk), long-short (fills the 13.4% bucket vs 86.6% long-only), 4H cadence for a measurable sample, ATR trail. Deliberately 3-parameter (lookback, z-threshold, ATR trail) to resist overfit.
Hypotheses
MEASURED BEFORE SUBMITTING (real BTCUSDT.BINANCE 4H catalog, 14,412 bars, 2019-12 to 2026-07, using the exact exit engine shipped here). At the shipped defaults: 260 trades, 47% win rate, +0.96% average net return per trade after a 0.10% round trip, PF 1.48. Exit mix 250 trail / 10 max-hold / 0 reversal. The trailing 365-day window is also positive and not a regime outlier: 35 trades, PF 1.54, +0.81% per trade -- so the sandbox has a healthy sample with no zero-trade risk, and the recent regime agrees with the full history.
THE HYPOTHESIS'S CENTRAL CLAIM IS SUPPORTED BY THE DATA. The thesis is that stronger vol-normalized momentum has better continuation odds. That shows up as a clean monotone relationship rather than a single lucky setting: at the shipped lookback, raising the gate from z 0.75 -> 1.0 -> 1.25 moves profit factor 1.34 -> 1.48 -> 1.64 and per-trade return +0.66% -> +0.96% -> +1.22%. Trade quality improves with signal strength exactly as predicted.
I ALSO TESTED WHETHER THE VOLATILITY NORMALIZATION ITSELF EARNS ITS KEEP, since the cheaper version of this idea is just 'trade when BTC has moved more than X%'. At matched trade counts the z-gate gives PF 1.48 / +0.96% / 47% win on 260 trades, while raw-return gates calibrated to 242-303 trades give PF 1.29-1.35 / +0.68-0.85% / 43-44% win. The normalization is worth roughly +0.15 profit factor and ~3 points of win rate -- so the division by volatility is doing real work, not decoration. That is the single most useful validation in this submission, because it is what distinguishes this from a plain long-horizon momentum strategy.
DEFAULTS SIT ON A PLATEAU, NOT A PEAK -- deliberately, so the optimizer is not handed a pre-overfit starting point. On lookback: short horizons lose and long ones win, monotonically and with a wide flat top. A 1-day lookback returns PF 0.85-0.99 (negative expectancy at every threshold), 2 days 1.01-1.15, 4 days 1.03-1.22, and then everything from 12.5 days to 30 days sits at PF 1.21-1.64 (12.5d -> 1.45, 15d -> 1.48, 17.5d -> 1.38, 20d -> 1.23, 25d -> 1.35, 30d -> 1.53 at z=1.0). The shipped 15-day lookback is in the middle of that plateau. On threshold: z=1.25 scored better (PF 1.64) but sits at the edge of the tested range on 187 trades, so I shipped 1.0 to keep 260 trades and leave room to move either way. On trail: 2.0 -> PF 1.27, 2.5 -> 1.43, 3.0 -> 1.48, 4.0 -> 1.60 but with the trail no longer binding (41 of 188 exits become max-hold), so 3.0 is the last setting that keeps a large sample AND a trail-dominated exit profile.
DESIGN NOTES. The signal is returned UNCLIPPED in z units -- magnitude is the conviction, and squashing it into [-1,1] would destroy the exact information this hypothesis rests on -- and it is computed on every bar rather than gated behind the entry condition, so it always varies and stays inspectable. The sqrt(L) term is what makes one z-threshold comparable across different lookback settings, so the optimizer does not have to re-tune entry_z every time it moves the lookback. The ATR used for the trail and for sizing excludes the bar being decided, so the risk unit is never inflated by the very move being acted on. The momentum-reversal exit fired ZERO times at every setting tested (the trail always gets there first over a multi-day lookback); I kept it as a structural safety net for wide-trail settings and have flagged it as inactive rather than quietly leaving dead-looking code. Both rolling windows are ingested by timestamp catch-up over the bar buffer, because the base class does not call calculate_signal during warmup and accumulating there would leave them empty exactly when the strategy first becomes eligible to trade.
RISK AND VENUE. Sizing is anchored to a 3-ATR gap floor rather than to the trail itself, so a tight trail cannot produce the largest position where the stop is least enforceable -- the pattern behind the 90%+ drawdowns in this book -- and gross notional is capped at 0.5x equity independently of the equity path, with risk_frac locked so an optimizer cannot buy Sharpe with notional instead of edge. Warmup is 182 bars (~8% of a 365-day 4H window). Turnover is ~40 entries a year against a +0.96% per-trade average, so fees are a rounding error rather than the deciding term. Futures (BINANCE USD-M MARGIN) is required rather than preferred: strong DOWNWARD momentum is traded 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 here.
Hypotheses
failed deflated Sharpe: DSR=0.006, expected-max=1.522 over 225 trials — the selected Sharpe (0.778) is far below the Sharpe you'd expect to find by luck alone, i.e. indistinguishable from best-of-N noise. Two unwaivable hard-gate failures confirm it: PBO 0.664 > 0.5 (parameter selection more likely than not overfit) and a failed holdout (sharpe -0.049, ratio -0.058 << 0.70) — the honest recent-data test is a net loser. The optimizer selected a config (entry_z 1.34, lookback 73) that is actually WORSE than the default on the full history (return 139.6%→92.5%, Sharpe 0.857→0.778) by overfitting to fewer trades, and the recent regime has turned decisively against the mechanism (optimized 2025 -11.9%, rolling Sharpe -6 in late 2025, holdout negative) — the exact recent-regime decay flagged at backtest review, now realized. The walk-forward's positive OOS (0.854) is the only green light and is outweighed by DSR/PBO/holdout. Per the overfit → abandon rule this is not an iterate candidate: 225 trials already selected the best and DSR says the search space is noise, so there is no robust parameter region to tune toward, and no parameter change fixes a regime that has stopped paying this momentum edge. It is the momentum class (L38, zero survivors across all clones — triple-timeframe, vol-regime-gated, ensemble-vote, macro-confirmed siblings all died overfit). avg_trade_return_pct 1.21% clears the fee floor, so this is a pure multiple-testing/regime-decay failure, not fee fragility. Abandon rather than spend the final iteration re-overfitting a decayed signal.
Implementation
Long/short BTCUSDT.BINANCE USD-M perpetual on 4H bars whose selectivity comes from momentum STRENGTH rather than timeframe agreement. Every bar it computes a single-timeframe volatility-normalized momentum z-score, z = ln(close_t / close_(t-L)) / (sigma_4h * sqrt(L)), where sigma is the rolling 30-day standard deviation of 4H log returns, and returns that z UNCLIPPED in its natural units. It goes LONG when z >= entry_z and SHORT when z <= -entry_z, so only moves that are decisive relative to the market's own prevailing noise are traded and weak drift is skipped. No second timeframe, no confluence gate, no confirmation feed -- the magnitude gate is the entire filter. Exits: an ATR trailing stop from the best close since entry (detected intrabar, booked at the close), a momentum-reversal safety net, and a 10-day max hold. 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: mom_lookback, entry_z, trail_atr_mult.
Verification Results
Pure-OHLCV BTC momentum — overfit-prone/low-survival family; OOS + holdout are the real test (but recent regime agrees with full history)
Verification Results
~40 entries/yr → small per-window sample; judge robustness on pooled OOS
Backtest Review
avg_trade_return_pct 1.151% — 7.7x the fee floor; a genuinely thick per-trade edge
Backtest Review
profit_factor 1.511 (well above the 1.2 line), Sharpe 0.857 with sharpe_ci_low +0.276 (CI does NOT straddle zero), PSR 0.997
Backtest Review
Contained max_drawdown 11.4%, calmar 11.2, strongly positive alpha +0.0895, capacity $109M
Backtest Review
Positive in 5 of 7 years (only mild -6.2% / -2.2% in 2022/2025); decisive 243-trade genuine long-short with 1.86:1 favorable reward:risk
Backtest Review
Selectivity is a vol-normalized strength gate, materially different from the banned sign-based timeframe confluence, and the trades implement it
Backtest Review
Returns lean on a few large trend days (kurtosis 23.9, skew 2.06) — normal for a trend-follower but must be confirmed not to be 2-3 days in walk-forward
Backtest Review
information_ratio -0.514 vs buy&hold (expected for a long-short, but means it's not beating passive BTC in the bull tape)
Backtest Review
Still fundamentally the momentum class; must clear the deflated-Sharpe / OOS / holdout gates over 225 trials to confirm the edge isn't best-of-N
Analysis
Walk-forward is_overfitted=False with positive avg OOS Sharpe 0.854 — the mechanism has some in-window OOS validity
Analysis
Full-history metrics look strong in-sample (PF 1.57, avg_trade_return_pct 1.21%, win_rate 0.49) and no sensitivity cliffs — but this is exactly the best-of-225 selection the robustness gates discount
Analysis
avg_trade_return_pct 1.21% clears the fee floor — the failure is overfit/regime-decay, not fee fragility
Analysis
Holdout FAILED: holdout_sharpe -0.049, ratio -0.058 << 0.70 — the most-recent OOS slice is a net loser
Analysis
PBO 0.664 > 0.5 — selection more likely than not overfit
Analysis
deflated_sharpe 0.0062 << 0.95 and optimized Sharpe 0.778 far below expected-max-by-luck 1.522 — edge indistinguishable from best-of-N noise across 225 trials
Analysis
Optimizer picked a WORSE config than default (return 139.6%→92.5%, Sharpe 0.857→0.778, DD 11.4%→12.6%); recent regime collapsing (2025 -11.9%, rolling Sharpe -6 late 2025)
Analysis
Momentum class (L38, zero survivors); every sibling in the known-failure set died overfit or in verification
Outcome Summary
BtcVolNormalizedMomentumStrengthLS was the session's most promising candidate: it replaced the banned sign-based timeframe confluence with a volatility-normalized momentum z-score, trading only decisive, high-signal-to-noise moves. Its initial backtest cleared every backtest-review threshold that its siblings couldn't — +139.6% return, profit factor 1.511, a thick +1.151% per-trade edge, and, uniquely, a Sharpe (0.857) whose confidence interval stayed clear of zero. Optimization gave a split verdict: the walk-forward was not flagged overfit with a positive OOS Sharpe of 0.854, but the honest recent-data holdout was a net loser (-0.049), PBO hit 0.664, and the deflated Sharpe of 0.0062 put the optimized Sharpe far below what 225 trials would find by luck. The analyst abandoned it, noting the optimizer had actually selected a worse config than the default and that the recent regime (2025 -11.9%, rolling Sharpe -6) had turned decisively against the mechanism — a multiple-testing and regime-decay failure in the momentum class that has never produced a survivor.
Outcome Summary
Even a strength-gated momentum design with the session's best in-sample profile (Sharpe CI clear of zero, PF 1.51, thick per-trade edge) still failed the honest recent-data holdout and deflated-Sharpe tests — the momentum class has zero survivors, and a regime that has stopped paying the edge can't be fixed by tuning parameters.
Outcome Summary
Backtest-review passed it to optimization ('optimize'), but the analyst abandoned it there: despite a walk-forward that was not flagged overfit (positive OOS Sharpe 0.854), the decisive failures were a failed holdout (the most-recent OOS slice is a net loser), PBO 0.664 > 0.5, and a deflated Sharpe of 0.0062 — the optimized Sharpe 0.778 sat far below the expected-max-by-luck of 1.522, marking the edge as best-of-225 noise amid clear recent-regime decay (2025 -11.9%).
Outcome Summary
Trade the BTCUSDT.BINANCE perp long/short on momentum STRENGTH rather than sign-based timeframe confluence — computing a single-timeframe volatility-normalized momentum z-score (return ÷ its own volatility) and acting only when that z-score is large in magnitude, i.e. on decisive high-signal-to-noise moves.
Outcome Summary
The initial backtest was the strongest of the session: 243 trades (141 long / 102 short), total return +139.6%, profit factor 1.511, Sharpe 0.857 with a confidence interval that did NOT straddle zero (CI [0.276, 1.434]), avg per-trade return +1.151% (~7.7x fees), alpha +0.089, max drawdown 11.4%, positive in 5 of 7 years. But optimization exposed fragility: the holdout failed (Sharpe -0.049, ratio -0.058), PBO 0.664, deflated Sharpe 0.0062, and the optimizer's selected config was actually worse than the default.
Backtest and paper results are hypothetical. Trading involves risk of loss.