research(gtaa): la via UCITS e' aperta e costa ~zero — il broker non e' la variabile
Domanda dell'operatore: "usiamo revolut o degiro". Risposta misurata: cambiare broker non sblocca nulla (il PRIIPs e' una norma, non una politica di IB); cambiare VEICOLO si', e costa ~zero. CORREZIONE A UNA MIA AFFERMAZIONE. La nota in gtaa.py diceva che gli UCITS fanno perdere la validazione a 30 anni. Falso: il PRIIPs vieta di COMPRARE, non di GUARDARE — i prezzi dei 6 ETF USA restano leggibili, quindi il segnale gira sui 30 anni per sempre e cambia solo il veicolo su cui si incassa. Misure (3 lenti, un grado di liberta' per volta, 6.3 anni comuni): L0 segnale USA + rend. USA Sh 0.81 / CAGR 3.96% L2 segnale UCITS + rend. UCITS Sh 0.84 / CAGR 4.08% drag del veicolo +0.10%/anno EW, coerente coi TER; ritenuta USA ~35bps a FAVORE dell'UCITS e non inclusa nel drag. Lo stimatore ovvio sbagliava: la media delle differenze giornaliere dava -0.47%/anno su CSPX contro -0.06% vero (SE ~7%/anno = 15x la quantita' stimata, piu' drag di varianza). La deviazione fra veicoli sullo stesso indice si misura sul RAPPORTO CUMULATO. Il vincolo non e' il broker ma il prezzo di UNA azione, che e' una scelta: CSPX $802 vs VUAA $144 sullo stesso S&P 500. A $3.000 con azioni intere l'insieme STORIA tiene 4/6 gambe (a mercato il 33%), l'insieme DEPLOY 6/6 (65%) -> il frazionamento non serve. Letto su gambe-vive+vol, non su Sharpe: il vincolo intero ALZA lo Sharpe perche' de-leveraggia (null de-levering, 4a occorrenza). Resta da verificare una cosa sola: 77-149 ordini/anno contro soglie $0.90 ($3k) / $2.23 ($10k) / $7.62 ($50k) per ordine. Raccomandazione: restare su IB. Feed equity: aggiunto il CROSS-CHECK che mancava (src/data/eq_crosscheck.py). Il primo veicolo estero ha trovato subito CSPX 2012-01-13 con open/high in USD e low/close in EUR (fattore 1.2797 = EURUSD del giorno), invisibile alla guardia maxret>50% — stesso schema dello split 2:1 del 25/07. Soglia non tarabile sulla deviazione (rumore 9.90%, margine 2.2x): cambiata statistica in |dev|/movimento del gemello -> margine 5.3x. Limite EURUSD 1.09 dichiarato e chiuso sul DANNO (dSharpe mediano -0.003), congelato in un test. Book, pesi, cron, config INVARIATI. 435 test verdi (+24). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XBbYmiXqbUNuGpK9sfbsGp
This commit is contained in:
@@ -1039,18 +1039,82 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis
|
||||
**COSA NON CADE:** tutte le traiettorie, i muri e le tabelle di rendita pubblicate usano
|
||||
`book_series(with_gtaa=0)` = **solo TP01+SKH01 su Deribit** → nessun numero del piano va rifatto.
|
||||
E il book live non lo include.
|
||||
**VIA D'USCITA, non ancora percorsa:** equivalenti **UCITS** (CSPX/SXR8, EQQQ/SXRV, IUSN/CSUSS,
|
||||
DTLA/IDTL, SGLN/IGLN, IHYU). ⚠️ **Non e' una sostituzione di ticker:** (a) storia piu' **corta**
|
||||
(diversi nati dopo il 2010) → si perde la validazione a 30 anni, che e' cio' che rendeva credibile
|
||||
lo sleeve; (b) ritenuta sui dividendi, TER e replica diversi → decine di bps/anno su un CAGR del
|
||||
**3.65%**, non trascurabili in proporzione; (c) quotazione LSE/Xetra → orari e valuta diversi da
|
||||
uno sleeve che decide sul close USA. Percorso onesto: **validare sull'INDICE** (storia lunga) e
|
||||
**negoziare il VEICOLO UCITS**, dichiarando tracking error e ritenuta come costi espliciti.
|
||||
**REGOLA: la negoziabilita' sul conto REALE va verificata quando lo sleeve entra in RICERCA, non
|
||||
quando entra nel book.** Qui 5 settimane di misure poggiavano su un'assunzione mai controllata, e
|
||||
il controllo e' costato **un ordine di prova**. E' l'analogo azionario di cio' che il progetto fa
|
||||
gia' rigorosamente sul crypto (min-order, haircut small-cap, eseguibilita' a $600): la stessa
|
||||
disciplina non era stata applicata all'equity.
|
||||
- ✅ **LA VIA D'USCITA UCITS E' APERTA E COSTA ~ZERO — misurata 2026-07-26 (domanda dell'operatore:
|
||||
"usiamo revolut o degiro"). E la premessa su cui era stata scartata era MIA e FALSA.**
|
||||
Script `fetch_ib_ucits.py` + `r0726_gtaa_ucits.py`; modulo nuovo `src/data/eq_crosscheck.py`;
|
||||
test `tests/test_eq_crosscheck.py` (14) + `tests/test_gtaa_ucits.py` (10); diario
|
||||
`2026-07-26-gtaa-ucits.md`. **Book/pesi/cron/config INVARIATI.**
|
||||
(0) ⚠️ **CORREZIONE:** la nota diceva "storia UCITS piu' corta → si perde la validazione a 30
|
||||
anni". FALSO per un motivo strutturale: **il PRIIPs vieta di COMPRARE, non di GUARDARE**. I
|
||||
prezzi dei 6 ETF USA restano leggibili (l'operatore li aveva sul terminale *mentre* l'ordine
|
||||
veniva rifiutato) → il **segnale** gira sui 30 anni per sempre, cambia solo il **veicolo** su cui
|
||||
si incassa. La storia corta serve solo a misurare la deviazione del veicolo, un drift lento.
|
||||
**Regola: prima di dichiarare che un vincolo esterno distrugge un risultato, chiedersi cosa
|
||||
vincola esattamente** — "non posso comprare" ≠ "non posso vedere".
|
||||
(1) **Il cambio di veicolo NON costa.** Tre lenti a un grado di liberta' per volta su 6.3 anni
|
||||
comuni: L0 (segnale USA + rend. USA, pubblicato) **Sh 0.81 / CAGR 3.96%**; L2 (segnale UCITS +
|
||||
rend. UCITS, deploy) **Sh 0.84 / CAGR 4.08%**. Drag del veicolo **+0.10%/anno** EW, coerente coi
|
||||
TER (controllo piu' netto: GLD 0.40% vs IGLN 0.12% → atteso +0.28%, misurato +0.36%); e la
|
||||
**ritenuta USA 15% sui dividendi (~35bps) e' A FAVORE dell'UCITS** e non e' nel drag misurato
|
||||
(`ADJUSTED_LAST` USA e' al lordo). *(Ipotesi fiscale dichiarata, fonte secondaria.)*
|
||||
⚠️ **Lo stimatore ovvio da' la risposta sbagliata:** la media delle differenze giornaliere dava
|
||||
**−0.47%/anno** su CSPX contro **−0.06%** vero. Le due serie seguono lo stesso indice ma sono
|
||||
campionate a orari diversi (Londra chiude 4h30 prima) → la differenza giornaliera e' dominata da
|
||||
uno sfasamento che si inverte il giorno dopo: **SE ~7%/anno, 15× la quantita' stimata**, piu' il
|
||||
drag di varianza. **REGOLA: la deviazione fra due veicoli sullo stesso indice si misura sul
|
||||
RAPPORTO CUMULATO** (e' una domanda sul drift), mai sulla media delle differenze.
|
||||
(2) ✅ **IL VINCOLO NON E' IL BROKER, E' IL PREZZO DI UNA AZIONE — e quello e' una SCELTA.**
|
||||
CSPX costa $802 e VUAA $144 sullo **stesso** S&P 500. Due insiemi: **STORIA** (CSPX/EQQQ/XRSU/
|
||||
IDTL/IGLN/IHYU, finestra lunga, per misurare) e **DEPLOY** (VUAA/XNAS/R2US/IDTL/IGLN/IHYU, prezzo
|
||||
unitario basso, per eseguire). A **$3.000** con esecuzione a azioni INTERE: STORIA tiene **4/6
|
||||
gambe** ed e' a mercato il **33%** del tempo; DEPLOY tiene **6/6** al **65%**, ΔSharpe −0.04.
|
||||
**Il frazionamento del broker NON serve.** Scartati benche' con piu' storia: RTWO (Russell 2000
|
||||
*quality*), CSUSS (*ESG*), IDP6 (S&P 600) — equivalenza dell'INDICE prima della storia.
|
||||
⚠️ Letto sulla colonna **gambe vive + vol**, non su Sharpe: il vincolo intero *alza* lo Sharpe a
|
||||
capitale piccolo perche' arrotonda in giu' e paga meno commissioni = **null de-levering, 4ª
|
||||
occorrenza** (VRP-DD, TP01×DVOL, MAT01).
|
||||
(3) **Cosa resta da verificare: UNA cosa sola.** Lo sleeve fa **77 ordini/anno a $3k, 102 a $10k,
|
||||
149 a $50k**; soglia oltre cui non vale la pena (Sharpe<0.45) = **$0.90/ordine a $3k, $2.23 a
|
||||
$10k, $7.62 a $50k**. Listino **proporzionale** ≈ indifferente al capitale (Sh 0.75-0.89 a ogni
|
||||
taglia), listino **fisso** = tassa regressiva (regola 25/07 riconfermata su altro venue).
|
||||
**Raccomandazione: restare su IB** — conto gia' aperto, stesso gateway dei dati del segnale,
|
||||
forma di costo gia' modellata. ⚠️ **Revolut/Degiro NON sbloccano gli ETF USA**: il PRIIPs vale
|
||||
per ogni intermediario UE, IB e' anzi fra i piu' permissivi; un terzo conto aggiungerebbe rischio
|
||||
di venue senza guadagno. Nessuna azione oggi (decisione venue: 100% Deribit fino a $20k).
|
||||
- ⚠️ **IL FEED EQUITY NON AVEVA UN CROSS-CHECK — buco trovato e chiuso (2026-07-26).**
|
||||
`src/data/eq_crosscheck.py`. Nel crypto la certificazione incrocia sempre piu' venue
|
||||
(`certify_feed.py` vs Coinbase USD); il feed equity aveva **solo controlli locali** (integrita',
|
||||
gap, spike, split). Il primo veicolo estero ha trovato il buco alla prima estrazione: **CSPX
|
||||
2012-01-13** con `open/high 112.740` in **USD** e `low/close 88.010` in **EUR** (fattore dai close
|
||||
adiacenti **1.2797** = EURUSD di quel giorno) → −21.9% e poi +27.8% mentre SPY faceva −0.39%.
|
||||
**La certificazione esistente non lo vedeva:** unica guardia `maxret > 50% → SPIKE?`, e una
|
||||
contaminazione EUR/USD vale ~22-28% — **stesso schema dello split 2:1 del 25/07** (che valeva
|
||||
*esattamente* −50%). **2ª conferma: una soglia tarata su una classe di difetto non sorveglia le
|
||||
altre.**
|
||||
**Perche' il GEMELLO e non una regola locale:** il discriminante del 25/07 (range intraday) qui
|
||||
non funziona — anche un crollo vero ha range enorme (SLV 33%). Cio' che separa i casi e' che **un
|
||||
evento di mercato lo fa anche il gemello**: nel *rapporto* i movimenti veri si cancellano.
|
||||
Controprova su dati reali: la scansione sui **prezzi** segnalava IDTL 2020-03 (liquidazione
|
||||
treasury) e IGLN 2013-04 (crollo oro); sul **rapporto** spariscono.
|
||||
⚠️ **La soglia non era tarabile sulla deviazione** — rumore legittimo fino al **9.90%**
|
||||
(2025-04-09: Londra chiude alle 11:30 di New York) contro un difetto del 21.4% → margine 2.2×,
|
||||
sotto il 3× richiesto. **La risposta non e' accettare il margine ma CAMBIARE STATISTICA:**
|
||||
`|dev| / movimento del gemello` (un disallineamento d'orario **non puo' superare il movimento del
|
||||
mercato**) → rumore **8.1**, difetto **42.7**, **margine 5.3×**. Soglia 18.0, equidistante in
|
||||
scala log. Tre condizioni congiunte: deviazione + non-spiegato + **rientro** entro 5 barre.
|
||||
**Riparazione = SCARTARE la barra, non ricostruirla** (del prezzo vero non si sa nulla).
|
||||
⚠️ **Limite dichiarato e chiuso sul DANNO, non sulla rilevabilita':** GBPUSD 1.27 → 21% sempre
|
||||
rilevato; EURUSD 1.09 → 8.3% **dentro il rumore** e non tappabile senza falsi positivi. Misurato
|
||||
invece il danno di una contaminazione non vista: **dSharpe mediano −0.003, peggiore −0.056,
|
||||
|Δ|>0.05 nel 2%**. **REGOLA: quando un buco non si puo' chiudere senza generare falsi positivi,
|
||||
si misura il DANNO del caso non rilevato** — un buco quantificato e innocuo e' un risultato, uno
|
||||
taciuto e' un debito. Il limite e' congelato in un test (`test_limite_dichiarato_*`): se qualcuno
|
||||
abbassa la soglia, il test dice cosa e' cambiato.
|
||||
- 💰 **I VERSAMENTI — le 4 ipotesi che il piano non aveva mai fatto (2026-07-26, ultimo filone).**
|
||||
Tutte le traiettorie del 25-26/07 assumevano versamento **piatto, ininterrotto, per sempre** =
|
||||
l'ipotesi meno realistica del piano. Script `r0726_deposits.py`, test `tests/test_deposits.py`
|
||||
|
||||
Reference in New Issue
Block a user