7f4378190e
Workflow 60 celle (15 famiglie x 4 finestre), verifica avversariale 2-skeptic. Esito: 2 edge confermati causali (index_comp_disp W168, rel_idio_fade W24), ma entrambi fade-BTC del residuo idiosincratico -> sovrapposti alle MR esistenti (P migliora-PORT06 ~20%, lezione FR01). 13/15 famiglie rumore (overfit/regime, non look-ahead). Edge preservati in scripts/analysis/dispersion_edges/; harness riusabile dispersion_lab.py (gia' committato). Diario + TODO follow-up. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
67 lines
4.5 KiB
Markdown
67 lines
4.5 KiB
Markdown
# 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.
|
|
|
|
## Ricerca dispersion/correlation (2026-06-08, 165 agenti) — follow-up opzionale
|
|
|
|
- [ ] **Gate PORT06 di `index_comp_disp` W=168 (BTC)** — l'unico candidato della ricerca
|
|
dispersion che merita un test formale (`combine_v2`): misurare corr col MASTER e
|
|
ΔSharpe/ΔDD. Config in `scripts/analysis/dispersion_edges/index_comp_disp.py`
|
|
(rel_len=12, z_thr=1.5, disp_q=0.7, TP=1.0ATR, SL=1.5ATR, mb=24). P(migliora)~20-25%:
|
|
è fade-BTC, rischio sovrapposizione con le MR. Se non decorrela → scartare.
|
|
Diario `docs/diary/2026-06-08-dispersion-correlation-search.md`. **Bassa priorità**
|
|
(nessun nuovo motore emerso; vale la lezione FR01).
|
|
|
|
## 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).
|