Files
PythagorasGoal/Old/docs/diary/2026-05-29.md
Adriano Dal Pastro 14522262e6 chore(reset): v2.0.0 — storico certificato Deribit mainnet, ripartenza pulita
Reset del progetto su fondamenta verificate dopo la scoperta che l'intera
libreria "validata OOS" era artefatto di feed contaminato (print fantasma del
feed Cerbero TESTNET + storico Binance/USDT).

- Storico ricostruito da Deribit MAINNET (ccxt pubblico, tokenless) e
  CERTIFICATO (certify_feed.py): BTC/ETH puliti su TUTTA la storia
  (mediana 2-6 bps vs Coinbase USD), integrita' OHLC + coerenza resample
  (maxΔ 0.00) + cross-venue OK. Alt esclusi (illiquidi/divergenti: LTC/DOGE
  50-82% barre flat; XRP/BNB non certificabili).
- Verdetto sul feed pulito: FADE / PAIRS / XS01 / TSM01 morti (ogni
  portafoglio Sharpe -2.3..-3.0, DD ~40%); solo SH01 e frammenti HONEST
  con segnale residuo, da ri-validare in isolamento.
- Cleanup "restart pulito": strategie, stack live (src/live, src/portfolio,
  runner/executor, yml, docker), ~100 script ricerca/gate, waste/games/
  portfolios, dati non certificati + cache e 60+ diari -> archiviati in Old/
  (preservati, non cancellati). Diario consolidato in un unico documento.
- Skeleton ricerca tenuto: Strategy ABC + indicatori + src/fractal +
  src/backtest/engine + load_data; tool dati certificati (rebuild_history,
  certify_feed, audit_feed, multi_source_check).
- Universo dati ATTIVO: solo BTC/ETH (5m/15m/1h); guardrail fisico
  (load_data su alt -> FileNotFoundError). Esecuzione DISABILITATA, conto flat.

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

3.7 KiB
Raw Permalink Blame History

Diario di ricerca — 2026-05-29

Combinare le strategie migliora i risultati?

Domanda: usare insieme le due famiglie di strategie presenti sul repo migliora il profilo rischio/rendimento rispetto a usarle separatamente?

  • FADE (mie): reversione intraday 1h, long/short, BTC/ETH — MR01 Bollinger, MR02 Donchian, MR03 Keltner, MR07 Return-reversal (tutte col filtro trend 3.0 ATR).
  • HONEST (altra sessione): long-only multi-regime multi-crypto — DIP01 (dip-buy 1h BTC), TR01 (EMA-trend 4h basket), ROT02 (dual-momentum rotation 1d).

Metodo (scripts/analysis/combine_portfolio.py): per ogni sleeve si costruisce l'equity giornaliera normalizzata su un indice comune (2021-01-01 → 2026-05-26), si passa ai rendimenti giornalieri, si misura la correlazione cross-famiglia e si confrontano i portafogli equal-weight (ribilanciati ogni giorno), 50/50 fra famiglie e inverse-vol. Metriche FULL e OOS (ultimo 30% della finestra comune, da 2024-10-12): ritorno, CAGR, max DD, Sharpe annualizzato. Le curve honest sono riusate da honest_improve2.py; quelle fade da risk_management.build_trades.

Correlazione: cross-famiglia +0.05 (quasi indipendenti). Intra-fade +0.18, intra-honest +0.05. L'unica coppia un po' correlata è MR01_BTC↔DIP01_BTC (+0.43), entrambe mean-reversion su BTC. Famiglie scorrelate ⇒ diversificazione quasi ideale.

Risultati (FULL | OOS):

Portafoglio Ret% CAGR DD% Sharpe oDD% oSharpe
FADE only (8) +549 41 8.6 3.75 5.4 4.14
HONEST only (3) +642 45 12.0 1.90 6.5 2.23
ALL equal-weight (11) +589 43 6.1 3.95 4.6 4.46
ALL 50/50 famiglie +615 44 5.5 3.18 4.0 3.87
ALL inverse-vol +483 39 5.8 3.97 4.6 4.02

Conclusione: sì, combinare conviene.

  • DD crolla: combinato 5.56.1% full / 4.04.6% OOS, contro 8.6% (fade) e 12% (honest) da sole → drawdown ridotto del 3550%.
  • Sharpe sale: combinato OOS 4.46 vs honest 2.23 (raddoppia) e batte pure fade (4.14).
  • CAGR resta ~4344% (≈ media delle due famiglie) ma con metà del rischio: è il "free lunch" della diversificazione fra sorgenti di edge scorrelate.
  • Best Sharpe = equal-weight degli 11 sleeve; best DD = 50/50 fra le due famiglie.

Caveat onesti: la finestra comune è 20212026 (5.4 anni), OOS ~2024-10→oggi (1.6 anni) — pochi regimi. CAGR e Sharpe sono backtest a leva 3x; il 2024 cripto favorevole pesa. Il target €50/giorno resta vincolato dal capitale: 43% CAGR su €1000 non fa €50/giorno a breve, serve compounding pluriennale o più capitale. Prossimo passo: confermare il portafoglio combinato nel paper trader live.

File: scripts/analysis/combine_portfolio.py (nuovo).

Pulizia roster + miglioria ROT02

  • Waste delle peggiori: MR03 Keltner (fade più debole, Sharpe 1.22, ridondante con MR01 — rimuoverla migliora il portafoglio fade: DD 8.6→8.2, ret +549→+666) e ROT01 (dominata da ROT02). Spostate in scripts/waste/.
  • Portafogli pronti: PORT02_fade_master (6 sleeve fade) e PORT03_all_master (9 sleeve fade+honest, varianti equal/5050).
  • ROT02 DD alto → migliorato: la rotazione concentrava il book su 2 asset (DD 40%). Sweep su rot_improved: top_k=3 dimezza quasi il DD (40%→26%) e alza il ritorno full (+1095→+1303%, ret/DD 27→50). Il vol-target abbassa il DD ma sacrifica ritorno (de-leverage) → tenuto top_k=3 senza VT. Caveat onesto: l'OOS di ROT02 cala un po' (+98→+68%, DD 12→14%), ma il MASTER (config deployata) migliora lo Sharpe full 3.95→4.23. Applicato a ROT02_dual_momentum.py e _rot_daily_equity. Sweep in honest_improve.rot_improved.