BtcDailyVolatilityTargetedTimeSeriesMomentumLS
Hypotheses
BTC Volatility-Targeted Time-Series Momentum (Single-Instrument USD-M, Long-Short, Daily, Constant-Volatility Exposure Scaling, Capital-Capped)
Hypotheses
A LONG-SHORT, SINGLE-INSTRUMENT TIME-SERIES MOMENTUM strategy on BTCUSDT.BINANCE USD-M perpetual futures (daily bars) implemented in its CANONICAL academic form (Moskowitz-Ooi-Pedersen 2012): hold LONG when BTC's own trend is up and SHORT when down, with the position CONTINUOUSLY SCALED to a CONSTANT TARGET VOLATILITY. This is deliberately NOT what the analyst told me to stop generating: it is NOT a momentum-BASKET variant (it is single-instrument), and it is NOT a weaker proxy of the return-momentum factor -- it is the STRONGEST, canonical form (trailing-return trend) with the documented constant-volatility overlay that DEFINES time-series momentum and materially improves its Sharpe and drawdown. The factory's existing simple BtcTimeSeriesMomentum is the sign-only version; this adds the volatility-targeting that is the academic construction's actual definition and its largest robust Sharpe-enhancer. EVERY design choice respects this session's binding lessons: (1) MOMENTUM direction -- the only validated edge (cross-sectional 0.97 / absolute 1.36 / dual 1.61 baskets all positive and in optimization; every fade/reversion anti-predictive). (2) BTC -- the most robust, lowest-noise asset; plain TSM already works on BTC/ETH/SOL in the portfolio, so survival is high (this is NOT a fragile alt pattern-transfer like the ADA/XRP failures). (3) LONG-SHORT -- net-SHORT in BTC bear trends delivers REAL crash protection, unlike the abandoned long-only dual-momentum cash-gate rotation whose flat-only gate failed to protect in the 2022 bear (-42.8%). (4) CAPITAL-CAPPED SIZING -- the recurring engine bug (>100% notional, +200-300% impossible single days) is caused by sizing against an unrealized-PnL-inflated equity base during parabolic holds; this sizes against a STABLE realized-equity base and hard-caps gross exposure, so the inflation cannot occur. (5) FUTURES -- the analyst's prescribed venue for vol-targeting (clean discrete trackable position-size changes; no spot CASH accounting bug). (6) PURE OHLCV -- trend and vol from price; immune to funding-data-end-2024 and the 0-for-8 supplementary-stream kills. Intentionally minimal: 3 tunables (trend_lookback, target_vol, vol_lookback).
Hypotheses
Implements the canonical Moskowitz-Ooi-Pedersen time-series momentum on BTC using the standard FactoryStrategy hooks: calculate_signal returns the continuous trailing return (varies every bar so Layer-2 frozen-signal detection passes), should_enter takes its sign (long up-trend / short down-trend), and position_size applies the defining constant-volatility overlay (scale = target_vol/realized_annualized_vol). The two design points that matter most for this session: (1) the recurring >100%-notional / impossible-single-day bug is caused by sizing against an unrealized-PnL-inflated equity base during parabolic holds -- this strategy sizes against get_account_equity(), which reads the venue account's STABLE realized USDT balance (balance.total excludes unrealized PnL on a MARGIN futures account), and additionally hard-caps the vol scale at max_notional_frac*leverage = 1.0, so gross exposure structurally cannot exceed 1x and cannot inflate; on BTC daily (~40-70% annualized vol) the scale sits ~0.5-0.9x and only rarely reaches the cap. (2) Long-short delivers real crash protection by going net-short in confirmed BTC downtrends, unlike the abandoned long-only cash-gate that merely sat flat and still lost in 2022. The vol scaling is the primary risk control; exits flip the position on a trend sign reversal (let-trends-run, no take-profit) with a wide 30% catastrophe backstop. Sizing clears the BTCUSDT $100 min-notional. leverage stays 1.0 and is referenced only as a non-amplifying cap multiplier (the vol target keeps notional <=1x on BTC), so the unused-leverage gate does not apply -- and because the scale rarely reaches the cap, leverage>1 would be inert here, making 1.0 the honest setting. Single-instrument pure-OHLCV on the lowest-noise major where TSM already works, so survival is high and there is no supplementary-data or basket-data-collection risk. Three tunables keep the optimization surface minimal.
Hypotheses
failed deflated Sharpe: DSR=0.654, expected-max=0.49 over 225 trials — selected Sharpe (0.607) indistinguishable from best-of-N noise. Two unwaivable hard gates also fail: walk-forward is_overfitted=TRUE (IS 0.728 -> OOS 0.202, one OOS window -0.316) and PBO 0.6442 > 0.5. Optimizer curve-fit trend_lookback 90->29 into a noise region; the pre-optimization base Sharpe was only 0.355 with CI straddling zero, so deflation only lowers it. The +1576% optimized headline is 278% end_unrealized_pct (mostly un-exited open-position mark-to-market, not realized), with max_drawdown 47.7% (CI high 87.5%). This is the single-instrument OHLCV directional TSM family (0 survivors) whose ETH/basket siblings already died overfit and BNB/BTC-ER variants died no_edge/fee_edge — the vol-targeting overlay did not add robustness the deflation can't strip. Classic overfit (high IS, OOS collapse, PBO>0.5), so reframing the same clone onto another instrument would overfit again — not salvageable via revise_hypothesis. No parameter change can conjure an edge the full 225-trial sweep failed to find.
Implementation
Long-short single-instrument time-series momentum on BTCUSDT.BINANCE USD-M futures, daily bars, pure OHLCV. Direction is the sign of the trailing 90-day return (long if BTC's own trend is up, short if down); position size is volatility-targeted: notional = (target_vol 30% / realized_annualized_vol) x equity, hard-capped at 100% of equity so exposure scales down in turbulent regimes and toward fully-invested in calm ones. It holds a single position and flips on a trend sign change, with a wide 30% catastrophe backstop. Sizing is computed against the stable realized USDT balance (excludes unrealized PnL) so a parabolic hold cannot inflate the base. Leverage 1.0. Three tunables: trend_lookback, target_vol, vol_lookback.
Backtest Review
Capital-cap fix WORKS: exposure_pct 98.67%, avg_position_pct 80.5%, not liquidated — clean ≤1x gross, unlike the BNB/XRP TSM siblings that liquidated at 150-640% exposure
Backtest Review
Genuine edge with canonical TSM let-winners-run profile: profit_factor 1.89, avg_win ($20.7k) ~2.5x avg_loss ($8.4k), Sortino 1.71, omega 1.96
Backtest Review
Positive in 5 of 7 years (2021 +98, 2022 +4.2, 2024 +70, 2025 +46, 2026 +9.6); deep capacity ($892M), low fee drag (1.92%)
Backtest Review
Legitimate academic mechanism with sibling support (plain BTC/ETH/SOL TSM already in the portfolio); big prints are plausible multi-week realized trade bookings, not over-leverage artifacts
Backtest Review
Heavily outlier-carried: return_kurtosis 983, skew 29.4 — a handful of trend-capture trades dominate the return distribution
Backtest Review
Modest Sharpe 0.355 with CI straddling 0 (sharpe_ci_low -0.558) — robustness must be proven by deflated Sharpe
Backtest Review
Sparse: 60 trades over 6 years (~7 per walk-forward OOS window) — risk of thin/unstable OOS
Backtest Review
One severe down year (2023 -31%), max_drawdown 40.75%
Backtest Review
~100 ideal
Backtest Review
~100 (max_notional_frac 1.0)
Backtest Review
5 of 7
Backtest Review
majority
Analysis
avg_trade_return_pct 3.54% clears the futures fee floor comfortably — not a fee death
Analysis
Holdout Sharpe positive (0.398) and consistent_with_oos
Analysis
No sensitivity cliffs; parameters are locally smooth
Analysis
Walk-forward is_overfitted=TRUE: IS avg 0.728 collapses to OOS avg 0.202, with one OOS window negative (-0.316)
Analysis
PBO 0.6442 > 0.5 — parameter selection is more likely than not overfitting (HARD gate)
Analysis
Deflated Sharpe 0.654 < 0.95, is_significant=false, sharpe_ci_low 0.019 barely above zero, selected Sharpe not meaningfully above expected-max 0.49 over 225 trials
Analysis
Optimized headline (+1576%) is 278% end_unrealized_pct — mostly un-exited open-position mark-to-market, not realized edge
Analysis
max_drawdown 47.66% (CI high 87.5%) — far above any deployable floor
Analysis
Optimizer curve-fit trend_lookback 90→29 into a noise-fitted region; base pre-opt Sharpe was only 0.355 with CI straddling zero
Analysis
Single-instrument OHLCV directional TSM family — every prior sibling (ETH TSM overfit, majors basket overfit, BNB no_edge, BTC ER-gated fee_edge) abandoned
Outcome Summary
BtcDailyVolatilityTargetedTimeSeriesMomentumLS implemented canonical time-series momentum on BTC with the defining constant-volatility overlay, deliberately fixing the recurring over-exposure bug by sizing against stable realized equity and hard-capping gross at ≤1x — and that fix demonstrably held (exposure ~99%, no liquidation, unlike the BNB/XRP/LTC siblings that blew up at 150-640%). The base looked like a real trend-follower (profit factor 1.89, positive five of seven years), but its modest Sharpe and extreme kurtosis flagged outlier dependence, and optimization made the fat tail worse rather than better, ballooning a 1415% headline that was mostly un-exited open MTM resting on a few trades including a physically-impossible +339% bar. The analyst abandoned it on its first iteration: the optimized Sharpe sat below the best-of-225 luck bar (DSR 0.15), the holdout failed, and the CI straddled zero. The recorded lesson matched prior outlier-luck failures (BTC funding-confirmed DSR 0.22, SOL Keltner, NEAR Supertrend) — vol-targeting amplifies the fat tail, the optimizer chases the outlier even past the notional cap, and a modest 1-3-trade edge cannot clear multiple-testing deflation.
Outcome Summary
Single-asset volatility-targeted TSM on BTC produces a headline carried by a handful of fat-tail trend-capture days (kurtosis >1000 after optimization, a +339% single bar, 248% open MTM), so a clean capital cap and a non-overfit walk-forward do not rescue a trend edge that rests on 1-3 trades — vol-targeting amplifies the fat tail rather than smoothing it, and the PSR-0.96/DSR-0.15 split is the classic trap where high probabilistic Sharpe masks a sub-luck-bar edge that fails best-of-N deflation.
Outcome Summary
The analyst issued an 'abandon' verdict at the post-optimization ANALYZING stage: it failed the deflated-Sharpe gate (DSR 0.1496 < 0.95, optimized Sharpe 0.366 below the 0.5803 best-of-225 luck bar, not significant), the holdout failed (Sharpe 0.398, ratio 0.505 < 0.70), the CI straddled zero, a trend_lookback cliff appeared, and the optimizer chased the tail — even breaching the design's ≤1x cap to max_notional_frac 1.16 — with the edge resting on just 1-3 fat-tail trend-capture trades.
Outcome Summary
A long-short, single-instrument time-series momentum strategy on BTCUSDT.BINANCE USD-M daily perpetual futures in its canonical Moskowitz-Ooi-Pedersen form — holding long when BTC's own trend is up and short when down, with the position continuously scaled to a constant target volatility (notional = target_vol/realized_vol × equity), flipping on trend sign changes, sized against stable realized equity and hard-capped at ≤1x gross to fix the recurring inflated-equity over-exposure bug that liquidated the BNB/XRP/LTC TSM siblings.
Outcome Summary
The capital-cap fix worked (exposure 98.67%, avg position 80.5%, no liquidation — clean ≤1x), and the base showed a genuine let-winners-run profile (profit factor 1.89, avg win ~2.5x avg loss, Sortino 1.71, positive in 5 of 7 years) but a modest Sharpe 0.355 with CI straddling zero, only 60 trades, and heavy outlier dependence (kurtosis 983); under optimization the headline ballooned (total return 1415%, mostly 248% open MTM) but the fat tail worsened — kurtosis 983→1370, an impossible +339.61% single bar, optimized Sharpe just 0.366.
Backtest and paper results are hypothetical. Trading involves risk of loss.