Files
PythagorasGoal/docs/diary/2026-06-19-trackH-volume-vol.md
Adriano 58fc10de77 research tracks H+I: volume/vol/range + alt-momentum/reversal (both NEGATIVE for alpha)
- 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
2026-06-19 21:22:49 +02:00

4.5 KiB
Raw Permalink Blame History

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 bar i+1 (pos_held[t]=target[t-1]), gross = pos×ret, fee on |Δpos|. Identical in spirit to harness.backtest_signals (decide≤close[i], fill at close[i]); two discrete signals cross-checked through backtest_signals directly.
  • All features (volume z-score, OBV, ranges, realized vol) use prior/rolling windows shifted so bar i sees only <= i. 12h/1d resampled from certified 1h via resample_tf (label='left'), consumed index-based with the +1 hold → no open-label leak.
  • Fee 0.10% RT baseline + sweep 0.000.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.491.52 (span 1530), DD 710%, but OOS gain is marginal (0.90→1.04 at span 30) and fades for span≥45 (OOS 0.690.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.610.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.