Skip to content

View original

BtcMomentumAccelerationLS

Hypotheses

BTC Momentum-Acceleration Directional, Long-Short (Single-Instrument BTCUSDT.BINANCE Perp — Trade When Momentum Is ACCELERATING, i.e. the Rate-of-Change of Momentum Is Positive and Aligned, Not Merely Present, 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 ACCELERATION — the second derivative of price — rather than the sign-based dual-timeframe confluence the meta-learner has banned (L38) or the level-based strength/vote constructions already in my queue. The thesis: the strongest, most-persistent BTC trend legs are those where momentum is INCREASING (accelerating), not merely positive-but-flat — a decelerating trend is losing steam and prone to reversal, while an accelerating one draws in momentum-chasers and continues. It computes short-term momentum and its RATE OF CHANGE, and takes a position only when both the momentum AND its acceleration agree in direction (accelerating up → long, accelerating down → short). This is a materially different selectivity mechanism from sign (survivor), magnitude-strength (pending), and majority-vote (pending): it conditions on the DERIVATIVE of momentum, targeting the highest-conviction ignition phase of trends. It stays on BTC (the one instrument with any demonstrated tradability), 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 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: 169 trades, 40% win rate, +0.90% average net return per trade after a 0.10% round trip, PF 1.38, exit mix 161 trail / 8 max-hold / 0 reversal. Trailing 365-day window: 29 trades, PF 1.65, +0.71% per trade -- so the sandbox has a comfortable sample and the recent regime agrees with the full history. THE LOAD-BEARING TEST IS THE ABLATION, AND IT SUPPORTS THE HYPOTHESIS STRONGLY. Same window, same exits, same threshold, but gating on momentum LEVEL alone instead of requiring acceleration: 377 trades at +0.12% per trade and PF 1.05, versus 169 trades at +0.90% and PF 1.38 with the acceleration requirement. At this horizon plain momentum is barely above break-even and the derivative condition is doing essentially all of the work -- which is exactly the claim the hypothesis makes. THE HONEST CAVEAT, FROM THE SAME SWEEP: THE BENEFIT IS LOOKBACK-DEPENDENT AND REVERSES AT LONG HORIZONS. Acceleration-gated vs momentum-only at matched settings gives PF 1.44 vs 1.25 at a 10-day window (helps), 1.47 vs 1.48 at 15 days (neutral), and 1.14 vs 1.23 at 20 days (hurts). The derivative adds information where momentum alone is weak and adds nothing once the momentum horizon is long enough to be strong by itself. The shipped 8-day window sits in the region where it helps; the Analyst should expect optimization to stay short rather than wander long, and should treat a long-lookback optimum as evidence the acceleration premise stopped mattering rather than as a better version of this strategy. DEFAULTS ARE DELIBERATELY NOT THE MEASURED OPTIMUM. Across half_bars 12/15/18/21/24/30/36 the profit factor runs 1.23/1.27/1.27/1.58/1.38/1.49/1.67 -- every setting positive, but with a visible spike at 21. Shipping that spike would hand the optimizer a pre-overfit starting point, so the default is 24: a local DIP whose neighbours on both sides both score better. Similarly entry_z 1.0 scored better than the shipped 0.8 (PF 1.56 vs 1.38) but on far fewer trades, and trail 2.5 scored better than 3.0 (1.64 vs 1.58 at the adjacent lookback). The intent is that optimization discovers the good region rather than starting inside it, and that the reported backtest is not already the best of a private sweep. DESIGN CHOICES THAT MATTER. (1) The orthogonal rotation is the core construction: m and a are a rotation of (r1, r2), so the level and the acceleration carry independent information rather than being two correlated views of the same number -- essential for a 'trade the derivative, not the level' thesis, and it means one lookback parameter drives both instead of a fast/slow pair that could drift into a disguised dual-timeframe confluence. (2) min() rather than a geometric mean: I tested both, and sqrt(|m|x|a|) lets a huge momentum compensate for near-zero acceleration, which is precisely the 'momentum present but not building' case the hypothesis exists to exclude; the weakest-link operator makes the conjunction real. (3) The conjunction is expressed as ONE continuous score with ONE threshold rather than `if cond_a and cond_b`, because compound entry gates multiply selectivity and are the most common cause of a strategy that fires almost never -- here the signal still varies every bar and still reports the lean when the two disagree. (4) The disagreement branch is hard-clipped strictly below entry_z, so a bar where momentum and acceleration point opposite ways can never open a position however extreme it gets; the clip binds only in absurd (>3.5-sigma half-window) cases, but without it the damped branch would eventually admit an entry that contradicts the hypothesis. (5) The reversal exit fired ZERO times at every setting tested; I kept it as a safety net for wide-trail settings and have flagged it as inactive rather than leaving dead-looking code unexplained. 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. 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. Warmup is 182 bars (~8% of a 365-day 4H window). Turnover is ~26 entries a year against a +0.90% per-trade average, so fees are a rounding error rather than the deciding term. Futures (BINANCE USD-M MARGIN) is required rather than preferred: accelerating 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.0, expected-max=2.70 over 225 trials — the selected Sharpe (1.05) is below the best-of-N luck bar, so it is indistinguishable from noise. Two independent HARD gates also fail: PBO=0.577>0.5 and holdout too thin (7 trades<10, ratio 0.307 vs 0.70 floor). Walk-forward OOS unstable [5.03, 3.13, -2.12] with the most recent window negative; optimization curve-fit trade count down to 44. Not a fee death (avg_trade_return_pct 3.76%) — the edge does not survive multiple-testing deflation or forward validation. Single-instrument pure-OHLCV directional-momentum family (0/213, L9/L41/L63); overfit-type death, so revising would just overfit again. Already abandon-ed once and reopened with no progress; attempt 2 of 2.

Implementation

Long/short BTCUSDT.BINANCE USD-M perpetual on 4H bars that conditions on the SECOND derivative of price. It splits the momentum window into two equal halves, volatility-normalizes both to the same horizon, and rotates them into an orthogonal pair: m = (r1+r2)/sqrt(2) is the momentum LEVEL and a = (r1-r2)/sqrt(2) is its DERIVATIVE (how much momentum changed between halves). The signal is sign(m) * min(|m|,|a|) when the two agree in sign, damped 0.25x and hard-clipped below the entry threshold when they disagree. Thresholding that one value is exactly equivalent to requiring both |m| and |a| above entry_z with matching signs -- a weakest-link soft AND rather than a compound gate, so a strong level cannot compensate for feeble acceleration. Goes LONG when accelerating up, SHORT when accelerating down. Exits: an ATR trailing stop from the best close since entry (detected intrabar, booked at the close), an acceleration-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: half_bars, entry_z, trail_atr_mult.

Verification Results

Fragile horizon-specific edge — acceleration benefit reverses at long lookbacks; jagged param surface; constrain optimizer to short lookbacks

Verification Results

Thin sandbox (25 trades, CI straddles zero) from double-condition selectivity — judge on pooled OOS

Backtest Review

avg_trade_return_pct 0.865% — 5.8x the fee floor; a genuinely thick per-trade edge

Backtest Review

profit_factor 1.385 (above the 1.2 line), Sharpe 0.618 with sharpe_ci_low +0.0075 (CI above zero), PSR 0.978, positive alpha +0.0562

Backtest Review

Contained max_drawdown 16.4%, calmar 3.69, capacity $86M; decisive 170-trade genuine long-short with 2.1:1 favorable RR

Backtest Review

Positive in 6 of 7 years including the 2022 bear (+5.6%); acceleration gate is a non-banned mechanism and the ablation shows it adds real edge (PF 1.05→1.38)

Backtest Review

sharpe_ci_low +0.0075 sits right at the zero boundary — the risk-adjusted edge is real but thin (weaker than the vol-normalized sibling's +0.276)

Backtest Review

Developer discloses the acceleration benefit is lookback-dependent and REVERSES at long horizons (helps 10d, hurts 20d) — a real overfit risk the optimizer must avoid

Backtest Review

2025 weak (rolling Sharpe to -4.5); returns lean on a few large trend days (kurtosis 36, skew 2.98) — must confirm not 2-3 days in walk-forward

Backtest Review

Still the momentum class; must clear deflated-Sharpe / OOS / holdout over 225 trials

Outcome Summary

BtcMomentumAccelerationLS conditioned on the second derivative of price — trading only when momentum was actively building, not merely present — using an elegant orthogonal decomposition so level and acceleration carried independent information, with an ablation showing the acceleration gate lifted profit factor from 1.05 to 1.38. Its initial backtest earned an 'optimize' verdict (PF 1.385, Sharpe CI just clear of zero, positive in six of seven years), and optimization produced attractive headline numbers (PF 1.98, Sharpe 0.857, 8.6% drawdown). But the robustness block was decisive: the final honest holdout collapsed to a Sharpe of 0.0038, the deflated Sharpe was zero, the walk-forward's most-recent window was negative, and half_bars was flagged as a cliff parameter. The analyst abandoned it as a multiple-testing/holdout-collapse failure amid clear 2025 regime decay, noting every nearest sibling in the zero-survivor momentum/confluence class had died the same way and that reframing the mechanism would only overfit again.

Outcome Summary

A genuinely orthogonal selectivity mechanism (acceleration) with a clean in-sample profile and even a passing PBO still collapses on the honest holdout and deflated-Sharpe tests — and the developer's own disclosure that the acceleration benefit reverses at long horizons was a real overfit tell, confirming the momentum/confluence class has no survivors.

Outcome Summary

Backtest-review passed it to optimization ('optimize'), but the analyst abandoned it there: the unwaivable holdout gate failed (Sharpe 0.0038, ratio 0.003 << 0.70) and the deflated Sharpe was 0.000 (optimized Sharpe 0.857 below the expected-max-by-luck of 1.976, i.e. best-of-N noise), with inconsistent walk-forward OOS windows [2.78, 1.90, -0.89], a cliff-flagged parameter, and clear recent-regime decay (2025 -6.9%).

Outcome Summary

Trade the BTCUSDT.BINANCE perp long/short conditioned on momentum ACCELERATION — the second derivative of price — taking positions only when short-term momentum and its rate of change agree in direction (accelerating up → long, accelerating down → short), targeting the ignition phase of trends.

Outcome Summary

The initial backtest was solid: 170 trades (96 long / 74 short), total return +69.1%, profit factor 1.385, Sharpe 0.618 with a confidence interval just above zero (CI [0.0075, 1.216]), avg per-trade return +0.865% (~5.8x fees), positive in 6 of 7 years including the 2022 bear. The optimized config looked even cleaner in isolation (PF 1.98, Sharpe 0.857, DD 8.6%, 104 trades), but the honest holdout collapsed to a Sharpe of 0.0038 (ratio 0.003) with a deflated Sharpe of 0.000.
Strategy report

Backtest and paper results are hypothetical. Trading involves risk of loss.