chore(analysis): dedup engine gate PORT06 + drift monitor giornaliero + impact bfill
- _port06_gate_common.py: build_trades_variant/equity_from_trades/port_metrics/dd fattorizzati dai 3 gate exit16/trendmax/dip01 (-214 righe duplicate). Nessun copy-drift trovato; versione promossa = trendmax (superset con hurst_mask). Output dei 3 gate verificato BYTE-IDENTICO prima/dopo. dip_trades resta nel suo script (sibling deliberato long-only/orig_gap, non una copia). - drift_monitor.py: rolling-return per famiglia vs distribuzione storica propria (warn sotto p5; oggi: FADE 120g al p2). In crontab host giornaliero 07:15 UTC con report Telegram. Osservabilita', non filtro di trading. - daily_equity_bfill_impact.py: bug bfill _daily_equity QUANTIFICATO -> non materiale (OOS invariato per costruzione, FULL DD 3.46->3.67 col fix, nessun verdetto gate a rischio). Lasciato documentato in TODO, niente fix. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+16
-8
@@ -41,19 +41,27 @@
|
||||
|
||||
- [x] ~~forming-bar su ROT02/TSM01~~ — GIÀ FIXATO (v1.1.10, 2026-06-08): `_panel` condiviso
|
||||
scarta la barra in formazione via `last_bar_is_forming`. Item rimasto stantio nel TODO.
|
||||
- [ ] **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).
|
||||
- [ ] **ancora bfill di `_daily_equity`** — QUANTIFICATO 2026-06-11 (`daily_equity_bfill_impact.py`):
|
||||
**NON materiale, lasciare documentato**. PORT06 OOS invariato per costruzione (il bias vive
|
||||
in testa alla serie, pre-SPLIT; ΔSharpe +0.001, ΔDD 0.000); FULL DD leggermente OTTIMISTICO
|
||||
(3.46→3.67 col fix: il primo trade DIP01 2021, −3.75%, è nascosto dal bfill). Nessun verdetto
|
||||
di gate a rischio (bias identico nei due bracci A-vs-B, si cancella). Unica eccezione OOS:
|
||||
TSM01 (primo punto equity post-SPLIT, −0.014 Sh). Correggere SOLO in un eventuale refactor
|
||||
del builder daily, OVUNQUE in un colpo (~12 file di gate replicano la convenzione) e
|
||||
ri-baselinando i canonici nello stesso commit. CAVEAT per gate futuri: finestre IDX che
|
||||
partono a metà storia amplificano il bug → usare lì la convenzione carry-forward corretta.
|
||||
- [x] ~~convenzione TR01 worker vs reference~~ — ERA UN BUG, FIXATO (2026-06-11): `mean(rets)`
|
||||
sui soli asset in posizione sovrappesava N/k a paniere parziale (con 1 long: 0.45 del
|
||||
capitale invece di 0.09). Fix: `sum(rets)/len(universe)` (equal-weight 1/N canonico).
|
||||
Replay post-fix: +32% vs reference +42% (residuo = convenzione capitale-unico vs
|
||||
media-equity, dichiarata). Diario `2026-06-11-stability-sweep.md`.
|
||||
- [ ] **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.
|
||||
- [x] ~~engine duplicato nei 3 gate~~ — FATTO (2026-06-11): fattorizzato in
|
||||
`scripts/analysis/_port06_gate_common.py` (`build_trades_variant` versione trendmax =
|
||||
superset con hurst_mask/trend_max parametrici, `equity_from_trades`, `port_metrics`,
|
||||
`dd`); i 3 gate importano da lì. Nessuna drift di matematica trovata fra le copie
|
||||
(solo firme/docstring). Output dei 3 gate verificato BYTE-IDENTICO prima/dopo.
|
||||
`dip_trades` (DIP01) NON è una copia ma un sibling deliberato (long-only, orig_gap,
|
||||
j clampato) → resta nel suo script, documentato nel modulo comune.
|
||||
- [ ] **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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user