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
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# 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.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.
|
||||
@@ -0,0 +1,99 @@
|
||||
# Track I — Alternative momentum formulations + long-horizon reversal (2026-06-19)
|
||||
|
||||
**Script:** `scripts/research/trackI_momentum_reversal.py` (self-contained, runnable).
|
||||
**Universe:** BTC & ETH only. **TF:** 12h + 1d (sub-12h excluded by rule). **Harness:** identical
|
||||
honest machinery to TP01 — direction decided `<= close[i]`, positions held next bar (`pos_held[1:]
|
||||
= tgt[:-1]`), vol-target by inverse PAST-ONLY realized vol (target 20%, lev cap 2x), NET fee 0.10%
|
||||
RT on turnover, 50/50 BTC+ETH. OOS 65/35 + per-year + fee sweep (0.00–0.40% RT). Correlation to
|
||||
TP01 net returns reported for every candidate.
|
||||
|
||||
## Goal
|
||||
(A) A momentum formulation that BEATS or DIVERSIFIES the canonical 1-3-6m sign-blend (TP01,
|
||||
Sharpe ~1.32). (B) Does the classic LONG-HORIZON REVERSAL (fade ~12m winners) give an
|
||||
uncorrelated positive overlay?
|
||||
|
||||
## PART A — momentum formulations (12h, long-flat, vs TP01 Sharpe 1.32 / OOS 0.90 / DD 13.3%)
|
||||
|
||||
| formulation | Sharpe | IS | **OOS** | CAGR | maxDD | corr→TP01 | BTC | ETH |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| baseline sign-blend 1-3-6m | 1.32 | 1.54 | 0.90 | +16% | 13.3% | 1.00 | 1.15 | 1.10 |
|
||||
| (i) z-score cum-return (tanh) | **1.35** | 1.63 | 0.85 | +12% | **8.4%** | 0.96 | 1.30 | 1.00 |
|
||||
| (ii) risk-adjusted momentum | 1.27 | 1.49 | 0.84 | +13% | 9.5% | 0.97 | 1.21 | 1.00 |
|
||||
| (iii) EMA-cross trend | 0.81 | 0.91 | 0.62 | +11% | 25.1% | 0.85 | 0.89 | 0.53 |
|
||||
| (iii-b) MACD (calendar spans) | **1.50** | **1.87** | 0.74 | +22% | 17.7% | 0.69 | 1.30 | 1.32 |
|
||||
| (iv) Donchian breakout | 1.10 | 1.36 | 0.57 | +17% | 25.0% | 0.86 | 1.08 | 0.82 |
|
||||
| (v) acceleration (Δ-momentum) | 1.28 | 1.82 | 0.35 | +14% | 14.2% | 0.66 | 1.25 | 0.81 |
|
||||
| (vi) 12-1 skip momentum | 0.67 | 0.79 | 0.47 | +9% | 24.5% | 0.68 | 0.70 | 0.49 |
|
||||
|
||||
Results are essentially identical at 1d. Read-out:
|
||||
|
||||
- **Nothing cleanly beats the sign-blend OOS on both assets.** The headline-Sharpe leaders are
|
||||
artefacts of in-sample fit: **MACD** posts IS 1.87 but OOS collapses to 0.74 (gap = overfit) with
|
||||
a worse DD (17.7%); **acceleration** IS 1.82 → OOS **0.35** (worst OOS decay of all). Both fail.
|
||||
- **(i) z-score continuous momentum** is the one mild, honest refinement: Sharpe 1.35 (≈baseline)
|
||||
but **maxDD 8.4% vs 13.3%** — the continuous score scales down position when the cumulative move
|
||||
is statistically small, de-risking the tails. OOS 0.85 (slightly below baseline 0.90), CAGR drops
|
||||
16%→12%. It's a smoother sibling of TP01, **not a new edge** (corr 0.96).
|
||||
- (vi) 12-1 skip (classic equity "12-1" momentum) **does NOT help crypto**: skipping the recent
|
||||
month removes the strongest part of the signal here → Sharpe 0.67, corr 0.68. Crypto momentum
|
||||
lives in the recent window, opposite to the equity stylised fact.
|
||||
- Breakout/Donchian and EMA-cross are strictly worse (high DD, weak OOS).
|
||||
|
||||
## PART B — long-horizon reversal (fade past winners), 12h
|
||||
|
||||
Long-short reversal (short ~12/18/24m winners, long losers, vol-targeted):
|
||||
|
||||
| reversal LS | Sharpe | OOS | CAGR | maxDD | corr→TP01 |
|
||||
|---|---|---|---|---|---|
|
||||
| 12m | -0.77 | -1.15 | -14% | 73% | -0.51 |
|
||||
| 18m | -0.36 | -0.75 | -8% | 58% | -0.47 |
|
||||
| 24m | **+0.04** | -0.07 | -1% | 43% | **-0.32** |
|
||||
| 12-18-24m | -0.46 | -0.72 | -8% | 57% | -0.54 |
|
||||
|
||||
- **Long-horizon reversal is NOT a standalone edge.** Standalone it LOSES money (12m/18m strongly
|
||||
negative; only 24m is ~flat at Sharpe 0.04, OOS −0.07, and even that fails "net-positive OOS on
|
||||
both assets": BTC +0.10 / ETH −0.03). Fading crypto winners over a year just shorts the trend.
|
||||
- It IS genuinely negatively correlated to TP01 (24m: corr −0.32; 12-18-24: −0.54), as expected
|
||||
(it's the opposite sign of medium-term momentum).
|
||||
- **Momentum + reversal blend** (long 1-6m momentum, brake on very-long extension): the variant
|
||||
`mom(1-3-6) − 0.5·rev(12-24)` is the most interesting single-strategy result — Sharpe **1.38**,
|
||||
**OOS 0.98** (> baseline 0.90), **maxDD 10.6%** (< 13.3%), both assets positive (BTC 1.25/ETH
|
||||
1.05), corr 0.91, fee-robust (1.43→1.22 across 0.00–0.40% RT). CAGR drops 16%→12%. It is TP01
|
||||
with a long-term-extension brake: a modest *risk-adjusted* improvement, not more return.
|
||||
|
||||
## COMBINED — TP01 + best diversifier (blend net returns)
|
||||
|
||||
TP01 alone: Sharpe 1.321, CAGR +16%, maxDD 13.3%, OOS 0.90.
|
||||
|
||||
| combo | Sharpe | CAGR | maxDD | OOS | corr |
|
||||
|---|---|---|---|---|---|
|
||||
| TP01 + 20% reversal-24m (LS) | **1.411** | +13% | 11.5% | **1.06** | -0.32 |
|
||||
| TP01 + 30% reversal-24m (LS) | 1.366 | +12% | 11.8% | 1.06 | -0.32 |
|
||||
| TP01 + 20% reversal-12-18-24 (LS) | 1.350 | +11% | 10.6% | 0.84 | -0.54 |
|
||||
| TP01 + 50% z-score | 1.348 | +14% | 9.5% | 0.89 | +0.96 |
|
||||
|
||||
- Adding a small slice of **reversal-24m long-short** lifts portfolio Sharpe 1.32→1.41 and OOS
|
||||
0.90→1.06 while cutting DD to 11.5%. **But be skeptical:** the overlay is a ~zero-mean stream
|
||||
(standalone Sharpe 0.04). The benefit is almost entirely **variance reduction from the negative
|
||||
correlation, not added alpha** — and it COSTS return (CAGR 16%→13%). With a true-zero-edge
|
||||
diversifier this Sharpe bump is fragile (it leans on the −0.32 correlation persisting OOS, and the
|
||||
OOS sample is one 2022-24 crypto cycle). I would NOT deploy capital on a standalone-losing sleeve
|
||||
to chase a 0.09 Sharpe point that is really de-risking.
|
||||
|
||||
## Fee sweep (12h portfolio Sharpe)
|
||||
baseline 1.37→1.18, z-score 1.38→1.24, MACD 1.52→1.45 (lowest turnover), blend 1.43→1.22,
|
||||
reversal-24m 0.07→−0.02 (0.00→0.40% RT). All trend formulations survive realistic fees; reversal
|
||||
has no positive margin to survive on.
|
||||
|
||||
## VERDICT (honest)
|
||||
- **Is there a momentum formulation that beats the 1-3-6m sign-blend? No — not OOS, not on both
|
||||
assets.** MACD/acceleration look better in-sample but decay OOS (overfit + higher DD). The only
|
||||
honest refinement is **continuous z-score momentum**, which matches the Sharpe with materially
|
||||
lower drawdown (8.4% vs 13.3%) — a smoother variant of the SAME edge, not a new one (corr 0.96).
|
||||
- **Does long-horizon reversal give an uncorrelated positive overlay? No, not a real one.** It is
|
||||
uncorrelated/negatively-correlated (good) but **not positive** standalone (it loses, or at best is
|
||||
flat at 24m and fails the both-assets bar). The combined-Sharpe lift (→1.41) is variance reduction
|
||||
from a near-zero-mean stream and sacrifices CAGR — fragile, not bankable alpha.
|
||||
- **The ~1.3 structural Sharpe ceiling on BTC/ETH-only holds.** TP01 remains the deployable winner.
|
||||
If anything, swap the sign-blend for the **z-score continuous score** (or the `mom − 0.5·rev`
|
||||
brake) for a lower-DD profile at equal Sharpe — a risk-management tweak, not a return upgrade.
|
||||
Reference in New Issue
Block a user