ricerca: il piano a 10 anni dal conto vero, l'ETF-quando-flat SCARTATO, slippage rifatto

Giornata partita da "stato trades" e finita sul disegno del sistema. Versamento di
1.400 USDC atterrato alle 11:03:35Z (equity $667,88 -> $2.066,88); il giro delle 11:47
ha ribilanciato correttamente e ha ripiazzato i disaster-SL alla taglia nuova -- prima
volta che il ramo riparato stamattina gira sul serio.

(1) PIANO A 10 ANNI DAL CONTO VERO -- r0825_piano_10a_500.py (nuovo)
Le tabelle pubblicate partono da $600/$635: rifatte su $2.067, lente L3 CONGIUNTA.
Replica superata: chiede EUR 1.718/m dove la tabella da $635 chiedeva EUR 1.733.
EUR 500/mese per 10 anni -> mediana $114.934, rendita 18,35 EUR/g, P(>=50 EUR/g) = 0,0%
su 3.000 traiettorie. Il bersaglio con EUR 500/m arriva al 17o anno.

  L'EQUIVALENZA CHE ORDINA IL PIANO: EUR 100/mese in piu' == +4,07%/anno di drift,
  cioe' +27% su TUTTO il drift del libro. A 10 anni i bonifici fanno il 59%.
  Tutta la leva autorizzabile vale quanto EUR 100-150/mese: k=1,25 (+15,6%) vale MENO
  di EUR 100/mese in piu' (+19,1%), e si porta dietro il peggior giorno al 21,48%.

  E il libro a k=1 rende MENO dell'S&P (15,19% vs 17,40%): il vantaggio sta nello
  Sharpe (1,35 vs 0,89) e senza leva NON si converte in rendimento. Senza leva il libro
  non si giustifica come veicolo di ACCUMULO -- si giustifica come veicolo di RENDITA,
  dove serve 2,5x meno capitale ($254k contro $646k) perche' la perpetua vive sul DD.

(2) "ETF QUANDO IL LIBRO E' FLAT" -- SCARTATO, r0825_capitale_fermo.py (nuovo)
Il libro e' flat il 28,0% dei giorni (2,7% nel 2021, 77,0% nel 2022, 75,6% nel 2026);
live, esposto 14 giorni su 64, leva lorda mediana 0,00x e max 0,52x su un tetto di 1,0x
-- il cap non ha mai morso, il vincolo e' il segnale.
A ISO-RISCHIO il dinamico PERDE: Sharpe 1,01 contro 1,40 del 50/50 e 1,35 del libro. E
il null a maschera casuale (400 estrazioni, stessa quota, blocchi 20g) lo mette al 30o
percentile: fa PEGGIO di commutare a caso.
A iso-nozionale sembrava vincere (drift 17,09%, il piu' alto) perche' aveva la vol piu'
alta: e' la trappola di M6, il de-levering e' il PRIMO test.

  E IL MECCANISMO CHE SEMBRAVA OVVIO NON ESISTE. Aggregato: SPY 4,91% nei giorni flat
  contro 21,48% negli altri (-16,57%), e la storia si scrive da sola. FALSA: scomposta
  per anno il segno ALTERNA (3 su, 4 giu') e il 2022 -- l'anno che doveva reggerla --
  ha il segno OPPOSTO. Artefatto di composizione: i giorni flat stanno negli ANNI brutti
  per l'azionario, non nei GIORNI brutti. M9 ha fatto il suo lavoro su di me.

(3) SLIPPAGE RIFATTO ALLA TAGLIA VERA -- r0822_slip_audit.py riparato
26 fill (erano 18), $6-$319. I due piu' grandi mai eseguiti sono di oggi e hanno preso
1,01% e 0,54% della loro barra 5m, con il print a meta' del range (q=0,50). Il caso
peggiore resta un fill da $74 del 18/07 al 21,9%: un sabato, nastro inesistente.
L'attrito non e' funzione della TAGLIA ma di taglia/volume-della-barra -- l'estrapolazione
lineare che prevedeva ~71% a questo capitale e' refutata dalla misura diretta.
NB non e' "assente", e' "non ancora testato": manca un fill grande in una barra sottile,
e il weekend e' dove TP01 fa il 38% del proprio gross.

  DIFETTO P1 RIPARATO: l'equity era CABLATA a 636.0 con un commento che diceva di
  leggerla dal watermark. Il giorno del versamento avrebbe stampato $636 sbagliando di
  3,3x proprio la sezione che esiste per dire QUANDO la misura scade. Riparata leggendo
  il watermark -- e poi riparata di nuovo, perche' i fill del campione sono stati
  eseguiti a conti diversi ($597-$2.067) e una base sola e' sbagliata comunque la si
  scelga. Ora la normalizzazione e' PER FILL, e a $600 riproduce il 22,0% originale.

DUE ERRORI MIEI, CATTURATI PRIMA DI PUBBLICARLI
- maschera VUOTA vestita da risultato: la prima stesura di r0825_capitale_fermo prendeva
  i giorni flat dalla serie DE-LUCKATA, ma `deluck` sottrae una costante e lo zero esatto
  sparisce -> maschera vuota, dinamico identico al book, e lo script ha stampato tabelle
  piene e un p-value. Lo ha rivelato solo la riga "0 = 0.0%".
  REGOLA: stampare la CARDINALITA' di una maschera prima di usarla.
- il meccanismo falso della (2), demolito dalla scomposizione per anno.

Suite: 730 passati, 1 fallito -- quello gia' noto di 5.9 (deriva dati, non codice).
Watermark del libro live sopravvissuto intatto alla suite (fixture autouse di stamattina).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B9UyJLHzR7EJzxR3iQ3RN1
This commit is contained in:
Adriano Dal Pastro
2026-08-25 18:13:15 +00:00
parent 14e1567125
commit ee5c6ed539
7 changed files with 647 additions and 7 deletions
+53
View File
@@ -1399,3 +1399,56 @@ chi lo riapre deve battere il motivo, non ripetere l'esperimento.
lo Sharpe **MARGINALE vs baseline TP01** (non assoluto) + esigere plateau e jackknife
drop-one-month sull'hold-out prima di PASS (hanno ucciso 13/14 falsi positivi). Diario
`2026-06-20-alt-strategies-100agent-sweep.md`.
---
## 2026-08-25 — «Mettere l'ETF nei giorni in cui il libro è flat»: SCARTATO
Script `scripts/research/r0825_capitale_fermo.py` (calcola il proprio verdetto a runtime).
Nasce da un'osservazione dell'operatore: il libro live sta **flat il 28,0% dei giorni** sull'intera
storia (**75,6% nel 2026**, 77,0% nel 2022) → quel capitale fermo è un'occasione?
### L'esito, a ISO-RISCHIO (vol 11%, M6)
| linea | drift | Sharpe | maxDD |
|---|---:|---:|---:|
| BOOK da solo | 14,80% | **1,35** | **12,1%** |
| 50/50 statico | 15,41% | **1,40** | 19,6% |
| **DINAMICO (ETF se flat)** | 11,13% | **1,01** | 14,7% |
| ETF da solo | 9,53% | 0,87 | 20,2% |
**Il dinamico perde contro entrambi.** E il null a maschera casuale (400 estrazioni, stessa quota
28,0%, stessa struttura a blocchi di 20g) lo mette al **30° percentile**, p 0,698: **fa peggio di
una maschera a caso della stessa frequenza**.
### I motivi — cioè quello che chi riapre il tema deve battere
- 🚨 **A ISO-NOZIONALE il dinamico SEMBRAVA vincere**: drift **17,09%**, il più alto di tutti. Ma
aveva anche la vol più alta (16,90%). È esattamente la trappola di **M6**: a iso-nozionale un
veicolo a vol bassa perde per costruzione e uno a vol alta vince per costruzione. *Il de-levering
è il PRIMO test, non l'ultimo.*
- 🚨 **IL MECCANISMO CHE SEMBRAVA OVVIO NON ESISTE.** Aggregato: nei giorni flat l'SPY rende
**4,91%**, negli altri **21,48%** → differenza **16,57%**, e la storia si scrive da sola («il
libro va flat quando anche l'azionario soffre»). **Falsa.** Scomposta per anno il segno
**ALTERNA — 3 anni su, 4 giù** — e il **2022**, l'anno che doveva reggerla (77% flat, SPY 18,2%),
ha il segno **OPPOSTO** (+39,9%: nei giorni flat l'azionario andava *meglio*).
L'aggregato è un **artefatto di composizione**: i giorni flat si concentrano negli **anni** a
basso rendimento azionario, non nei **giorni** a basso rendimento. È **M9** che fa il suo lavoro.
- **La spiegazione vera è meccanica e non serve una storia:** scambiare un asset a Sharpe 1,35 con
uno a Sharpe 0,87 per il 28% del tempo abbassa lo Sharpe della miscela. Punto.
- 📌 **La flat-ness del libro NON porta informazione sull'azionario, in nessuna direzione.**
### Due cose utili cadute fuori dal test
1. **Il 50/50 statico batte il libro sullo Sharpe (1,40 vs 1,35) ma PEGGIORA il drawdown
(19,6% vs 12,1%).** Non è pasto gratis: siccome la rendita perpetua **vive sul drawdown**,
per l'obiettivo €50/giorno **il libro da solo resta preferibile** nonostante lo Sharpe più basso
— coerente col capitale-rendita $254k contro $646k. Il 50/50 conviene per *capitale a 10 anni*,
non per *rendita*.
2. ⚠️ **Difetto del misuratore, catturato da una riga di stampa.** La prima stesura prendeva la
maschera flat dalla serie **de-luckata** — ma `deluck` sottrae una COSTANTE, quindi un giorno a
rendimento esattamente zero non è più zero e `abs(r) < 1e-12` **non trova niente**. Maschera
vuota, dinamico identico al book, e lo script ha stampato **tabelle complete e un p-value**
dall'aria seria. Se ne è accorta solo la riga `giorni in cui il LIBRO e' flat: 0 = 0.0%`.
**REGOLA: stampare sempre la CARDINALITÀ di una maschera prima di usarla** — un filtro vuoto non
solleva, produce il caso degenere e lo veste da risultato.
+69
View File
@@ -696,3 +696,72 @@ La tabella che comanda e' quella al netto di TUTTO (fisco + funding).
tempo. La strategia che *guadagna* esiste, ma a ~+€1.5/giorno su 2000.
Script ricerca: `scripts/research/track{A,B,C,D,E}_*.py` + `trackD_timing.py`.
---
## 2026-08-25 — €500/mese per 10 anni dal conto vero, e l'ordine delle leve rimisurato
Versamento di **1.400 USDC** atterrato alle 11:03:35Z: equity **$667,88 → $2.066,88**. Le tabelle
pubblicate partono da $600/$635, quindi sono state rifatte sul conto reale.
Script `scripts/research/r0825_piano_10a_500.py`, lente **L3 CONGIUNTA** (funding esatto + fisco
d'accumulo + ancora ×0,89).
**Controllo di replica superato:** da $2.067 lo script chiede **€1.718/m** a 10 anni dove la
tabella pubblicata da $635 chiedeva €1.733 — lo scarto è esattamente il capitale iniziale più alto.
### €500/mese da $2.067
| orizzonte | capitale mediano | p10 | p90 | €/g | P(≥50 €/g) | versato | fin/vers |
|---|---:|---:|---:|---:|---:|---:|---:|
| 5a | $44.925 | $38.015 | $54.453 | 7,17 | 0,0% | $34.767 | 1,29x |
| **10a** | **$114.934** | $89.461 | $152.072 | **18,35** | **0,0%** | $68.012 | 1,69x |
| 15a | $228.778 | $163.333 | $324.376 | 36,53 | 12,3% | $101.257 | 2,26x |
| 20a | $408.117 | $276.623 | $621.664 | 65,16 | 79,4% | $134.502 | 3,03x |
**A 10 anni €500/mese NON centra €50/giorno: centra ~18 €/g, P(≥50) = 0,0% su 3.000 traiettorie.**
Con €500/m il bersaglio arriva al **17,0° anno** (P(20a) 87%). Per €50/g **in 10 anni** servono
**€1.718/m** (P=90%, totale $228.688) o €1.305/m a P=50%.
Quando arriva, per versamento: €0 **mai** · €250 22,9a (arriva il 73%) · **€500 17,0a** ·
€800 13,5a · €1.000 11,8a.
### 🚨 L'EQUIVALENZA CHE ORDINA TUTTO IL PIANO
> **€100/mese in più ($13.189 in dieci anni) vale quanto +4,07%/anno di drift** — cioè portare il
> libro da 15,19% a 19,26%, un **+27% su tutto il drift**.
| leva | mediana 10a | guadagno |
|---|---:|---:|
| base €500/m | $114.934 | — |
| **€600/m** | **$136.877** | **+19,1%** |
| €800/m | $180.864 | +57,4% |
| uplift drift +1%/anno | $119.850 | +4,3% |
| uplift drift +3%/anno | $130.605 | +13,6% |
| **leva k=1,25 sul libro** | $132.846 | +15,6% |
| **leva k=1,40 (max difendibile)** | $145.146 | +26,3% |
📌 **Tutta la leva autorizzabile vale quanto €100-150/mese** — e k=1,25 vale **meno** di €100/mese
in più, portandosi dietro il peggior giorno strutturale al 21,48%. Il bonifico non porta rischio.
### Il versamento di oggi, e quanto conta un lump
I €1.400 di stamattina spostano la mediana a 10 anni solo del **+3,3%** (da $111.297 a $114.934).
Conferma l'ordine delle leve: **versare > quando > quanto presto si smette > piatto vs crescente >
frequenza**. A 10 anni il rendimento fa il **41%** del risultato, i bonifici il **59%**.
### Book vs ETF, rimisurato a iso-rischio (lente L3)
| | rendimento | vol | Sharpe |
|---|---:|---:|---:|
| book k=1 (oggi) | **15,19%** | 11,29% | **1,35** |
| S&P 500 (stessa finestra) | 17,40% | 19,60% | 0,89 |
| book a iso-rischio (k=1,74) | **26,38%** | 19,60% | 1,35 |
| book a k=1,40 (max difendibile) | 21,27% | 15,80% | 1,35 |
🚨 **A k=1 il libro rende 2,2 punti MENO dell'S&P.** Il vantaggio di Sharpe (1,35 vs 0,89) resta
**rischio risparmiato, non rendimento incassato** — e senza leva non si converte. A iso-rischio il
libro farebbe **+9,0 punti** sopra l'indice; a k=1,40 **+3,9 punti con meno vol**.
📌 **Quindi: senza leva il libro NON si giustifica come veicolo di ACCUMULO. Si giustifica come
veicolo di RENDITA**, dove serve **2,5× meno capitale** ($254k contro $646k) perché la perpetua
vive sul drawdown. La scelta del veicolo dipende da quale dei due è l'obiettivo (N6).
⚠️ E il fisco favorisce l'ETF: UCITS ad accumulazione paga **26% alla vendita**, il book **33%
ogni anno**. Il differimento è un vantaggio strutturale reale.