From 9275eab4af76f6fb65ddb5f829c86b0b65345e71 Mon Sep 17 00:00:00 2001 From: Adriano Dal Pastro Date: Sun, 7 Jun 2026 20:57:28 +0000 Subject: [PATCH] docs: TODO follow-up post-sweep (executor 2-gambe pairs, SH01 reale, capitale, code-review minori) Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/TODO.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 docs/TODO.md diff --git a/docs/TODO.md b/docs/TODO.md new file mode 100644 index 0000000..94d9dd4 --- /dev/null +++ b/docs/TODO.md @@ -0,0 +1,56 @@ +# TODO — prossimi passi + +> Raccolta dei follow-up aperti. Aggiornato 2026-06-07 (fine sessione: roadmap +> improvement-sweep 10/10 completata, v1.1.9 live). + +## Esecuzione reale — i pezzi grossi mancanti + +- [ ] **Executor a 2 gambe per i PAIRS** (`PairsExecutionClient`). È la fetta reale-non-eseguita + più grande (29% del portafoglio). Serve: piazzamento il più possibile atomico delle 2 gambe, + fallback di **unwind** se una sola filla (leg-risk), dimensionamento congiunto col doppio + arrotondamento ai lotti minimi (BTC/ETH/LTC/ADA/SOL hanno step diversi), riconciliazione e + chiusura a 2 gambe. Progetto a sé, il più impegnativo rimasto. +- [ ] **SH01 in reale**: oggi escluso perché non ha TP/SL (esce a orizzonte H=12) → manca il livello + a cui agganciare il limit resting + disaster-bracket. Due strade: (a) nuovo percorso + "market reduce-only a scadenza orizzonte" nell'executor; (b) valutare TP/SL su SH01 — MA la + ricerca dedicata (`sh01_exit_lab`, 11 famiglie di stop, 0 sopravvissute) dice che ogni stop + rompe l'edge → andrebbe ri-gateato. Prima conviene osservare il PnL live post-fix di oggi. + +## 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. + Riguarda solo i 7 single-leg che eseguono reale; pairs/SH01 sono simulati. + +## 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. + +## 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).