3f0812c7fc
Screenshot della watchlist "Pythagoras" su flatexDEGIRO: le 6 gambe ci sono tutte, coi ticker esatti raccomandati. Era Revolut a non avere R2US. VERIFICA INDIPENDENTE che le due linee EUR (VUAA, XNAS su Tradegate) siano gli stessi fondi, dai dati e non dallo screenshot: il rapporto prezzo-IB/prezzo-Degiro dev'essere un solo cambio -> 1.1341 e 1.1315, scarto 0.23%. Le altre 4 stanno a 0.993-0.998 (gia' USD). Due fondi diversi non darebbero lo stesso cambio. ERRORE MIO, dello stesso tipo che avevo codificato come regola un messaggio prima: per cercare le linee in euro delle altre 4 gambe ho interrogato IB per TICKER sulle borse tedesche, ottenendo "nessuna linea EUR" su 4/4. Falso. Cercando per ISIN ognuna ce l'ha: ZPRR (=R2US), IS04 (=IDTL), EGLN (=IGLN, Londra EUR), IS0R (=IHYU). Un "assente" da una ricerca per ticker su una borsa dove quel ticker non esiste non significa "non esiste". TURNOVER PER GAMBA a $10k (21 ordini/anno): IDTL 9 ordini / $6.257 = 46% del totale, poi VUAA 17%, IGLN 12%, XNAS 12%, IHYU 7%, R2US 6%. Il 71% del turnover e' su gambe in USD ($9.752/anno) -> conversione $24/anno a 25bps. Spostare la sola IDTL sulla linea in euro (IS04) copre il 64% del turnover convertibile. Ma non e' un risparmio netto (spread Xetra piu' larghi delle linee primarie di Londra, tariffa di connettivita' per borsa) e su $10k si parla di decine di dollari l'anno in entrambe le direzioni: non e' una decisione importante, ed e' piu' utile dirlo che costruire una precisione finta. Il prompt W-8BEN di Degiro non riguarda queste sei: sono fondi irlandesi, non titoli USA. Stato: preparazione, non azione (saldo Degiro EUR 328,92; GTAA01 richiede >=$3k e la decisione venue tiene tutto su Deribit fino a $20k). Book, pesi, cron, config INVARIATI. 448 test verdi (+1). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XBbYmiXqbUNuGpK9sfbsGp
614 lines
30 KiB
Markdown
614 lines
30 KiB
Markdown
# 2026-07-26 — GTAA01 sugli UCITS: la via d'uscita dal blocco PRIIPs è aperta, e il broker non è la variabile
|
||
|
||
**Domanda dell'operatore:** *"usiamo revolut o degiro"* — dopo che il conto reale ha rifiutato
|
||
l'ordine sui 6 ETF USA di GTAA01 con `Trading limitato — Questo prodotto non dispone di un KID`.
|
||
|
||
**Risposta breve:** cambiare broker non sblocca niente (il PRIIPs è una norma, non una politica di
|
||
IB). Ciò che sblocca è cambiare **veicolo**. Misurato: il cambio di veicolo costa **~0**, e con la
|
||
scelta giusta delle linee lo sleeve è eseguibile **senza frazionamento** già a $3.000.
|
||
|
||
**Book, pesi, cron, config: INVARIATI.** GTAA01 non entra nel book live (resta la decisione venue
|
||
del 26/07: 100% Deribit fino a $20k).
|
||
|
||
Script: `scripts/research/fetch_ib_ucits.py`, `scripts/research/r0726_gtaa_ucits.py`.
|
||
Modulo nuovo: `src/data/eq_crosscheck.py`. Test: `tests/test_eq_crosscheck.py` (14),
|
||
`tests/test_gtaa_ucits.py` (10).
|
||
|
||
---
|
||
|
||
## 0. La premessa che era falsa, ed è la ragione per cui il problema è piccolo
|
||
|
||
La nota che avevo scritto in `src/portfolio/gtaa.py` diceva:
|
||
|
||
> storia più CORTA (diversi nati dopo il 2010) → si perde la validazione a 30 anni che è ciò che
|
||
> rendeva credibile questo sleeve
|
||
|
||
**È falsa, per un motivo strutturale: il PRIIPs vieta di COMPRARE, non di GUARDARE.** I prezzi di
|
||
SPY/QQQ/IWM/TLT/GLD/HYG restano leggibili — l'operatore li aveva sotto gli occhi sul terminale
|
||
*mentre* l'ordine veniva rifiutato. Quindi il **segnale** di GTAA01 può continuare a girare sui 30
|
||
anni di serie USA per sempre; cambia solo il **veicolo** su cui si incassa il rendimento.
|
||
|
||
La storia corta degli UCITS non serve a validare la strategia. Serve a misurare una cosa sola: la
|
||
**deviazione del veicolo**, che è un drift lento e si stima bene anche su pochi anni.
|
||
|
||
> **Regola:** prima di dichiarare che un vincolo esterno distrugge un risultato, chiedersi
|
||
> *esattamente cosa* vincola. Qui la differenza fra "non posso comprare" e "non posso vedere"
|
||
> separa uno sleeve morto da uno sleeve con un problema di esecuzione.
|
||
|
||
---
|
||
|
||
## 1. Il dato, prima della strategia — e il feed equity non aveva un cross-check
|
||
|
||
Estratti 12 veicoli UCITS da IB (`LSEETF`, **tutti in USD**: quotare in USD elimina un livello di
|
||
costo, la conversione per ordine). Alla prima certificazione, **7 su 10 con gap lunghi** e CSPX con
|
||
un **+27.8% giornaliero** su un tracker S&P 500.
|
||
|
||
I gap sono tutti **al lancio** della linea USD (ultimo gap lungo: CSPX 2014-04, XRSU 2016-10,
|
||
IGLN/IHYU 2011); negli ultimi 3 anni tutti i veicoli fanno 253 barre/anno. Non è un problema
|
||
corrente.
|
||
|
||
Il +27.8% invece è un difetto vero. La barra CSPX 2012-01-13:
|
||
|
||
```
|
||
open 112.740 high 112.740 low 88.010 close 88.010
|
||
```
|
||
|
||
**`open`/`high` in USD, `low`/`close` in EUR** — fattore dai close adiacenti **1.2797**, cioè
|
||
l'EURUSD di quel giorno (reale 1.266-1.282). Andata e ritorno: 112.63 → 88.01 → 112.47 mentre SPY
|
||
faceva −0.39% e +0.23%.
|
||
|
||
**La certificazione esistente non lo vedeva.** L'unica guardia sui movimenti era
|
||
`maxret > 50% → SPIKE?`, e una contaminazione EUR/USD vale ~22-28%. È lo **stesso schema** dello
|
||
split 2:1 non aggiustato del 25/07 (che valeva *esattamente* −50%): una soglia tarata su una classe
|
||
di difetto non sorveglia le altre.
|
||
|
||
### Perché serviva il gemello e non una regola locale
|
||
|
||
Il discriminante del 25/07 (**range intraday**) qui non funziona: una barra contaminata ha un range
|
||
enorme, ma anche un crollo vero (SLV 2026-01-30 aveva 33% di range). Ciò che separa i due casi è che
|
||
**un evento di mercato lo fa anche il gemello**: nel *rapporto* veicolo/gemello i movimenti veri si
|
||
cancellano.
|
||
|
||
Controprova su dati reali: la stessa scansione fatta sui **prezzi** segnalava IDTL 2020-03
|
||
(liquidazione dei treasury) e IGLN 2013-04 (crollo dell'oro) — andate-e-ritorni identiche nella
|
||
forma. Sul **rapporto** spariscono, e resta la sola CSPX 2012-01-13.
|
||
|
||
Questo è il buco che il feed equity aveva: nel crypto la certificazione incrocia sempre più venue
|
||
(`certify_feed.py` vs Coinbase USD); il feed equity aveva **solo controlli locali**.
|
||
|
||
### La soglia non è tarabile sulla deviazione, ed è il punto interessante
|
||
|
||
| statistica | rumore massimo misurato | difetto CSPX | margine |
|
||
|---|---|---|---|
|
||
| deviazione dal gemello | **9.90%** (2025-04-09) | 21.4% | 2.2× ❌ |
|
||
| **|dev| / movimento del gemello** | **8.1** | **42.7** | **5.3×** ✅ |
|
||
|
||
Il 9.90% è **legittimo**: Londra chiude alle 11:30 di New York, quindi in un giorno violento le due
|
||
chiusure sono davvero lontane. Ma **un disallineamento d'orario non può superare il movimento del
|
||
mercato**: se il gemello si è mosso dello 0.4% e il veicolo se ne va del 21%, non c'è orario che lo
|
||
spieghi. La statistica adimensionale porta il margine da 2.2× a 5.3× — sopra il 3× che questo
|
||
progetto richiede a un rilevatore.
|
||
|
||
Tre condizioni congiunte (come il rilevatore di split, e per la stessa ragione): deviazione oltre
|
||
`MIN_DEV`, non-spiegato oltre `MIN_UNEXPLAINED=18.0`, e **rientro** entro 5 barre (una divergenza di
|
||
NAV vera persiste, una stampa sbagliata no).
|
||
|
||
**Riparazione = scartare la barra, non ricostruirla.** Del prezzo vero non sappiamo niente;
|
||
sappiamo che quello scritto è sbagliato. Scartarla rende corretto il rendimento 12/01→17/01
|
||
(−0.14%); "ripararla" con un fattore stimato inventerebbe un dato.
|
||
|
||
### ⚠️ Limite dichiarato, e come è stato chiuso
|
||
|
||
GBPUSD ~1.27 → 21% di deviazione = **sempre rilevata**. EURUSD ~1.09 → 8.3% = **dentro il rumore**
|
||
dei giorni violenti. Non è tappabile abbassando la soglia (sotto 12 si segnalano i giorni veri).
|
||
|
||
Invece di inseguire la rilevabilità ho misurato il **danno** di una contaminazione non vista:
|
||
iniettando 60 contaminazioni casuali, **dSharpe mediano −0.003, peggiore −0.056, |Δ|>0.05 nel 2%
|
||
dei casi**. Il limite resta, ma è quantificato e irrilevante.
|
||
|
||
> **Regola:** quando un rilevatore ha un buco che non si può chiudere senza generare falsi positivi,
|
||
> si misura il **danno** del caso non rilevato, non la sua probabilità. Un buco quantificato e
|
||
> innocuo è un risultato; un buco taciuto è un debito.
|
||
|
||
---
|
||
|
||
## 2. Quanto costa il veicolo: ~zero — ma lo stimatore ovvio dà la risposta sbagliata
|
||
|
||
Prima stesura: media delle differenze giornaliere → **CSPX −0.47%/anno**. Sbagliato.
|
||
|
||
Le due serie seguono lo **stesso indice** ma sono campionate a orari diversi. La differenza
|
||
giornaliera è dominata da uno sfasamento che si **inverte il giorno dopo**: volatilità 17-22%
|
||
annualizzata, **errore standard ~7%/anno** sulla stima del drag — cioè **15 volte più grande del
|
||
drag stesso**. In più la media delle differenze *semplici* è contaminata dal drag di varianza.
|
||
|
||
Il rapporto veicolo/gemello invece è **stazionario**: il suo drift *è* il drag.
|
||
|
||
| gamba | UCITS | drag misurato | atteso da TER | + ritenuta USA | banda annua |
|
||
|---|---|---|---|---|---|
|
||
| SPY | CSPX | **−0.06%** | +0.02% | +0.20% | [−0.52,+0.63] |
|
||
| QQQ | EQQQ | **−0.00%** | −0.10% | −0.03% | [−0.13,+1.29] |
|
||
| IWM | XRSU | **−0.15%** | −0.11% | +0.07% | [−0.91,+0.37] |
|
||
| TLT | IDTL | **+0.18%** | +0.08% | +0.68% | [−0.45,+1.60] |
|
||
| GLD | IGLN | **+0.36%** | +0.28% | +0.28% | [−0.56,+0.99] |
|
||
| HYG | IHYU | **+0.28%** | −0.01% | +0.89% | [−0.83,+1.88] |
|
||
| **media EW** | | **+0.10%/anno** | +0.03% | **+0.35%** | |
|
||
|
||
Controllo di plausibilità: **segno concorde in 4/6, scarto < 30bps in 6/6**. Il caso più netto è
|
||
l'oro (GLD 0.40% vs IGLN 0.12% → atteso +0.28%, misurato +0.36%): è un controllo indipendente che la
|
||
misura sta cogliendo il TER e non rumore. Le due gambe discordi restano entro 30bps, e su una banda
|
||
annua larga [−0.9%,+1.9%] il segno di uno scarto così piccolo non è informativo. **Ciò che il
|
||
controllo stabilisce è la scala: decine di bps, non punti.**
|
||
|
||
⚠️ La colonna "ritenuta" è **a favore dell'UCITS e non è nel drag misurato**: `ADJUSTED_LAST` sulle
|
||
serie USA è al **lordo** della ritenuta USA del 15% che un residente italiano paga davvero sui
|
||
dividendi. Comprando SPY quella ritenuta la paghi e nella serie non c'è; un UCITS irlandese la
|
||
subisce una volta a livello di fondo e non una seconda all'incasso. *(Ipotesi fiscale dichiarata,
|
||
fonte secondaria, da confermare col commercialista — non è un parere fiscale.)*
|
||
|
||
### Le tre lenti
|
||
|
||
| lente | Sharpe | CAGR | maxDD | vol |
|
||
|---|---|---|---|---|
|
||
| L0 segnale USA + rend. USA (pubblicato) | 0.81 | 3.96% | −7.9% | 5.0% |
|
||
| L1 segnale USA + rend. UCITS (veicolo) | 0.89 | 4.22% | −7.0% | 4.8% |
|
||
| L2 segnale UCITS + rend. UCITS (+orologio) | **0.84** | **4.08%** | −7.5% | 4.9% |
|
||
|
||
**Totale L2−L0: dSharpe +0.03, dCAGR +0.12%/anno.** Il cambio di veicolo *non costa*.
|
||
|
||
⚠️ `corr(L0,L2) = 0.65`, bassa per due serie sullo stesso indice — ed è l'**orologio**, non un
|
||
difetto: le due chiusure condividono la notte e la mattina americana ma non il pomeriggio.
|
||
Verificato che non sia uno sfasamento di date: la correlazione veicolo/gemello è **massima a lag 0
|
||
su 6/6 coppie** (0.46-0.78). Conseguenza: le statistiche *giornaliere* delle due lenti non sono
|
||
confrontabili una a una, mentre il **drift** sì — che è esattamente perché la sezione 2 usa il
|
||
rapporto cumulato.
|
||
|
||
---
|
||
|
||
## 3. Il vincolo vero non è il broker: è il prezzo di UNA azione
|
||
|
||
Senza frazionamento un ordine è almeno una azione. **Il prezzo unitario è una scelta
|
||
dell'emittente, non una proprietà dell'indice**: CSPX costa $802 e VUAA $144 sullo *stesso* S&P 500.
|
||
|
||
| gamba | STORIA | prezzo | DEPLOY | prezzo | a $3.000 | a $10.000 |
|
||
|---|---|---|---|---|---|---|
|
||
| SPY | CSPX | $801.86 | **VUAA** | $143.80 | 29% | 9% |
|
||
| QQQ | EQQQ | $692.67 | **XNAS** | $65.74 | 13% | 4% |
|
||
| IWM | XRSU | $437.80 | **R2US** | $86.35 | 17% | 5% |
|
||
| TLT | IDTL | $3.09 | IDTL | $3.09 | 1% | 0% |
|
||
| GLD | IGLN | $79.06 | IGLN | $79.06 | 16% | 5% |
|
||
| HYG | IHYU | $94.12 | IHYU | $94.12 | 19% | 6% |
|
||
|
||
*(% = quanto pesa una azione sull'allocazione di quella gamba)*
|
||
|
||
Danno misurato dell'esecuzione a numero **intero** di azioni, stessa finestra per entrambi:
|
||
|
||
| insieme | capitale | Sh fraz. | Sh intero | Δ | vol fraz. | vol intero | **gambe vive** | esposta |
|
||
|---|---|---|---|---|---|---|---|---|
|
||
| STORIA | $3.000 | 0.84 | 0.80 | −0.04 | 5.1% | **2.2%** | **4/6** | **33%** |
|
||
| STORIA | $10.000 | 1.08 | 1.02 | −0.06 | 5.1% | 4.2% | 6/6 | 63% |
|
||
| **DEPLOY** | **$3.000** | 0.88 | 0.84 | −0.04 | 5.1% | **4.5%** | **6/6** | **65%** |
|
||
| DEPLOY | $10.000 | 1.10 | 1.09 | −0.02 | 5.1% | 4.9% | 6/6 | 66% |
|
||
|
||
**Con i veicoli giusti il frazionamento non serve.** Con quelli sbagliati, a $3.000 lo sleeve perde
|
||
due gambe su sei ed è a mercato un terzo del tempo: non è GTAA01 con un vincolo, è un'altra cosa.
|
||
|
||
⚠️ **Si legge `gambe vive` e `vol`, non `Sharpe`.** Un vincolo che alza lo Sharpe non è un
|
||
miglioramento: arrotondando in giù riduce l'esposizione e paga meno commissioni. È il **null
|
||
de-levering** (4ª occorrenza dopo VRP-DD, TP01×DVOL, MAT01). Qui il controllo è stato eseguito e
|
||
il verdetto è che con l'insieme DEPLOY il de-levering **non c'è**.
|
||
|
||
⚠️ Scartati di proposito, benché con più storia: **RTWO** (Russell 2000 *quality* = fattore),
|
||
**CSUSS** (MSCI USA Small Cap *ESG*), **IDP6** (S&P 600, indice diverso). Equivalenza dell'indice
|
||
prima della storia.
|
||
|
||
---
|
||
|
||
## 4. Il costo del venue, per FORMA — la sola cosa su cui i broker differiscono davvero
|
||
|
||
**Ordini/anno** (dipendono da banda e cadenza, non dal listino): **77 a $3.000, 102 a $10.000, 149 a
|
||
$50.000**. Con questo numero ogni listino è calcolabile a mano.
|
||
|
||
| costo fisso/ordine | $3.000 Sh | CAGR | $10.000 Sh | CAGR | $50.000 Sh | CAGR |
|
||
|---|---|---|---|---|---|---|
|
||
| $0.00 | 0.92 | 4.45% | 0.92 | 4.48% | 0.92 | 4.48% |
|
||
| $0.35 (IB US) | 0.73 | 3.52% | 0.84 | 4.11% | 0.90 | 4.37% |
|
||
| $1.00 | 0.39 | 1.80% | 0.71 | 3.42% | 0.86 | 4.17% |
|
||
| $2.00 | −0.13 | −0.79% | 0.50 | 2.37% | 0.79 | 3.86% |
|
||
| $5.00 | −1.51 | −8.17% | −0.12 | −0.71% | 0.61 | 2.93% |
|
||
|
||
| costo proporzionale | $3.000 | $10.000 | $50.000 |
|
||
|---|---|---|---|
|
||
| 5 bps/ordine | 0.89 | 0.89 | 0.88 |
|
||
| 25 bps/ordine | 0.77 | 0.76 | 0.75 |
|
||
| 50 bps/ordine | 0.62 | 0.60 | 0.59 |
|
||
|
||
**Le soglie da verificare presso il broker:**
|
||
|
||
| capitale allocato | CAGR = 0 | Sharpe = 0.45 |
|
||
|---|---|---|
|
||
| $3.000 | $1.68/ordine | **$0.90/ordine** |
|
||
| $10.000 | $4.34/ordine | **$2.23/ordine** |
|
||
| $50.000 | $14.65/ordine | **$7.62/ordine** |
|
||
|
||
Un listino **proporzionale** è quasi indifferente al capitale (0.75-0.89 di Sharpe a ogni taglia);
|
||
uno **fisso** è una tassa regressiva. È la regola del 25/07 riconfermata su un venue diverso.
|
||
|
||
---
|
||
|
||
## 5. Risposta operativa alla domanda
|
||
|
||
**Revolut o Degiro non sbloccano gli ETF USA**: il PRIIPs vale per ogni intermediario che serve
|
||
retail UE. IB è anzi fra i più permissivi. Aprire un terzo conto per lo stesso rifiuto aggiunge
|
||
rischio di venue senza guadagno.
|
||
|
||
Ciò che si compra su *qualunque* dei tre sono gli **UCITS**, e a quel punto la scelta si gioca su
|
||
**una sola dimensione misurabile**: il costo per ordine, contro le soglie della tabella sopra, con
|
||
77-149 ordini l'anno.
|
||
|
||
**Raccomandazione: restare su IB**, perché (a) il conto esiste già, (b) i dati per il segnale
|
||
arrivano dallo stesso gateway, (c) è l'unico dei tre di cui la forma di costo è già modellata in
|
||
`gtaa.py`. La verifica che resta da fare è **una sola**: la tariffa IB per ordine su LSEETF in USD,
|
||
contro $2.23 (a $10.000) o $0.90 (a $3.000).
|
||
|
||
**Nessuna azione oggi**: la decisione venue del 26/07 tiene tutto su Deribit fino a $20k, cioè
|
||
~2028 col piano di versamenti corrente.
|
||
|
||
---
|
||
|
||
## Lezioni
|
||
|
||
1. **Prima di dichiarare che un vincolo esterno distrugge un risultato, chiedersi cosa vincola
|
||
esattamente.** "Non posso comprare" ≠ "non posso vedere": tutta la validazione a 30 anni era
|
||
salva, e la nota che diceva il contrario era mia.
|
||
2. **Un feed senza secondo parere non è certificato**, e la regola valeva già nel crypto. Il feed
|
||
equity ha vissuto 5 settimane con soli controlli locali, e il primo veicolo estero ha trovato
|
||
il buco alla prima estrazione.
|
||
3. **Una soglia tarata su una classe di difetto non sorveglia le altre** — 2ª conferma dopo lo
|
||
split 2:1 del 25/07. E quando la taratura non regge il margine richiesto, la risposta non è
|
||
accettarla ma **cambiare statistica**: qui il passaggio da assoluta ad adimensionale
|
||
(deviazione / movimento del gemello) porta il margine da 2.2× a 5.3×.
|
||
4. **La media delle differenze giornaliere non è la deviazione fra due veicoli sullo stesso
|
||
indice.** Errore standard 15× più grande della quantità stimata, più il drag di varianza. La
|
||
domanda "quanto mi costa il veicolo" è una domanda sul **drift**, quindi si misura sul rapporto
|
||
cumulato.
|
||
5. **Il prezzo unitario di un ETF è un parametro di progetto, non un dato.** Sceglierlo cambia la
|
||
soglia di capitale di uno sleeve più di qualunque negoziazione con un broker.
|
||
6. **Il grado d'accordo si conta, non si dichiara.** La prima stesura stampava "stesso segno su 6/6
|
||
gambe"; i dati dicevano 4/6. Scriverlo a mano nel `print` è il modo più facile di pubblicare una
|
||
conclusione che i propri dati smentiscono — 3ª occorrenza in questa sessione.
|
||
|
||
---
|
||
|
||
# Addendum 2026-07-27 — "io ho già Revolut e Degiro, IB sono solo iscritto"
|
||
|
||
L'informazione ribalta la raccomandazione di ieri. L'argomento principale per IB era **"il conto
|
||
esiste già"**, e non è vero: i conti reali sono Revolut e Degiro, IB è una registrazione.
|
||
|
||
Cosa **non** cambia: il gateway IB serve per i **dati** del segnale (ADJUSTED_LAST sui 6 ETF USA),
|
||
e per quello basta il paper — non serve eseguire lì. La scelta del broker di **esecuzione** è
|
||
quindi libera, e si gioca su una sola dimensione misurabile: il **costo per ordine**.
|
||
|
||
Script: `scripts/research/r0727_gtaa_broker.py`. Test: `tests/test_gtaa_broker.py` (9).
|
||
**Book, pesi, cron, config: INVARIATI.**
|
||
|
||
## Il numero di ordini è un parametro, non un dato
|
||
|
||
I 77-149 ordini/anno del 26/07 sono la conseguenza di `REBAL_EVERY=5` e `REBAL_BAND_USD=50`,
|
||
scelti il 25/07 sul plateau **per il listino IB su azioni USA e a una taglia sola**.
|
||
|
||
| cadenza | banda | ord/anno | Sh @ $0 | Sh @ $1 | Sh @ $2 |
|
||
|---|---|---|---|---|---|
|
||
| settimanale | $25 | 102 | 1.28 | 1.08 | 0.87 |
|
||
| settimanale | **$50** (canonico) | 84 | 1.27 | 1.10 | 0.94 |
|
||
| settimanale | $400 | **23** | **1.27** | 1.22 | 1.18 |
|
||
| mensile | $50 | 33 | **1.12** | 1.06 | 1.00 |
|
||
| bimestrale | $400 | 10 | 1.10 | 1.08 | 1.06 |
|
||
|
||
**Si legge `Sh @ $0` per prima**: è il prezzo della banda *in assenza di commissioni*. Allargare la
|
||
banda a cadenza settimanale **non lo tocca** (1.27 → 1.27), rallentare la cadenza sì (1.27 → 1.12).
|
||
|
||
Il meccanismo è interpretabile: `_exposure` è la media di 4 indicatori binari, quindi si muove a
|
||
scatti di 0.25 ≈ $417 su una gamba da $1.667. **La banda filtra la deriva del vol-target, non il
|
||
segnale di trend.**
|
||
|
||
### Controllo su finestra lunga e veicoli diversi
|
||
|
||
Sui **veicoli USA**, finestra comune ai 6 (10 anni, limitata dalla cache TLT dal 2016):
|
||
|
||
| banda | ord/anno | Sh @ $0 | Sh @ $1 |
|
||
|---|---|---|---|
|
||
| $25 | 133 | 0.98 | 0.72 |
|
||
| $400 | **35** | **0.96** | **0.89** |
|
||
|
||
✅ Lo Sharpe a costo zero perde **0.02** mentre gli ordini calano del **74%**. Non è un artefatto
|
||
della finestra corta.
|
||
|
||
## ⚠️ Ma la banda in dollari assoluti è la parametrizzazione sbagliata
|
||
|
||
| capitale | banda | % della gamba | ord/anno | **esposta** | Sharpe | |
|
||
|---|---|---|---|---|---|---|
|
||
| $3.000 | $400 | **80%** | **3** | **45%** | 0.71 | ❌ congelato |
|
||
| $10.000 | $400 | 24% | 23 | 66% | 1.22 | OK |
|
||
| $50.000 | $400 | 5% | 75 | 66% | 1.25 | OK |
|
||
|
||
A $3.000 la banda da $400 è l'80% della gamba: **3 ordini l'anno**, a mercato il **45%** del tempo
|
||
invece del 66%. Lo Sharpe resta 0.71 — accettabile — **su una strategia che ha smesso di seguire il
|
||
proprio target**. È il null de-levering in una veste nuova: qui non travestito da "meno drawdown"
|
||
ma da "meno costi".
|
||
|
||
> **Regola: quando un parametro di esecuzione è espresso in valuta assoluta, il suo effetto dipende
|
||
> dal capitale — e il controllo non è lo Sharpe ma la QUOTA DI TEMPO A MERCATO.**
|
||
|
||
## La configurazione: banda = 25% della gamba
|
||
|
||
| capitale | banda | ord/anno | esposta | soglia $/ordine | budget/anno |
|
||
|---|---|---|---|---|---|
|
||
| $3.000 | $125 | **21** | 66% | **$5.65** | $120 |
|
||
| $6.000 | $250 | **21** | 66% | $11.34 | $240 |
|
||
| $10.000 | $417 | **21** | 66% | $18.90 | $400 |
|
||
| $25.000 | $1.042 | **21** | 66% | $47.26 | $1.000 |
|
||
| $50.000 | $2.083 | **21** | 66% | >$60 | — |
|
||
|
||
**21 ordini l'anno a ogni capitale**, esposizione 66% ovunque. Contro il canonico: a $3.000 la
|
||
soglia passa da **$2.08 a $5.65 per ordine** — cioè dalla differenza fra *"serve un broker
|
||
economico"* e *"va bene qualunque broker europeo"*.
|
||
|
||
⚠️ **Non è un cambio di produzione.** È una configurazione **proposta**, tarata su questa finestra,
|
||
non passata per `study_family_honest` né per un deflated-Sharpe. Regge il controllo su 10 anni e
|
||
veicoli diversi, ma GTAA01 non è deployabile prima dei $20k (decisione venue 26/07): c'è tempo per
|
||
validarla come si deve.
|
||
|
||
## Cosa cercare sul proprio conto — per ISIN, non per ticker
|
||
|
||
| gamba | ticker | ISIN | prezzo | descrizione |
|
||
|---|---|---|---|---|
|
||
| SPY | VUAA | `IE00BFMXXD54` | $143.80 | Vanguard S&P 500 UCITS (Acc, USD) |
|
||
| QQQ | XNAS | `IE00BMFKG444` | $65.74 | Xtrackers Nasdaq 100 UCITS 1C |
|
||
| IWM | R2US | `IE00BJ38QD84` | $86.35 | SPDR Russell 2000 US Small Cap UCITS |
|
||
| TLT | IDTL | `IE00BSKRJZ44` | $3.09 | iShares $ Treasury Bond 20+yr UCITS |
|
||
| GLD | IGLN | `IE00B4ND3602` | $79.06 | iShares Physical Gold ETC |
|
||
| HYG | IHYU | `IE00B4PY7Y77` | $94.12 | iShares $ High Yield Corp Bond UCITS |
|
||
|
||
*(ISIN da contract details IB: i ticker cambiano da borsa a borsa, le ISIN no. Tutti domiciliati in
|
||
Irlanda — è il motivo per cui sono acquistabili nell'UE.)*
|
||
|
||
Tutti quotati a **Londra in USD**. ⚠️ Le stesse ISIN esistono su altre borse e in altre valute: una
|
||
linea in **EUR** aggiunge la conversione per ordine, che a 25bps costa **~0.15 di Sharpe** — più del
|
||
costo per ordine di qualunque broker a questa cadenza. **La valuta della linea conta più del
|
||
broker.**
|
||
|
||
## Verdetto
|
||
|
||
Con 21 ordini l'anno e una tolleranza di $5.65/ordine già a $3.000, **il vincolo di costo smette di
|
||
essere binding su qualunque broker retail europeo**. La domanda "Revolut o Degiro" perde quindi la
|
||
sua parte quantitativa e resta solo la parte di disponibilità: quale dei due quota le sei ISIN sopra
|
||
sulla linea in USD.
|
||
|
||
Restano due criteri non misurabili da qui, entrambi a favore di Degiro su Revolut per questo uso
|
||
(universo ETF europeo tipicamente più ampio, e accesso diretto a LSE), **ma vanno verificati
|
||
guardando i due conti** — non sono cose che posso misurare da questo lato.
|
||
|
||
## Lezione
|
||
|
||
**Una raccomandazione poggiata su un fatto non verificato sul conto reale vale quanto quel fatto.**
|
||
Ieri ho consigliato IB in parte perché "il conto esiste già": era un'assunzione, e per la seconda
|
||
volta in due giorni un'assunzione sul conto reale ha cambiato la conclusione. La prima volta era la
|
||
negoziabilità (PRIIPs), questa volta quale conto è davvero operativo.
|
||
|
||
---
|
||
|
||
# Addendum 2026-07-27 (2) — "degiro ha api?"
|
||
|
||
**Fatto:** DEGIRO **non** espone una API di trading ufficiale per il retail. Revolut nemmeno (la sua
|
||
API è per pagamenti, non per il portafoglio titoli). IB sì, documentata e supportata — è quella che
|
||
il progetto già usa per i dati.
|
||
|
||
Esistono wrapper **non ufficiali** degli endpoint interni del web trader DEGIRO. Girano su
|
||
credenziali + seed 2FA depositati sulla macchina, sono fuori dai termini di servizio, e si rompono
|
||
**in silenzio** a ogni cambio di front-end. Questo progetto ha già pagato una volta il prezzo di un
|
||
guasto silenzioso (`fresh_5m`, 26/07: fallimento muto → latenza d'uscita di SKH01 da ~1h a ~1 giorno
|
||
senza che nulla lo segnalasse). **Un esecutore automatico che può rompersi senza dirlo è peggio
|
||
dell'esecuzione manuale.**
|
||
|
||
Quindi la domanda utile non è "si può automatizzare" ma **"quanto costa non farlo"**.
|
||
|
||
## Carico operativo (banda 25%, controllo settimanale, $10.000)
|
||
|
||
| | |
|
||
|---|---|
|
||
| controlli/anno | 50 |
|
||
| **settimane con ≥1 ordine** | **15** (29% dei controlli) |
|
||
| ordini per settimana attiva | 1.4 (max 5) |
|
||
|
||
Nel 71% dei controlli non c'è nulla da fare.
|
||
|
||
## Costo del ritardo di esecuzione
|
||
|
||
Veicoli USA, 10 anni. ⚠️ Sulla finestra UCITS di 3.2 anni la curva **non risulta monotona** (5
|
||
giorni −0.26, 10 giorni −0.13): il campione corto non risolve differenze di questa taglia, quindi
|
||
il numero si legge sulla finestra lunga.
|
||
|
||
| ritardo | Sharpe | ΔSharpe | stabilità |
|
||
|---|---|---|---|
|
||
| 0 giorni | 0.90 | — | — |
|
||
| **1 giorno** | 0.89 | **−0.02** | peggiora in 6/11 anni = **moneta** |
|
||
| 2 giorni | 0.83 | −0.07 | 7/11 |
|
||
| 3 giorni | 0.78 | −0.13 | 7/11 |
|
||
| 5 giorni | 0.73 | −0.18 | 7/11 |
|
||
| **10 giorni** | 0.63 | **−0.27** | 6/11 |
|
||
|
||
**Il costo non è il ritardo tipico, è la coda.** Eseguire il giorno stesso o il giorno dopo costa
|
||
nulla; dieci giorni valgono quasi un terzo dello sleeve.
|
||
|
||
## Conseguenza
|
||
|
||
Il rischio dell'operatività manuale non è la lentezza, è la **dimenticanza** — e quella si compra
|
||
con un **allarme**, non con una API. `gtaa_rebalance_plan(held, capital)` esiste già in produzione
|
||
ed è nato esattamente per un esecutore; il progetto ha già l'allerta Telegram sul book live. Un cron
|
||
settimanale che calcola il piano e notifica quando c'è da agire copre il caso 15 volte l'anno.
|
||
|
||
⚠️ **L'altro lato, che resta vero:** il resto del book è automatico (TP01 e SKH01 mandano ordini
|
||
veri su cron). Aggiungere una gamba manuale introduce un modo di fallire che il sistema oggi non ha.
|
||
È un argomento reale a favore di IB — che l'API ce l'ha — ma richiede finanziare un secondo venue, e
|
||
la decisione venue del 26/07 tiene tutto su Deribit fino a $20k. **La scelta è quindi rimandata al
|
||
punto in cui la si riaprirebbe comunque.**
|
||
|
||
## Lezione
|
||
|
||
**Una capacità mancante si valuta sul costo di non averla, non sulla sua assenza.** Qui l'assenza di
|
||
API sembra squalificante e vale −0.02 di Sharpe se si esegue entro un giorno; ciò che vale davvero
|
||
(−0.27) è un rischio operativo che si copre con una notifica.
|
||
|
||
---
|
||
|
||
# Addendum 2026-07-27 (3) — "r2us in revolut non c'è, ma ho zprr e spy4"
|
||
|
||
## ZPRR **è** R2US
|
||
|
||
| ticker | borsa | valuta | ISIN |
|
||
|---|---|---|---|
|
||
| R2US | Londra | USD | `IE00BJ38QD84` |
|
||
| **ZPRR** | **Xetra** | **EUR** | **`IE00BJ38QD84`** |
|
||
|
||
Stessa ISIN = stessa classe di quote = **stesso fondo, stesso NAV**. Cambia solo dove e in che
|
||
valuta si negozia. La gamba small cap è risolta: **compra ZPRR**, non si perde niente.
|
||
|
||
> **Regola: si cerca per ISIN, non per ticker.** Lo stesso fondo ha ticker diversi su borse diverse,
|
||
> e un ticker copiato da una lista può essere un altro prodotto.
|
||
|
||
## ⚠️ SPY4 non è quello che sembra
|
||
|
||
`IE00B4YBJ215` = SPDR **S&P 400 US Mid Cap**. Non è small cap, e non è l'S&P 500 (quello è SPY5,
|
||
`IE00B6YX5C33`). Non serve, dato che ZPRR c'è — ma misurato come ripiego, su 6.5 anni:
|
||
|
||
| gamba small cap | Sharpe | CAGR | maxDD |
|
||
|---|---|---|---|
|
||
| R2US (small) | 0.86 | 4.20% | −8.2% |
|
||
| SPY4 (mid) | 0.86 | 4.26% | −8.3% |
|
||
|
||
Correlazione dei due sleeve **0.991**, SPY4 peggiore in **3/7 anni** = moneta. *(Sulla finestra
|
||
corta di 3.2 anni sembrava −0.15 di Sharpe: era rumore.)*
|
||
|
||
**Ripiego accettabile**, e il motivo è meccanico: small e mid cap USA hanno correlazione giornaliera
|
||
~0.95, e un TSMOM su due serie così vicine si accende quasi negli stessi giorni. ⚠️ Non è
|
||
"validato" — 6.5 anni non bastano a distinguere due gambe così simili, ed è **esattamente per
|
||
questo** che la scelta fra le due non conta.
|
||
|
||
## ⚠️ Correzione a un'indicazione data ieri: sulla valuta avevo ragionato al contrario
|
||
|
||
Ieri ho scritto che *"una linea in EUR aggiunge la conversione per ordine"*. È vero **solo per un
|
||
conto in USD**. Per un conto in **euro** — cioè un retail italiano su Revolut o Degiro — vale
|
||
l'opposto: comprare la linea in USD costringe a convertire a ogni ordine, la linea in EUR no.
|
||
|
||
L'esposizione economica è identica nei due casi: il fondo detiene attivi in USD e **nessuna delle
|
||
due linee è coperta**. La valuta di quotazione non copre niente — decide solo se serve una
|
||
conversione.
|
||
|
||
> **Regola giusta: prendere la linea nella valuta del proprio saldo.**
|
||
|
||
Quanto vale, misurato (turnover lordo **$13.655/anno** su $10.000, 21 ordini):
|
||
|
||
| bps FX per ordine | ΔSharpe | costo/anno |
|
||
|---|---|---|
|
||
| 15 bps | −0.04 | $20 |
|
||
| 25 bps | −0.07 | $34 |
|
||
| 50 bps | −0.14 | $68 |
|
||
|
||
A 25bps la conversione equivale a ~**$1.6 in più su ciascuno dei 21 ordini**: reale, ma piccolo
|
||
rispetto alla soglia di $18.90/ordine a $10.000. Quindi **ZPRR in EUR su un conto in euro è la
|
||
scelta migliore**, non un compromesso.
|
||
|
||
## Lezione
|
||
|
||
**Un costo di conversione non è una proprietà dello strumento ma della coppia strumento-conto.**
|
||
Avevo dedotto "linea in EUR = costo in più" da un caso (conto in USD) e l'avevo scritta come regola
|
||
generale; per il conto che l'operatore usa davvero il segno è invertito. È la terza volta in due
|
||
giorni che un'assunzione non verificata sul conto reale cambia la conclusione — dopo la
|
||
negoziabilità PRIIPs e quale conto è operativo.
|
||
|
||
---
|
||
|
||
# Addendum 2026-07-27 (4) — DEGIRO ha tutte e sei
|
||
|
||
Screenshot della watchlist "Pythagoras" su flatexDEGIRO: **le sei gambe ci sono tutte**, con i
|
||
ticker esatti raccomandati. (Era Revolut a non avere R2US.)
|
||
|
||
| gamba | ticker | borsa | valuta | prezzo Degiro |
|
||
|---|---|---|---|---|
|
||
| SPY | VUAA | TDG | **EUR** | € 126,795 |
|
||
| QQQ | XNAS | TDG | **EUR** | € 58,10 |
|
||
| IWM | R2US | LSE | USD | $ 86,66 |
|
||
| TLT | IDTL | LSE | USD | $ 3,09987 |
|
||
| GLD | IGLN | LSE | USD | $ 79,585 |
|
||
| HYG | IHYU | LSE | USD | $ 94,32 |
|
||
|
||
## Verifica indipendente che le linee in EUR siano gli stessi fondi
|
||
|
||
Non dallo screenshot ma dai dati: il rapporto fra il prezzo IB (Londra USD) e il prezzo Degiro deve
|
||
essere **un solo cambio** per entrambe le linee EUR.
|
||
|
||
| ticker | Degiro | IB (LSE USD) | rapporto |
|
||
|---|---|---|---|
|
||
| VUAA | 126,795 | 143,80 | **1.1341** |
|
||
| XNAS | 58,10 | 65,74 | **1.1315** |
|
||
| R2US / IDTL / IGLN / IHYU | — | — | 0.993-0.998 (già USD) |
|
||
|
||
EURUSD implicito **1.1341 vs 1.1315, scarto 0.23%**. Due fondi diversi non darebbero lo stesso
|
||
cambio: sono le stesse quote, quotate in euro.
|
||
|
||
## ⚠️ Un errore mio, dello stesso tipo che avevo appena codificato come regola
|
||
|
||
Per cercare le linee in euro delle altre quattro gambe ho interrogato IB **per ticker** sulle borse
|
||
tedesche: risultato "nessuna linea EUR" su 4/4. **Falso.** Il ticker cambia da borsa a borsa — R2US
|
||
su Xetra si chiama ZPRR. Cercando **per ISIN**:
|
||
|
||
| gamba | linea USD | **linea EUR** | ISIN |
|
||
|---|---|---|---|
|
||
| SPY | VUAA (LSE) | VUAA (Xetra/BIt) | `IE00BFMXXD54` |
|
||
| QQQ | XNAS (LSE) | XNAS (Xetra) | `IE00BMFKG444` |
|
||
| IWM | R2US (LSE) | **ZPRR** (Xetra) | `IE00BJ38QD84` |
|
||
| TLT | IDTL (LSE) | **IS04** (Xetra) | `IE00BSKRJZ44` |
|
||
| GLD | IGLN (LSE) | **EGLN** (Londra) | `IE00B4ND3602` |
|
||
| HYG | IHYU (LSE) | **IS0R** (Xetra) | `IE00B4PY7Y77` |
|
||
|
||
**Ogni gamba ha una linea in euro.** Avevo scritto la regola "si cerca per ISIN, non per ticker" un
|
||
messaggio prima e poi ho costruito la sonda per ticker. *Un "assente" da una ricerca per ticker su
|
||
una borsa dove quel ticker non esiste non significa "non esiste".*
|
||
|
||
## Quanto vale la conversione, e su quale gamba
|
||
|
||
Turnover per gamba a $10.000 (banda 25%, 21 ordini/anno):
|
||
|
||
| gamba | ticker | ordini/anno | turnover/anno | quota |
|
||
|---|---|---|---|---|
|
||
| **TLT** | **IDTL** | **9** | **$6.257** | **46%** |
|
||
| SPY | VUAA | 3 | $2.289 | 17% |
|
||
| GLD | IGLN | 3 | $1.695 | 12% |
|
||
| QQQ | XNAS | 3 | $1.614 | 12% |
|
||
| HYG | IHYU | 1 | $958 | 7% |
|
||
| IWM | R2US | 2 | $843 | 6% |
|
||
|
||
- turnover su gambe in **USD** (da convertire): **$9.752/anno = 71%**
|
||
- costo conversione: **$24/anno a 25bps**, $49 a 50bps (0.24-0.49% del capitale, ~6-12% del CAGR)
|
||
|
||
**IDTL da sola vale il 46% del turnover e 9 dei 21 ordini.** Se si vuole ridurre la conversione
|
||
senza cambiare sei strumenti, si sposta **quella** sulla linea in euro (IS04, `IE00BSKRJZ44`): da
|
||
sola copre il **64%** del turnover convertibile.
|
||
|
||
⚠️ Il risparmio non è netto: le linee di Xetra possono avere spread più larghi delle linee di Londra
|
||
(che sono le primarie), e Degiro storicamente addebita una tariffa di connettività per borsa. Su
|
||
$10.000 parliamo di decine di dollari l'anno in entrambe le direzioni — **non è una decisione
|
||
importante**, e dirlo è più utile che costruire una precisione finta.
|
||
|
||
## Cosa NON serve
|
||
|
||
Il messaggio in cima allo screenshot — *"Richiedi un'aliquota ridotta della ritenuta alla fonte sugli
|
||
investimenti statunitensi"* (il W-8BEN) — **non riguarda queste sei posizioni**: sono fondi
|
||
irlandesi, non titoli USA. La ritenuta del 15% la subisce il fondo al proprio interno e nessun
|
||
modulo dell'investitore la cambia. Va compilato se un giorno si detengono azioni USA dirette.
|
||
|
||
## Stato
|
||
|
||
Saldo Degiro €328,92: questa è **preparazione, non azione**. GTAA01 richiede ≥$3.000 per reggere i
|
||
costi, e la decisione venue del 26/07 tiene tutto su Deribit fino a $20k.
|