- trackH volume_vol: no uncorrelated additive edge; profitable signals are trend-in-disguise (corr 0.6-0.75); MR/declining-volume fade dead even at fee 0; OBV-up filter is a defensive DD overlay only (13.3->10.1% DD but -CAGR), not new alpha - trackI momentum/reversal: no formulation beats 1-3-6m sign-blend OOS on both assets; z-score continuous momentum = same edge (corr 0.96), lower DD 8.4% but lower CAGR; long-horizon reversal not bankable (negative/flat standalone). ~1.3 Sharpe ceiling holds. - TP01 (12h sign-blend) remains the deployable winner
4.5 KiB
Track H — Volume, Range & Volatility-Regime signals (BTC/ETH, certified, >=12h)
Date: 2026-06-19
Script: scripts/research/trackH_volume_vol.py (runnable, self-contained)
Question: does any volume / range / volatility-regime signal ADD to the deployed winner
TP01 (vol-targeted trend portfolio, 12h, Sharpe ~1.32) — i.e. net-positive OOS on BOTH BTC &
ETH AND uncorrelated (|corr|<~0.3) — OR work as a regime filter that lifts TP01's Sharpe / cuts
its DD?
Method (honest)
- Same causal per-bar engine as
TrendPortfolio.net_returns: build a continuous TARGET decided with data<= close[i], HOLD it during bari+1(pos_held[t]=target[t-1]), gross = pos×ret, fee on|Δpos|. Identical in spirit toharness.backtest_signals(decide≤close[i], fill at close[i]); two discrete signals cross-checked throughbacktest_signalsdirectly. - All features (volume z-score, OBV, ranges, realized vol) use prior/rolling windows shifted so
bar
isees only<= i. 12h/1d resampled from certified 1h viaresample_tf(label='left'), consumed index-based with the +1 hold → no open-label leak. - Fee 0.10% RT baseline + sweep 0.00–0.40% RT. OOS 65/35 + per-year. Grid on BOTH assets. Turnover and correlation-to-TP01 reported for every signal.
- >=12h only (12h + 1d). Sub-12h excluded per the standing lesson (fees + HF-noise overfit + the 4h open-label look-ahead trap).
Signals tested
VT-long (volatility-managed long), VolBreakout (volume-z-confirmed Donchian), OBV-trend, VW-mom (volume-weighted momentum), RangeExpand (range-expansion breakout), NR7-break (narrowest-range breakout), DeclVolRev (declining-volume fade/reversal). Plus regime overlays on TP01: keep-low-vol, keep-high-vol, vol-managed ×1.5, OBV-up confirmation.
Results (12h headline, fee 0.10% RT)
| signal | corr→TP01 | OOS Sharpe BTC/ETH | note |
|---|---|---|---|
| VT-long | 0.66 / 0.69 | 0.80 / 0.14 | trend-in-disguise; weak OOS ETH |
| VolBreakout | 0.69 / 0.71 | 0.54 / 0.49 | profitable but correlated |
| OBV-trend | 0.61 / 0.63 | 0.96 / 0.68 | profitable but correlated; turnover ~75/yr |
| VW-mom | 0.64 / 0.67 | 0.98 / 0.74 | basically TSMOM; correlated |
| RangeExpand | 0.48 / 0.49 | 0.37 / 1.04 | lower corr but BTC weak; ETH negative on 1d |
| NR7-break | 0.48 / 0.49 | 0.79 / 0.02 | fails OOS on ETH |
| DeclVolRev | -0.15 / -0.11 | -1.15 / -0.44 | negative even at zero fee |
Grid robustness (12h, % cells positive full+OOS on both assets): VW-mom 100%, VT-long 100%, VolBreakout 96%, RangeExpand 96%, OBV-trend 75% — but the robust ones are precisely the ones that are highly correlated to TP01. Fee sweep: trend-family signals survive to 0.40% RT; DeclVolRev gets worse with fees (it trades constantly).
Regime filters on TP01 (12h, 50/50 portfolio)
| variant | full Sharpe | OOS Sharpe | maxDD | CAGR | turn/y |
|---|---|---|---|---|---|
| TP01 baseline | 1.32 | 0.90 | 13.3% | 16.2% | 11.5 |
| × keep LOW-vol | 0.94 | 1.11 | 14.1% | 7.7% | 9.5 |
| × keep HIGH-vol | 0.98 | 0.18 | 9.9% | 7.9% | 4.9 |
| × vol-managed ×1.5 | 1.33 | 0.96 | 17.9% | 18.1% | 15.4 |
| × OBV-up only | 1.49 | 1.04 | 10.1% | 14.4% | 18.2 |
OBV-up filter across EMA span: full Sharpe 1.49–1.52 (span 15–30), DD 7–10%, but OOS gain is marginal (0.90→1.04 at span 30) and fades for span≥45 (OOS 0.69–0.73). It cuts ~2pp CAGR and raises turnover ~60%.
Verdict (honest)
- No uncorrelated additive edge exists. Every profitable volume/range/vol signal is trend in disguise (corr 0.61–0.75 to TP01) → cannot raise the 50/50 portfolio Sharpe. The genuinely lower-corr signals (RangeExpand, NR7 ~0.48) fail OOS on at least one asset.
- Mean-reversion / declining-volume fade is dead — negative net AND at zero fee on both assets. Reconfirms the v2.0.0 contamination lesson; MR is not a real edge on certified data.
- Vol-regime gating hurts (keep-low / keep-high both drop Sharpe to ~0.95). The vol-managed overlay is Sharpe-neutral but DD-worse.
- The only non-harmful overlay is OBV-up trend-confirmation: it cuts DD (13.3%→10.1%) and nudges full Sharpe to ~1.49, but it is trend double-confirmation (de-risking), not new alpha; it costs CAGR, raises turnover, and the OOS Sharpe gain is within noise and span-sensitive. It is worth keeping in mind as a defensive DD overlay, not as a Sharpe improver.
- Bottom line: the ~1.3 portfolio-Sharpe ceiling on BTC/ETH-only holds. TP01 stays the deployable winner. Volume/range/vol add nothing uncorrelated.