feat(live): portafoglio REALE-only — i 2000EUR ai soli 14 sleeve eseguiti, paper fuori dal pool
Decisione utente: il conto reale deve mostrare il risultato puro. I 2000 si dividono SOLO tra i 14 sleeve reali (6 fade + DIP01 + 5 pairs + SH01). I 3 multi-asset (TR01/ROT02/TSM01), non eseguibili in reale, escono da pool/pesi/ledger e girano solo per statistica. - portfolios.yml: paper_sleeves [TR01,ROT02,TSM01]. - runner: live_specs (pool/ledger) vs paper_specs (capitale nozionale fisso = total/N, data/portfolio_paper_stats/, ticcati ma MAI in update_equity). - hourly_report: sezione PAPER da portfolio_paper_stats, etichettata 'fuori dal conto reale'. Pesi reale-only (14, cap): non-cappati 0.087, PAIRS 0.33, SHAPE 0.0588. Costo misurato e accettato: FULL DD 3.96->5.34%, OOS DD 1.36->1.70% (perde i diversificatori PAPER, corr 0.07); Sharpe ~invariato. Test 93/93. Diario docs/diary/2026-06-08-real-only-portfolio.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# 2026-06-08 — Portafoglio live REALE-only: i €2000 ai soli sleeve eseguiti
|
||||
|
||||
Decisione utente: il portafoglio live deve mostrare il **risultato reale puro**. I €2000
|
||||
si dividono SOLO tra i 14 sleeve che eseguono davvero (6 fade + DIP01 + 5 pairs + SH01);
|
||||
i 3 multi-asset (TR01/ROT02/TSM01), non eseguibili in reale (bloccati dal capitale),
|
||||
escono dal pool e girano **solo per statistica**.
|
||||
|
||||
## Implementazione (runner-level, non rompe le definizioni)
|
||||
|
||||
- `portfolios.yml`: `paper_sleeves: [TR01, ROT02, TSM01]`.
|
||||
- `runner`: separa `live_specs` (pool/pesi/ledger) da `paper_specs`. I paper:
|
||||
- capitale NOZIONALE fisso = `total_capital / N_sleeve_totali` (la fetta equal che
|
||||
avrebbero avuto), NON dal pool;
|
||||
- girano in `data/portfolio_paper_stats/` (binario separato);
|
||||
- ticcati per statistica ma MAI in `ledger.update_equity` → non toccano l'equity reale.
|
||||
- `hourly_report`: la sezione multi-asset ora legge `portfolio_paper_stats/` ed è
|
||||
etichettata "PAPER — solo statistica, FUORI dal conto reale".
|
||||
|
||||
## Pesi del portafoglio reale-only (14 sleeve, cap)
|
||||
|
||||
sum=1.0; non-cappati 0.0873 (erano 0.0647 su 17), PAIRS 0.33 (cap), SHAPE 0.0588 (cap,
|
||||
SH ciascuno 0.0294). Il cap SHAPE resta valido e protettivo anche su 14.
|
||||
|
||||
## Il costo, misurato e accettato
|
||||
|
||||
| | FULL Sh | FULL DD | OOS Sh | OOS DD |
|
||||
|---|---|---|---|---|
|
||||
| PORT06 completo (17, validato) | 6.43 | 3.96% | 8.58 | 1.36% |
|
||||
| **REALE-only (14, live ora)** | 6.49 | **5.34%** | 8.54 | **1.70%** |
|
||||
|
||||
Perdendo i 3 diversificatori PAPER (corr 0.07), il DD del portafoglio reale sale
|
||||
~3.96→5.34% FULL e 1.36→1.70% OOS, Sharpe sostanzialmente invariato. È il **prezzo di
|
||||
vedere il risultato reale puro** invece di una curva mista reale+paper: scelta
|
||||
consapevole dell'utente. I PAPER restano misurati per ri-integrarli quando saranno
|
||||
eseguibili (SH01 è già stato integrato oggi; i multi-asset attendono capitale ~€20k).
|
||||
|
||||
## Note di transizione
|
||||
|
||||
- Il ledger `PORT06` (code invariato) ora rappresenta i 14 reali: la curva equity ha
|
||||
una discontinuità di composizione da questo deploy (atteso).
|
||||
- I 3 paper ripartono puliti in `portfolio_paper_stats/` con capitale nozionale uniforme
|
||||
(statistica comparabile); i vecchi status in `portfolio_paper/` restano come storico.
|
||||
Reference in New Issue
Block a user