Files
PythagorasGoal/docs/TODO.md
T
Adriano Dal Pastro ba5ec7bd6b docs: aggiorna strategie_attive.html + CLAUDE/TODO a v1.1.20 (XS01, real-truth, 19 sleeve)
- make_strategy_doc: nuova famiglia XSEC — card XS01 (meccanismo, dispersion-gate
  disp_min=0.0313, gate PORT06 OOS 10.07->10.37) con grafico book+gate e tabella
  per anno (engine canonico ungated); pesi aggiornati a 19 sleeve (5.69/5.26/2.94%);
  header con real-truth ledger e 4 book paper; bullet metodologia real-truth;
  ripuliti i riferimenti 'oggi' (EXIT-16 su DIP01, fix punto-10 SH01)
- strategie_attive.html rigenerato: v1.1.20, backtest canonico FULL Sharpe 7.34 /
  DD 3.46% — OOS Sharpe 10.07 / DD 1.48% (19 sleeve, XS01 incluso)
- CLAUDE.md: sezione XS01 (famiglia XSEC, gate, dispersion-gate live-only, FC01
  scartata), copertura reale 15/19, varianti gioco options/session/grid in struttura
- TODO.md: stato esecuzione aggiornato (6 pairs, XS01 paper, real-truth)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:00:48 +00:00

5.2 KiB
Raw Blame History

TODO — prossimi passi

Raccolta dei follow-up aperti. Aggiornato 2026-06-11 (XS01 dispersion-gate live v1.1.20; real-truth ledger attivo; reset portafoglio 2026-06-10).

Stato esecuzione per sleeve (REALE vs SIMULATO)

REALE (shadow su Deribit testnet, REAL-TRUTH: il ledger segue i fill reali) — 15 sleeve:

  • 6 fade (MR01/MR02/MR07 × BTC/ETH) + DIP01_BTC → single-leg, v1.0.3+
  • 6 pairs PR01 (ETH/BTC, LTC/ETH, ADA/ETH, BTC/LTC, ETH/SOL + ETH/BTC 15m) → 2 gambe, v1.1.12 (2026-06-08); il 15m dal v1.1.16 (2026-06-09)
  • SH01 × BTC/ETH → single-leg, exit a orizzonte (no TP/SL), v1.1.13 (2026-06-08)

SIMULATO (paper, NON esegue reale) — 4 book multi-asset, fuori dal capitale-pool:

  • TR01 / ROT02 / TSM01 / XS01 → bloccati dal CAPITALE (rumore arrotondamento)

Esecuzione reale — pezzi mancanti

  • Executor a 2 gambe per i PAIRS — FATTO + ATTIVO (v1.1.12, 2026-06-08).
  • SH01 in reale — FATTO (v1.1.13, 2026-06-08): l'infrastruttura no-TP esisteva già (_place_real_tp no-op senza TP, _real_close chiude tutto market reduce-only a orizzonte). Bastava accettare kind 'ml' in _exec_for + SH01 in execution.sleeves. Disaster-bracket on-book = unica protezione di coda. Test SH01 open/close reale OK.
  • Multi-asset in reale (SIMULATO: TR01/ROT02/TSM01/XS01) — SBLOCCATO DA CAPITALE ≥ ~€20k. Strumenti USDC tutti esistenti (BNB/DOGE/XRP inclusi), ma a €2k il rumore di arrotondamento per-asset è 20-30% (DOGE/XRP/SOL step grandi in $, esposizione frammentata su 5-8 asset) → l'esecuzione reale misurerebbe il rumore dei lotti, non la strategia. Serve un BasketExecutionClient (ribilancio delta multi-strumento, long-only, netting con fade+pairs sui simboli condivisi). Beneficio limitato (~19% del portafoglio, diversificatori spesso flat) → bassa priorità anche a capitale alto. Analisi: chat 2026-06-08.

Capitale (decisione utente, non codice)

  • Valutare aumento capitale a €5.000-10.000 per togliere il rumore di arrotondamento. A €2.000 il rumore BTC per trade è ~2.4% (morde); soglie: ~€4.800 (<1%), ~€9.500 (<0.5%, "punto dolce"), ~€19.000 (trascurabile). Le commissioni invece sono % e neutre al capitale. Col real-truth ledger il rumore di arrotondamento entra DIRETTAMENTE nell'equity → più capitale = ledger più fedele alla strategia. Riguarda i 15 sleeve che eseguono reale.

Follow-up dal code-review (bassa priorità, non urgenti)

  • forming-bar su ROT02/TSM01: i worker daily valutano la candela 1d IN FORMAZIONE al primo poll dopo mezzanotte UTC (stessa classe del fix TR01/Pairs, pre-esistente). Ora è banale: usare src.live.bars.last_settled_idx in _panel / nei due tick. Impatto basso (1d) ma stessa famiglia di bug.
  • ancora bfill di _daily_equity: la serie a punti-trade reindexata su IDX àncora il primo valore della finestra al PRIMO trade in-finestra, non al capitale portato avanti. Tocca le metriche canoniche di TUTTI gli sleeve a punti-trade (honest/pairs/tsm). Valutare se correggere OVUNQUE in un colpo (cambierebbe i numeri canonici di riferimento). Scoperto nel gate DIP01 (parità inizialmente fallita per questo).
  • convenzione TR01 worker vs reference: il replay validate_honest_workers dà TR01 worker -44% vs reference +42% (identico pre/post fix di oggi). È la divergenza capitale-unico (mean(rets) solo sugli asset in posizione) vs media-equity 1/N del reference. Indagare: sospetto che mean(rets) sovrappesi gli asset in posizione quando il paniere è parzialmente investito.
  • engine duplicato nei 3 gate *_port06_impact.py (exit16/trendmax/dip01): build_trades_variant / port_metrics copiati quasi verbatim. Sono regression-lock per decisioni live → la copy-drift corrompe i verdetti. Fattorizzare in un modulo condiviso.
  • epoche hardcoded in hourly_report.lossguard_section (LOSSGUARD_SINCE, TRENDSWAP_SINCE): ogni nuova epoca-filtro richiede di editare la funzione. Derivarle da deploy history/config.

Ricerca dispersion/correlation (2026-06-08, 165 agenti) — follow-up opzionale

  • Gate PORT06 di index_comp_disp W=168 — FATTO (2026-06-08): PROMOSSO MARGINALE. Decorrela bene (corr 0.06 col MASTER) ma OOS PIATTO (Sharpe 0.01). Documentato e rimandato (non deployato): gate in dispersion_edges/gate_index_comp_disp.py, riprendere solo se si costruisce una famiglia DISP più ampia. Diario aggiornato.

Monitoraggio (osservare, non agire subito)

  • PnL live post-swap trend (epoca TREND in hourly_report): verdetto stop-rate fade a n>=30.
  • SH01 post-bootstrap: il trade-rate live deve scendere da ~25% a ~10% delle barre (selettività della soglia ripristinata). Controllare nel report orario.
  • MR02_ETH: ultima posizione aperta SENZA disaster-SL (aperta pre-v1.1.4). Si chiuderà normalmente; le prossime aperture avranno il bracket.
  • parquet fresco per SH01 bootstrap: oggi al 2026-05-28, il feed copre 365g → margine ~11 mesi. Rilanciare download_all() periodicamente (WARN automatico se il gap supera il lookback).