Files
PythagorasGoal/docs/diary/2026-06-19-trackA-trend.md
Adriano Dal Pastro d152941360 integra(TP01): merge ricerca branch strategy-research-2026-06 (squash) — strategia vincente + harness + track A-E
Integra il lavoro della linea di ricerca parallela (AdrianoDev), verificato indipendentemente
col mio gauntlet onesto (regge il hold-out 2025-26 su entrambi gli asset, plateau 1h/4h/1d):
- src/strategies/trend_portfolio.py  TP01 (TSMOM 30/90/180 vol-target 20% lev2x long-flat, 50/50 BTC+ETH)
- src/backtest/harness.py            harness onesto (load + backtest_signals no-leakage + OOS)
- scripts/research/track{A,B,C,D,E}_*.py + trackD_timing.py  (le 5 track della ricerca)
- scripts/live/paper_trend.py        paper trader forward-only di TP01 (no esecuzione reale)
- tests/test_trend_portfolio.py (5 test, passano) + 6 diari trackA-E + synthesis
- CLAUDE.md aggiornato con l'esito ricerca (TP01 vincente, mean-rev morto, onesta su €50/g)

Squash (non merge) per NON portare in git i ~68MB di data/_feed_backup/*.bak che il branch
aveva committato per errore: esclusi + data/_feed_backup/ e data/paper_trend/ ora gitignorati.
Storia granulare del branch conservata sul ref origin/strategy-research-2026-06.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 18:55:04 +00:00

4.3 KiB
Raw Permalink Blame History

2026-06-19 — Track A: Trend / Momentum su BTC & ETH (dati certificati)

Prima ricerca di strategie NUOVE post-reset (track A = trend/momentum). Tool: scripts/research/trackA_trend.py (harness onesto src/backtest/harness.py, fee 0.10% RT, IS/OOS 65/35, griglia su entrambi gli asset, fee sweep, stress leva). Run: uv run python scripts/research/trackA_trend.py.

Cosa è stato testato

  • TSMOM (segno del ritorno N-barre, hold H) long/short e long-only.
  • EMA crossover (fast/slow) come filtro di trend.
  • Donchian breakout (entry ONESTO: breakout rilevato con close[i], fill a close[i]).
  • Vol-scaled / regime-gated TSMOM (momentum preso solo se |z| > gate, z = ritorno/vol).
  • Griglia ampia su BTC e ETH, 1h / 15m / 5m. 480 celle OOS totali.

Tutto entry-eseguibile: direzione e prezzo decisi con dati ≤ close[i], fill a close[i]. Nessun uso di returns[i] (che codifica close[i+1]). Hold approssimato come catena di posizioni non sovrapposte di H barre (la fee si ammortizza su H barre — costo onesto).

Risultati — la fotografia onesta

Celle positive OOS per timeframe:

TF celle positive / totali
1h 39 / 160
15m 0 / 160
5m 0 / 160

Trend intraday (5m/15m) è MORTO: lo drag della fee (più trade = più 0.10% RT) annienta qualsiasi segnale. Drawdown 80-99%, Sharpe da 0.6 a 2.2. Niente da salvare.

Su 1h c'è qualche cella positiva, ma il contesto la ridimensiona:

  • La finestra OOS è un singolo regime: il taglio 65% cade a set/dic 2023, quindi l'OOS è ~2023→2026 (in gran parte toro 2024). Tutto il 2018-2022 (orso 2018, crash 2020, toro 2021, orso 2022) è IN-SAMPLE. "Positivo OOS" qui ≈ "il trend ha fatto soldi nel toro 2024".
  • Benchmark buy & hold sulla stessa finestra OOS: BTC +134%, ETH 21%.
    • Tutte le TSMOM_LONG e metà delle celle BTC fanno MENO del B&H → è beta, non edge.
    • Le poche che battono il B&H lo fanno solo su ETH (dove il B&H era negativo): catturano anche i ribassi. Quello è timing reale — ma vedi sotto.

Le "star": VOLSCALED_TSMOM BTC 1h (N=20,H=48,vw=100,z=0.5) = +367% OOS, Sh 0.91, DD 32%, €/d(2k) +2.56; ETH 1h (N=20,H=48,vw=50,z=1.0) = +197% OOS, Sh 0.60. MA sono celle fortunate: i vicini di griglia crollano (stesso N/H, vw=50 invece di 100 → +21% invece di +367%; z=1.0 → +34%). Non è un altopiano robusto, è un picco isolato. E il P&L è concentrato nel 2024 (+110% su BTC), con 2025/2026 deboli o negativi per molte celle.

Consistenza cross-asset (un edge vero regge su ENTRAMBI): su 480 celle, solo 2 sono positive OOS su BTC e ETH:

  • TSMOM_LONG 1h N=200 H=48 → ma è long-only ≈ beta (fa meno del B&H su BTC).
  • DONCHIAN 1h N=200 H=12 → l'unico candidato "vero" simmetrico, ma marginale: OOS BTC +9% / ETH +15%, Sharpe 0.15-0.19, troppo debole per dispiegarlo.

Fee sweep / leva: le star reggono lo sweep 0.0005-0.002 (è 1h, poche operazioni), e lo Sharpe è invariante alla leva (come deve) — ma la leva 3x porta i DD a 75-91% e affonda le celle marginali.

Verdetto

Nessun edge trend/momentum dispiegabile, onestamente, su BTC/ETH oggi.

  • 5m/15m: morti per fee. Chiuso.
  • 1h: esiste un residuo di segnale trend (le celle che battono il B&H negativo di ETH non sono solo beta), ma è (a) testato su un solo regime OOS (toro 2023-2026), (b) non robusto di griglia (picchi isolati), (c) sull'unica cella simmetrica robusta-su-entrambi (Donchian N=200) troppo debole (Sharpe ~0.17). Sharpe netti ~0.3-0.9 nel caso migliore = sotto la soglia per rischiare capitale reale.

Conferma la lezione del reset (il superstite storico era trend-following, non mean-reversion): il trend è la direzione meno sbagliata, ma sui dati certi non basta a fare un edge. Coerente con Track C (mean-reversion = artefatto).

Prossimi passi possibili (non ancora edge)

  • Walk-forward multi-regime (non un singolo taglio 65/35) per stressare Donchian-1h-N200 su orso 2018/2022.
  • Trend 1h con filtro di volatilità/regime più ricco o portafoglio BTC+ETH per diversificare il rischio di regime — ma solo se emerge robustezza di griglia, non altri picchi fortunati.
  • Restare scettici: finché un trend non è positivo su griglia + su entrambi gli asset + su ≥2 regimi OOS, non si dispiega.