- THE BETA TRAP (the central methodology lesson): a raw directional bench across many assets is a beta-detector, not an alpha-detector. In the 40-coin universe the unconditional 24d forward return is +407bps (fat right tail, median NEGATIVE), so ANY long-biased trend signal 'wins' just by riding the drift. First naive run lit up 9/16 signals as 'revived' (donchian +540bps, micro_pullback +804bps, t=10) - all pure beta. The fix: measure EXCESS return vs the equal-weight peer group at the same timestamp (the cross-sectional excess), which strips the common regime - exactly what Peter meant by 'wenn man das Regime herausrechnet'.
- CRYPTO cross-section (40 coins daily, market-neutral): only MOMENTUM travels - donchian_breakout t=3.8, +55bps excess, coherent across 26/40 coins; macd/zscore_momentum weaker echoes. Every mean-reversion signal (bb_extreme, sfp, rsi_mr, fvg_fill, zscore_dislocation) is dead. And the momentum that survives we already knew and trade (the DONCHIAN overlay passed the cross-asset gate long ago). Nothing dead-on-BTC secretly lives on other coins.
- CRYPTO intraday off-BTC (ETH/SOL, the dead intraday mean-reversion family): nothing consistent across BOTH 1h and 4h. SOL lit up across unrelated signal families - a single-asset drift artifact (SOL is the highest-beta major), not asset-specific edge.
- EQUITIES cross-section (48 US large caps, market-neutral): the sign INVERTS. The crypto winners (donchian/macd/momentum) are all dead; the one survivor is bb_extreme (mean-reversion) - dead in crypto, +7.6bps net excess, t=2.4, p=0.016, coherent 32/48. Theoretically coherent: crypto is a momentum market, equities a reversion market. The edge sits in DEFENSIVE names (UNH +253bps, VZ, COST) and FAILS on momentum names (AMD -199, META -118). Peter's asset-class-dependence intuition VALIDATED - directionally.
- SIGNAL vs FACTOR (is bb_extreme-equities a real timing signal or a disguised low-beta/value tilt?): it is a GENUINE TIMING signal. Within-name demean (subtract each name's own unconditional drift-vs-basket) does NOT shrink the edge (timing alpha +19.5bps, higher than raw). A permutation test (shuffle entry timing within each name, keep count+direction) gives p=0.0033. So it fires at genuinely better-than-average moments, not just holds outperforming names.
- BUT the full PORTFOLIO gauntlet REJECTS it. As a real market-neutral book (low-beta tercile, 24d hold, dollar-neutral, turnover costs, 2010-2026): walk-forward PASSES (worst full year -12.1%, avg +1.6%, beta -0.002 - clean market-neutral, does not blow up) but Sharpe is only +0.27, CAGR +1.6%/yr, Calmar 0.07. PSR-vs-zero = 0.86 (fails 95% significance even WITHOUT multiple testing). Deflated Sharpe = 0.05 vs 0.95 bar: bb_extreme is the best of 16 signals but its daily Sharpe (0.0167) sits BELOW the best-of-16-noise benchmark (SR*=0.0415) - indistinguishable from luck once you account for having tried 16 signals. Parameter plateau only 46%.
- THE KILLER BENCHMARK: a long-only low-beta basket (just OWNING the defensive names) has Sharpe +0.99 - it risk-adjusted-beats the fancy market-neutral bb_extreme timing (0.27) by 4:1. On the full universe bb_extreme is Sharpe +0.01, on high-beta -0.08. The edge is real, low-beta-confined, and economically trivial - dominated by the naive alternative.
- CONCLUSION: nothing dead-on-BTC resurrects as a DEPLOYABLE edge - not in crypto (momentum travels but we already trade it), not in equities (mean-reversion exists but is real-yet-trivial and fails DSR). This reaffirms the structural-not-directional thesis [[frische_ansaetze_2026]]: the deployable cross-asset edges remain the STRUCTURAL ones (funding carry live [[funding_carry_botty]], cross-sectional momentum live-monitor [[cross_sectional_momentum_botty]], VRP infra-gated [[optionen_fuer_botty]]), not transplanted TA.
The question
We tested almost every directional indicator on BTC and nearly all of them died at the gates (What provably does NOT work in retail trading (and why)). Peter asked the obvious follow-up: maybe the signals work on OTHER assets - other coins, or even stocks / indices / commodities - once you factor out the general market regime. Maybe EMA8/21 shines on gold, or Bollinger mean-reversion on QQQ.
This is a great instinct - but there is a statistical trap hiding in it, and finding it is half the story.
1. Gate vs. Discovery - and the beta trap
We already use cross-asset testing as an overfit GATE: freeze a BTC winner's params, run it on ETH/SOL, and if it dies it was a curve-fit (this is how donchian@2h died). Turning that into a DISCOVERY engine - scanning many signals x many assets for hits - multiplies the multiple-comparisons problem: with 40 coins you almost always find one lucky winner.
Worse, measuring raw directional returns across a drifting universe is a beta-detector, not an alpha-detector:
Unconditional forward return, 40-coin crypto universe
─────────────────────────────────────────────────────
horizon mean fwd median frac > 0
1d +14 bps 0 bps 0.49
4d +54 bps -21 bps 0.48
8d +113 bps -62 bps 0.46
24d +407 bps -257 bps 0.43 <- fat right tail
Over any 24-day window a coin drifts +407 bps on average (dragged up by rare moonshots; the MEDIAN is negative). So any long-biased trend signal 'wins' just by being in the market. The first naive run confirmed it: 9 of 16 signals lit up as 'revived' (donchian +540 bps, micro_pullback +804 bps, t up to 10) - and it was all beta.
The fix: measure the market-neutral EXCESS - each signal's return minus the equal-weight peer-group move over the same window (the cross-sectional excess our live XSECT book trades). That strips the common regime - exactly what Peter meant by 'wenn man das Regime herausrechnet'. Now a trend signal has to pick coins that BEAT the universe, not just ride it.
2. Crypto: only momentum travels (and we already trade it)
Market-neutral, across 40 coins, at the daily horizon:
signal excess_net beta removed t coherence verdict
───────────────────────────────────────────────────────────────────────────
donchian_breakout +55 bps +72 bps 3.8 26/40 cross-asset
macd_crossover +60 bps +77 bps 3.0 23/40 conditional
zscore_momentum +41 bps -17 bps 2.7 23/40 conditional
... every mean-reversion signal ... negative / insignificant none
beta removed = the bps of the raw edge that were pure market drift, subtracted to reach the excess. donchian's raw edge was +137 bps, of which +72 was drift, leaving +55 bps net excess - the genuine, market-neutral edge (NOT +72, which is the amount thrown away).
Only momentum/breakout survives - and donchian cross-asset is exactly the edge we already found and trade (the DONCHIAN overlay passed the cross-asset gate long ago). All mean-reversion is dead. Nothing hidden.
The intraday off-BTC test (ETH/SOL, the dead intraday mean-reversion family) found nothing consistent across both 1h and 4h. SOL lit up across unrelated families - a single-asset drift artifact (SOL is the highest-beta major), not real edge.
3. Equities: the sign FLIPS
We pulled 48 diversified US large caps (yfinance) and ran the identical market-neutral bench. Two things jump out:
(a) The beta contribution is tiny (+/-3-20 bps vs crypto's +/-72-781) - equity drift is small, the demean bites cleanly.
(b) The crypto winners are all dead, and the one survivor is the crypto LOSER:
Crypto (market-neutral) Equities (market-neutral)
──────────────────────────────────────────────────────────────────────
Momentum / breakout lives (donchian t=3.8) DEAD
Mean-reversion DEAD (bb_extreme -39bps) LEADS (bb_extreme +7.6bps net, t=2.4)
This is theoretically coherent: crypto is a momentum market, equities a reversion market. And the names confirm it textbook-style - the edge sits in defensives (UNH +253 bps, VZ, COST) and fails on momentum names (AMD -199, META -118). Peter's asset-class-dependence intuition: validated, directionally.
4. Is bb_extreme-equities a SIGNAL or a disguised FACTOR?
The profile (edge grows with horizon, concentrated in defensives) looks exactly like a hidden low-beta / value tilt - buy beaten-down defensives, they grind back over weeks. So we decomposed it:
TEST RESULT reads as
────────────────────────────────────────────────────────────────────────
Within-name demean timing alpha +19.5 bps (HIGHER genuine TIMING
(subtract each name's own than raw +16.6) - the names it (not name selection)
drift-vs-basket) trades slightly UNDERperform
Permutation (shuffle entry actual 19.5 vs null 0.3 +/- 6.5 p = 0.0033
timing, keep count+dir) -> timing informative
Beta tercile split low-beta +26 (t=3.5) · mid +4 · CONFINED to low-beta
high ~0
Walk-forward (5 folds) flat/flat/+28/-9/+30 regime-fragile
So it is a real timing signal (not a static tilt) - but confined to low-beta names and regime-fragile (carried by 2 of 5 periods, negative through 2019-2023).
5. The ordentliche test: a real portfolio through the deploy gauntlet
Per-trade bps are not a verdict. We built the actual strategy - bb_extreme on the causal low-beta tercile, market-neutral, 24d hold, turnover costs, daily equity curve 2010-2026 - and ran it through the project's real bars:
BAR RESULT verdict
─────────────────────────────────────────────────────────────────────
Walk-forward (_wf_verdict) worst full year -12.1% (2022), PASS (capped)
avg +1.6%, beta -0.002
Sharpe / CAGR / Calmar +0.27 / +1.6%/yr / 0.07 trivial
PSR vs zero 0.86 fails 95% (even w/o MT)
Deflated Sharpe (vs 16 sigs) 0.05 (SR_hat 0.0167 < SR* 0.0415) FAIL (bar 0.95)
Parameter plateau 46% of bb-grid cells > 0 not broad
─────────────────────────────────────────────────────────────────────
Benchmark: long-only low-beta basket Sharpe +0.99 <- beats the strategy 4:1
Benchmark: bb_extreme / full universe Sharpe +0.01
Benchmark: bb_extreme / high-beta Sharpe -0.08
The decisive numbers: the Deflated Sharpe = 0.05. bb_extreme is the best of the 16 signals, but its Sharpe sits BELOW the best-of-16-noise benchmark - after honestly accounting for having tried 16 signals, it is indistinguishable from luck. And even ignoring multiple testing, the raw PSR-vs-zero (0.86) fails 95% significance. Meanwhile just owning the defensive names (Sharpe 0.99) risk-adjusted-beats the whole market-neutral timing construct 4:1.
VERDICT: REJECTED. Real but economically trivial, and it fails the honest multiple-testing correction. A walk-forward 'PASS' here only means it does not blow up, not that it makes money worth having.
6. What the whole exercise yields
Crypto cross-section only momentum travels (already traded)
Crypto intraday off-BTC nothing (SOL = drift artifact)
Equities cross-section sign flips: mean-reversion leads
Equities bb_extreme genuine timing, but low-beta-confined,
regime-fragile, DSR 0.05 -> REJECTED
─────────────────────────────────────────────────────────────
Nothing dead-on-BTC resurrects as a DEPLOYABLE edge, anywhere.
This is a rigorous negative result - it reaffirms the whole 'out of the BTC-timing dead end' thesis: the deployable cross-asset edges are the structural ones (funding carry, cross-sectional momentum, VRP), not transplanted TA. And it leaves behind reusable machinery: cross_asset_bench.py --universe crypto|equities (pooled market-neutral bench), indicator_lab --symbol (any signal on any asset), data/download_equities.py, and the signal-vs-factor + portfolio gauntlets.
The honest yield of a good negative result: it stops you chasing a mirage, and it hands you the tools to test the next idea faster.