Skip to content

View original

BinanceAbsoluteTimeSeriesMomentumLSBasketDaily

Hypotheses

Time-Series (Absolute) Momentum Basket, Long-Short Across Majors (Binance USD-M Futures, Pure OHLCV, Managed-Futures Style, Weekly Rebalance, Trend-Flip Exit)

Hypotheses

A LONG-SHORT, MULTI-INSTRUMENT TIME-SERIES (absolute) MOMENTUM basket across ~10 confirmed-full-history Binance USD-M major perpetuals. Each asset is held LONG when its OWN trend is up and SHORT when its OWN trend is down (the canonical managed-futures / CTA mechanism), equal-risk weighted across the basket. This captures the ONE validated crypto edge -- MOMENTUM/CONTINUATION (the cross-sectional momentum basket is positive and in optimization; every fade was anti-predictive) -- in a form the portfolio lacks: ABSOLUTE (own-trend) momentum, distinct from the existing RELATIVE (cross-sectional rank) momentum. EVERY design choice fixes a specific failure this session: (1) FUTURES venue -- SPOT strategies repeatedly hit a recurring sizing/accounting bug this session (>100% position, impossible single-day returns, dev loop ignoring it); USD-M futures size cleanly as discrete trackable trades. (2) MOMENTUM direction, not fade -- the anti-predictive fade/reversion family is closed. (3) DIVERSIFIED BASKET, not single-asset -- single-asset momentum/funding edges do NOT transfer to higher-beta alts (funding-trend died on SOL/BNB), but the diversified-basket form is what made cross-sectional momentum robust; a basket spreads idiosyncratic noise. (4) ABSOLUTE momentum = NET-DIRECTIONAL crash protection -- the book is net-LONG when most majors trend up (bull) and net-SHORT when most trend down (bear), so it profits from / protects in downtrends, the exact protection the long-only bull-beta strategies (funding-trend on alts, every non-2021 year negative) lacked. (5) DENSE firing -- across ~10 names whose trends flip periodically, weekly rebalance produces a distributed trade stream (no rare-conjunction trade-starvation -- the Bollinger-squeeze death; no event-sparsity). (6) LET-TRENDS-RUN exit (flip on trend reversal), not small-TP/big-SL -- the losing-by-construction payoff that killed the flush-bounce. NOT the cross-sectional momentum basket (this is absolute own-trend, net-directional, not relative-rank dollar-neutral), NOT single-asset TSM (this is a diversified basket), NOT a fade, NOT supplementary-primary, NOT spot. Intentionally minimal: 3 tunables (trend_lookback, rebalance_days, vol_lookback).

Hypotheses

Iteration-2 fixes the leverage blowup the analyst diagnosed (823% exposure, 262% vol, -100% CAGR from gross drifting to ~8x because the cap only ran on the weekly grid). Smallest targeted change, all earlier-passing logic untouched: (1) NEW _enforce_gross_cap() runs every bar in calculate_signal — it recomputes live summed leg notional against max_gross*current_equity and scales every leg down proportionally via netting reductions when over, so winner appreciation and stop-driven loser closures can no longer let gross balloon between rebalances; (2) scale_max tightened 1.5 -> 1.0 so the rebalance pass itself (base*sum(scales) = equity*gross_exposure*sum(scale)/n <= equity*max_gross) cannot over-lever in calm regimes; (3) the every-bar cap makes the per-leg stop symmetric with re-capping — closing losers no longer leaves winners over-weight because gross is re-checked the next bar. Together these hold exposure near ~100% gross, which should bring annualized_volatility well under 50% and eliminate the impossible >15% daily returns. Per the analyst's note, if impossible daily returns persist even with gross capped at ~100%, that points to an engine leg-marking issue rather than this sizing bug.

Hypotheses

Failed the multiple-testing and forward gates decisively on attempt 1. Deflated Sharpe is 0.0006 with the optimized Sharpe (0.227) FAR below the 225-trial expected-max luck bar (1.2083) — the selected config is worse than luck (is_significant=FALSE, sharpe_ci_low -0.6646 through zero, PBO 0.5304). The walk-forward is is_overfitted=TRUE with a NEGATIVE average OOS (-0.040; windows [-1.995, 1.608, 0.266]), and the holdout 'pass' is spurious (ratio 0 computed against the negative WF-OOS). The result is outlier-carried paper profit, not a realized edge: return_kurtosis 578.9, tail_ratio 0.041, and 67.9% of the optimized headline (187% of the base) is un-exited open mark-to-market. Decisively, optimization made it WORSE (base 0.301 -> optimized 0.227) and the sensitivity surface is uniformly ~0.25-0.50 Sharpe across every parameter, so there is no robust region to tune toward. Not iterate: a uniformly sub-0.5 surface with a negative average OOS and a base that beats the optimized config means a second best-of-225 sweep re-finds the same sub-significant, negative-OOS fit; the net-directional L/S construction with per-bar gross-capping is the design, not a knob. Not revise_hypothesis: the net-directional momentum-basket mechanism is ALREADY validated on promoted siblings (Absolute Momentum ~1.36, Dual Momentum ~1.61), so this long-short absolute-TSM variant on the same 10-major universe is variant-selectivity failing deflation, not a proven mechanism stranded on a dead target. FAILURE PATTERN: recasting the validated net-directional momentum basket as a long-short absolute-TSM variant with per-leg inverse-vol weighting and aggressive per-bar gross capping trades away the very directional Sharpe that made the promoted siblings significant — the edge collapses to ~0.3 Sharpe (DSR 0.0006, negative avg OOS, kurtosis 578, tail_ratio 0.04), and a clean gross cap plus dense firing do not rescue a construction that cannot clear best-of-N deflation. The promoted Absolute/Dual baskets remain the configurations where this class clears the bar.

Implementation

Long-short absolute (time-series) momentum basket across 10 Binance USD-M major perpetuals on 1-DAY bars, pure OHLCV. Each asset is held long when its own trend (close vs close[-1-trend_lookback]) is up and short when down, inverse-vol equal-risk weighted, weekly rebalance with a let-trends-run flip exit. Net-directional (net-long in bull regimes, net-short in bear) for built-in crash protection. Leverage-safe: per-leg stop every bar plus an aggregate gross-exposure cap re-enforced EVERY bar against max_gross*equity.

Backtest Review

Mechanism matches the hypothesis and is the analyst-validated class: net-directional absolute (own-trend) momentum basket, balanced long-short (254 long / 252 short), dense distributed firing (506 trades) as designed — no trade starvation

Backtest Review

Gross sizing looks controlled: avg_position_pct 25.6% (no obvious 8x blowup in position sizing); net-short crash protection present (2022 +38.9%)

Backtest Review

Functioning and non-degenerate: positive Sharpe 0.30, total_return +250%, healthy sample for meaningful optimization

Backtest Review

Fee-fragile: profit_factor 1.07 with commission 1.61% + impact 7.18% of gross — fees consume most of the edge; win_rate 34.8%

Backtest Review

Outlier-carried and inconsistent: return_kurtosis 88.9, skew 7.6, tail_ratio 0.045 (fat left tail), annual returns swing wildly (2023 -57.6%, 2025 -29.1%, 2024 +67.9%, 2026 +106.6%)

Backtest Review

High risk: max_drawdown 40.9% (CI high 97.9%), max_consecutive_losses 19, downside_deviation 29.8; end_unrealized_pct 187% means headline is heavily open MTM

Backtest Review

exposure_pct 830% should be verified during optimization to confirm it is 10-leg time-in-market aggregate and not a gross-cap failure

Analysis

Mechanism class is real and validated on promoted siblings (Absolute/Dual momentum baskets); diversified 10-major construction fires densely (549 trades) with clean discrete futures sizing and no leverage blowup (gross cap held, max_dd 23.6%)

Analysis

Not an implausible artifact — Sharpe 0.23 is modest, and benchmark_meaningful=false is correctly handled (judged on absolute risk-adjusted metrics)

Analysis

Failed deflated Sharpe about as hard as possible: DSR 0.0006, optimized Sharpe 0.227 FAR below the 225-trial expected-max luck bar 1.2083, is_significant=FALSE

Analysis

sharpe_ci_low -0.6646 — CI deeply through zero; PBO 0.5304 (>0.5)

Analysis

walk_forward is_overfitted=TRUE with NEGATIVE avg OOS (-0.040); OOS windows [-1.995, 1.608, 0.266]

Analysis

Uniformly weak sensitivity surface (~0.25-0.50 Sharpe everywhere, cliff on trend_lookback) — no robust region reaches even 0.5, let alone the luck bar

Analysis

Outlier-carried paper profit: return_kurtosis 578.9, tail_ratio 0.041 (catastrophic left tail), end_unrealized_pct 67.9% optimized / 187% base — headline mostly un-exited open MTM

Analysis

Optimization made it WORSE (base 0.301 -> optimized 0.227) — the OOS-selected config generalizes even worse on full data

Analysis

Do not optimize — the backtest is a leverage-blowup artifact, not a usable edge. The gross-exposure cap is not holding: exposure_pct is 823% against an intended ~100% (gross_exposure=1.0, max_gross=1.0), annualized_volatility is 262%, and CAGR is -100% (the account blew up, max_drawdown_ci ~100%). The impossible daily returns (+219% 2021-12-14, +296% 2026-03-31, -210% 2025-07-31, monthly 2026-04 +601%) are consistent with ~8x effective leverage, not a benign marking glitch. ROOT CAUSE: the gross cap (cap = equity*max_gross, gscale = cap/total_gross) is applied ONLY inside the weekly _rebalance; between rebalances, (a) winners appreciate, (b) the per-leg stop closes losers but lets winners/exposure run, and (c) inverse-vol scaling (scale_max 1.5 across 10 legs) scales gross up in calm regimes — so gross balloons far past 100%, and as equity collapses the exposure% ratio explodes further. FIX: (1) enforce the gross-exposure cap EVERY bar, not just on the weekly grid — recompute total gross notional vs max_gross*current_equity each bar and scale all legs down if over; (2) tighten scale_max (e.g. 1.0) and verify base*sum(scales) cannot exceed max_gross*equity; (3) make the per-leg stop symmetric with exposure re-capping so closing losers doesn't leave winners over-weight. Re-backtest and CONFIRM exposure_pct stays <= ~100-120%, annualized_volatility < ~50%, and NO daily return exceeds ~15-20% before resubmitting for optimization. MANAGE EXPECTATIONS: the clean 3-asset sibling of this exact net-directional momentum-basket mechanism (HL) failed the deflated-Sharpe gate post-optimization this session (DSR 0.0, PBO 0.89) — the 10-asset/longer-Binance-history diversification may improve robustness, but the mechanism faces a high DSR bar even once sizing is fixed. If after the fix the impossible daily returns persist (i.e. cap holds at ~100% gross but returns still show >50% days), that indicates a multi-instrument leg-marking issue rather than a sizing bug — escalate for engine review rather than re-iterating.

Outcome Summary

This strategy applied a CTA-style absolute time-series momentum mechanism as a long-short, net-directional basket over ~10 Binance USD-M majors, with each design choice framed to fix a prior session failure (spot sizing bugs, fade signals, single-asset fragility, leverage blowups). It cleared the pre-optimization review (verdict: optimize) as a functioning, densely firing, balanced long-short book with +250% headline return, but only a modest Sharpe of 0.30 and fee-fragile 1.07 profit factor. Optimization actually degraded it (Sharpe 0.301 → 0.227), and it then failed every significance and forward gate: deflated Sharpe 0.0006, Sharpe far below the 1.21 luck bar, PBO 0.53, and an overfitted walk-forward with negative average OOS. Because the net-directional momentum-basket mechanism is already validated on promoted Absolute and Dual momentum siblings, the analyst judged this a sub-significant, outlier-carried variant rather than a mis-tuned or novel edge and abandoned it.

Outcome Summary

Recasting an already-validated net-directional momentum basket as a long-short absolute-TSM variant with per-leg inverse-vol weighting and aggressive per-bar gross capping traded away the directional Sharpe that made the promoted Absolute/Dual siblings significant, so a clean gross cap and dense firing could not rescue a construction that collapses to ~0.3 Sharpe and cannot clear best-of-N deflation.

Outcome Summary

The analyst abandoned it at the post-optimization ANALYZING stage (attempt 1): it failed the deflated Sharpe test almost maximally (DSR 0.0006 vs 0.95) with the optimized Sharpe 0.227 far below the 225-trial expected-max luck bar of 1.2083, sharpe_ci_low -0.6646, PBO 0.5304, and a walk-forward flagged is_overfitted=TRUE with a negative average OOS Sharpe of -0.040.

Outcome Summary

A long-short, net-directional absolute (time-series) momentum basket across ~10 Binance USD-M major perpetuals on daily bars, holding each asset long or short by its own trend with inverse-volatility risk weighting, weekly rebalance, and per-bar gross-exposure capping in the managed-futures/CTA style.

Outcome Summary

The base backtest returned +250% total (CAGR 9.0%) over 2046 days on 506 balanced trades (254 long / 252 short) with a modest Sharpe 0.30, profit factor 1.07, and 40.9% max drawdown; optimization made it worse, dropping to Sharpe 0.227 and +110% total return with profit factor 1.17 and 23.6% max drawdown.
Strategy report

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