DIFETTO. src/portfolio/gtaa.py modellava il costo come 2bps PROPORZIONALI e il modulo si
dichiarava "eseguibile a basso capitale, switch mensile/basso turnover". Entrambe false:
il vol-target e' CONTINUO (l'esposizione cambia ogni giorno, su 6 gambe) e IB non ha una
fee proporzionale ma un PAVIMENTO FISSO per ordine, min(max($0.35, $0.0035/az), 1% del
controvalore) = ~$530/anno indipendenti dal capitale.
Il modello vecchio era quindi CIECO AL CAPITALE: dava Sharpe 0.64 sia a $50.000 sia a $600.
Alla taglia grande era sostanzialmente giusto (0.64 vs 0.59-0.66 reali); a $600 la realta'
e' -0.55 di Sharpe e -3.5%/anno di CAGR. L'errore era tutto concentrato dove lo sleeve
verrebbe realmente deployato.
FIX. Il modulo ora:
* modella la commissione IB reale (ib_commission);
* esegue a BANDA + CADENZA (settimanale, $50/gamba) — config scelta sul PLATEAU del sweep
(weekly/monthly x banda 25-100 -> Sh 0.45-0.64 a ogni capitale), non sull'argmax
in-sample (banda $50 daily a $600 = cella isolata che crolla a banda 100);
* prende il CAPITALE allocato come parametro: gtaa_returns(capital=...);
* dichiara la soglia di deployabilita': GTAA_MIN_CAPITAL=$3.000 + gtaa_is_deployable();
* espone gtaa_rebalance_plan(held, capital) per l'esecutore — salta le gambe il cui
nozionale non supera la banda (un ordine da $12 costa $0.35 = 2.9%).
sleeves.py dichiara esplicitamente il capitale assunto (GTAA_DEFAULT_CAPITAL=$10.000 allocati
= book ~$50k al peso 20%) invece di nasconderlo.
IMPATTO SUL BOOK (misurato sostituendo la sola gamba GTAA, non citato):
GTAA01 standalone Sh 0.64 -> 0.61 CAGR 3.76% -> 3.65%
book 5 sleeve FULL 2.22 -> 2.22 HOLD 2.36 -> 2.38 maxDD 6.2% -> 6.0%
Trascurabile alla taglia assunta: il fix conta per il DEPLOY (a $600-2k passa da -3.5%/anno
a +3.0%/anno). PESI INVARIATI -> nessun weights_tilt_null richiesto.
CORREZIONE A UN ERRORE DI ANALISI DELLA SESSIONE. Il diario citava il modello vecchio a
"Sharpe 0.77 / CAGR 5.5%": artefatto di annualizzazione: la serie GTAA grezza ha ~252 barre
/anno (soli giorni di borsa) e metrics() annualizza a 365 con years=n/365.25 -> Sharpe x1.20
e CAGR x1.45. Le righe per-capitale erano gia' su calendario 365, quindi era falsata solo la
riga di riferimento. Corretti diario, CLAUDE.md e r0725_capcurve.py.
LEZIONE: una serie su giorni di borsa non si passa a metrics() senza to_daily().
Test: 221 pass (+4 in tests/test_gtaa_sleeve.py: pavimento non proporzionale, dipendenza dal
capitale + soglia, senza-banda-e-distruttivo, piano che salta le gambe sotto banda).
Smoke: scripts/live/paper_combo.py gira invariato.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
25 KiB
2026-07-25 — Rendita passiva: la curva capitale→book, il muro vero, e l'asimmetria del funded
Contesto. Goal: "altra sessione di ricerca per arrivare allo scopo (rendita passiva, 50 EUR/g), i 600 euro si possono usare come si vuole". La roadmap del 24/07 aveva già chiuso i canali (prop / vault / copy / legale). Questa ondata attacca i due punti che quella roadmap assumeva invece di calcolare: (a) il tasso di crescita del book è preso come CAGR fisso 15%, (b) il capitale-rendita è calcolato come target/CAGR, cioè ignorando il rischio di sequenza. Entrambe le assunzioni sono risultate sbagliate, e nella stessa direzione: ottimista.
Script: scripts/research/r0725_capcurve.py, scripts/research/r0725_prop_config.py.
Test: tests/test_capcurve.py (10 casi). Book live, pesi e config: INVARIATI.
1) Difetto di eseguibilità su GTAA01 — il 5° sleeve del book attivo
src/portfolio/gtaa.py modella il costo come 2bps proporzionali e lo sleeve è documentato
come "eseguibile su IB a basso capitale (ETF frazionabili, switch mensile/basso turnover)".
Entrambe le cose sono false come codificate:
- il segnale è un vol-target continuo: l'esposizione cambia ogni giorno su 6 gambe;
- IB non ha una fee proporzionale ma un pavimento FISSO per ordine:
min(max($0.35, $0.0035/azione), 1% del controvalore)→ ~$530/anno di commissioni indipendenti dal capitale.
| capitale allocato a GTAA | CAGR reale | Sharpe reale | drag commissioni |
|---|---|---|---|
| $600 | −3.5% | −0.55 | 7.2%/anno |
| $2.000 | −0.7% | −0.09 | 4.4%/anno |
| $5.000 | +1.5% | 0.28 | 2.2%/anno |
| $50.000 | +3.4% | 0.59 | 0.2%/anno |
| modello vecchio (2bps propor.) | +3.8% | 0.64 | — |
⚠️ Correzione a un errore MIO, trovata implementando il fix. La prima stesura di questa
sezione citava il modello vecchio a Sharpe 0.77 / CAGR 5.5%: era un artefatto di
annualizzazione del mio script di analisi — metricavo la serie GTAA grezza (solo giorni di
borsa, ~252/anno) con metrics(), che annualizza a 365 e calcola years = n/365.25 → Sharpe
gonfiato di √(365/252) = 1.20× e CAGR di ~1.45×. Le righe per-capitale erano già su calendario
365 (reindex + weekend a zero), quindi il confronto era falsato solo sulla riga di riferimento.
Valore corretto del modello vecchio: 0.64 / 3.8%.
La formulazione giusta del difetto cambia di conseguenza. Non è "il modello sovrastimava lo Sharpe di 0.13": alla taglia grande il modello vecchio era sostanzialmente giusto (0.64 contro 0.59-0.66 reali). Il difetto è che era CIECO AL CAPITALE — dava 0.64 sia a $50.000 sia a $600, mentre a $600 la realtà è −0.55. Un modello di costo proporzionale non può descrivere un pavimento fisso, e l'errore è tutto concentrato dove lo sleeve verrebbe realmente deployato.
La banda lo salva. Con costo fisso la banda ottimale non è il minimo eseguibile (come su Deribit) ma un valore molto più alto. Plateau robusto = cadenza settimanale × banda $25-100 → Sharpe 0.45-0.64 a ogni capitale; a $600 la config scelta sul plateau (banda $50, weekly) dà Sh 0.52 / CAGR 3.0% invece di −0.55/−3.5%. (La cella argmax a $600 era banda $50 daily a 0.57, ma è isolata — crolla a 0.28 a banda 100 → scartata: il parametro è di costo, si sceglie sul plateau, non sull'argmax in-sample.)
Conseguenza operativa: CABLATO (stessa sessione, src/portfolio/gtaa.py). Il modulo ora
modella il costo IB reale (ib_commission), esegue a banda + cadenza (settimanale, $50/gamba),
prende il capitale allocato come parametro (gtaa_returns(capital=...)), dichiara la soglia
di deployabilità (GTAA_MIN_CAPITAL = $3.000, gtaa_is_deployable) ed espone
gtaa_rebalance_plan(held, capital) — il piano che l'esecutore deve usare per non ribilanciare
ogni giorno per pochi dollari. sleeves.py dichiara esplicitamente il capitale assunto
(GTAA_DEFAULT_CAPITAL = $10.000 allocati ≈ book $50k al peso 20%) invece di nasconderlo.
Impatto sul book, misurato prima/dopo (non citato: ricalcolato sostituendo la sola gamba GTAA):
| GTAA01 standalone | book 5 sleeve FULL | HOLD | maxDD | |
|---|---|---|---|---|
| prima (2bps, continuo) | Sh 0.64 / CAGR 3.76% | 2.22 | 2.36 | 6.2% |
| dopo (IB reale + banda) | Sh 0.61 / CAGR 3.65% | 2.22 | 2.38 | 6.0% |
Alla taglia assunta l'impatto sul book è trascurabile — il fix non è cosmetico per i numeri
storici, lo è per il deploy: è a $600-2.000 che cambia tutto (da −3.5%/anno a +3.0%/anno).
Pesi invariati (nessun cambio pesi → nessun weights_tilt_null richiesto).
Regola nuova (generale): il costo di un venue va modellato nella sua FORMA — fisso vs proporzionale — non solo nel suo livello. Due venue con lo stesso "costo medio" danno risultati opposti al variare del capitale: la fee proporzionale è neutrale alla taglia, il pavimento fisso è una tassa regressiva che si mangia i piccoli. Ogni sleeve nuovo va incrociato col modello di costo del suo venue prima di dichiararlo eseguibile.
Controprova su Deribit (fee proporzionale, nessun pavimento): lo Sharpe realistico di TP01 coincide col modellato da ~$500 in su (1.29 a $1k = 1.29 a $50k) → conferma indipendente della lezione già a libro "a $600 il min-order $5 è già la banda ottimale".
2) La rendita NON è capitale × CAGR — il muro del 24/07 era ottimista di 2-4×
Una rendita passiva si preleva mentre il book è in drawdown: è rischio di sequenza, e
target/CAGR non lo vede. Calcolato col bootstrap a blocchi (20g) dei ritorni reali del book
(TP01 75 / SKH01 25, SKH01 sul path live orario, non sul backtest):
| lente | Sharpe | CAGR | SWR 20a (95% sopravv.) | rendita perpetua | capitale per 50 EUR/g |
|---|---|---|---|---|---|
| modellato (backtest) | 1.75 | 20.5% | 13.10% | 13.57% | $219k |
| path live | 1.64 | 19.7% | 12.48% | 12.78% | $232k |
| path live de-luck ×0.6 | 0.98 | 11.1% | 7.31% | 5.98% | $497k |
"Rendita perpetua" = prelievo massimo con P(capitale a 20 anni ≥ capitale iniziale) ≥ 90%. È il criterio giusto: "sopravvivere 20 anni" non è una rendita, è un piano di consumo del capitale.
Il muro vero per 50 EUR/g perpetui è $300k-$500k, non i €122k del diario 24/07. L'errore si
componeva di due fattori nella stessa direzione: (a) capital×CAGR ignora la sequenza (−45%
circa sul tasso), (b) CAGR 15% invece del de-luckato 11%.
⚠️ Sul de-luck, onestà metodologica: il ×0.6 sul drift è la convenzione ereditata dal 24/07,
ma qui è applicato sopra il path live orario, che già incorpora la degradazione di SKH01
(fill al livello → fill orario). C'è quindi un rischio concreto di doppio conteggio della
stessa penalità. Il muro va perciò letto come una banda, non come un punto:
$232k (path live, nessun de-luck ulteriore) — $497k (path live + de-luck ×0.6), con la stima
centrale ragionevolmente attorno a $300-400k. Ciò che NON dipende dal de-luck è il risultato
strutturale: la rendita perpetua vale ~45-55% del CAGR, non il 100% — quindi qualunque muro
calcolato come target/CAGR è sbagliato per un fattore ~2, indipendentemente dalla lente.
Al capitale attuale: $600 → ~€0.11/giorno di rendimento atteso, ~€0.06/g come rendita perpetua.
(Fisco incluso: 50 EUR/g netti = €18.250/anno netti = $29.690/anno lordi al 33%.)
Validazione della macchineria (obbligatoria, 3 casi a risposta nota): asset deterministico al 10%/anno → rendita perpetua fra 9% e 10% ✓; random walk a drift zero → rendita 0 ✓; book a prelievo nullo → P(rovina)=0 e mediana 37.6× in 20 anni ≈ 1.197²⁰ ✓.
3) La diversificazione non crea reddito a pari nozionale — libera budget di rischio
Il test che conta, per tier di sblocco (tutti de-luck ×0.6, GTAA01 a costo IB reale con banda):
| tier | Sharpe | vol | rendita @iso-nozionale | capitale | @ISO-RISCHIO (vol 15%) | capitale |
|---|---|---|---|---|---|---|
| $600 — 2 sleeve | 0.98 | 11.4% | 5.98% | $497k | 1.32× → 7.51% | $395k |
| $2k — + GTAA01 | 1.02 | 9.2% | 5.39% | $551k | 1.64× → 7.92% | $375k |
| $20k — + XS01 | 1.11 | 9.3% | 6.28% | $472k | 1.61× → 9.25% | $321k |
| $20k — + XS01 + VRP01 (contro-fattuale) | 1.15 | 8.8% | 6.35% | $467k | 1.70× → 9.82% | $302k |
A pari nozionale il muro NON si abbassa (5.98% → 6.35%: nulla). Un diversificatore a basso CAGR toglie vol e ritorno insieme. A iso-rischio sì: −19% di muro ($395k → $321k).
Regola: un diversificatore a basso CAGR si giudica a ISO-RISCHIO, mai a iso-nozionale. È il "null de-levering" del progetto applicato al contrario — lì si smascherava un finto taglio di DD comprato con la size, qui si smaschera un finto mancato guadagno per non aver rilevato la size.
(L'ipotesi di partenza — "più capitale → più sleeve → CAGR super-lineare" — è quindi refutata nella forma forte: la curva Sharpe del book eseguibile è piatta da $600 a $200k, perché TP01 su Deribit non ha pavimento di costo e SKH01 nemmeno. Sopravvive solo nella forma debole, via iso-rischio.)
4) Traiettoria onesta (bootstrap, de-luck, target $497k)
| deposito | p10 | mediana | p90 | P(entro 10a) | P(entro 20a) |
|---|---|---|---|---|---|
| €0/mese | — | — | — | 0% | 0% |
| €250/mese | 18.9a | 22.4a | 24.6a | 0% | 8% |
| €500/mese | 15.6a | 19.6a | 23.4a | 0% | 48% |
| €1.000/mese | 11.6a | 14.8a | 18.7a | 2% | 95% |
| €2.000/mese | 8.1a | 10.1a | 12.8a | 48% | 100% |
Senza depositi, da $600, la rendita da 50 EUR/g non arriva mai (0% dei path in 20 anni). Il moltiplicatore è il deposito, non il rendimento: è la stessa conclusione del 24/07, ma su un target 4× più alto e quindi con tempi ~2× più lunghi.
5) L'ASIMMETRIA — il risultato strategico della sessione
Il 24/07 ha valutato il fronte prop solo col book a 2 sleeve (quello eseguibile a $600). Ma su un conto funded il capitale non è $600, è $100k — e gli sleeve che a casa nostra sono STAT-MODE per taglia (XS01 serve ~$20k) diventano eseguibili. Le regole prop, inoltre, passano sul drawdown, non sul CAGR: premiano esattamente ciò che la diversificazione produce.
Finestra comune 2024+, de-luck ×0.6, crypto-only (niente GTAA01 che è equity su IB, niente VRP01):
| P(pass) HYRO 1.0× | P(pass) FTMO 1.5× | funded HYRO 1.0×: P(vivo 1a) | funded FTMO 1.0×: P(vivo) | E[payout] FTMO | EUR/g atteso | |
|---|---|---|---|---|---|---|
| A: TP01/SKH01 (live oggi) | 44.4% | 51.9% | 18.9% | 58.8% | $8.655 | 14.58 |
| B: + XS01 (19 alt perp) | 54.7% | 70.0% | 57.6% | 92.0% | $9.333 | 15.72 |
Il salto è nella sopravvivenza: 18.9% → 57.6% (3×) sul conto funded HYRO a leva 1.0×. E la raccomandazione del 24/07 ("funded a 0.75×, mai 1.0×") si ribalta col book diversificato: su FTMO a 1.0× la sopravvivenza è 92%.
L'asimmetria in una riga: sul capitale proprio diversificare non aumenta il reddito (il
reddito è C × tasso, e il tasso sale poco); su un conto funded lo aumenta molto, perché lì
il vincolo binding non è il capitale ma la regola di drawdown. → Gli sleeve "inutili a $600
perché STAT-MODE" sono esattamente gli asset di maggior valore sull'unico canale che scala in mesi.
Questo inverte la priorità implicita di dieci ondate di ricerca.
Caveat forte, dichiarato. (1) Il MC è close-only: C-bis del 24/07 ha dimostrato che i wick intraday tagliano 6-37pp → i livelli assoluti qui sono un TETTO. Il ricostruttore MTM intraday esiste solo per TP01+SKH01 (feed 5m); XS01 è 1d nativo su Hyperliquid e il suo intraday non è ricostruibile dai nostri dati → non l'ho inventato. Il delta fra config è la misura onesta ed è conservativo (B ha vol minore → wick minori → haircut minore). (2) La finestra comune 2024+ è quella in cui XS01 è stato scoperto e affinato → la taglia del guadagno è ottimista; sulla finestra piena il delta si riduce (P(pass) 56.9%→58.5%, P(vivo) 14.9%→21.8%) ma quella è sfavorevole a B per costruzione (pre-2024 B degenera in A). Il meccanismo (corr bassa → meno DD → più sopravvivenza sotto vincolo di DD) è robusto; la sua taglia no.
6) LA VIA — i 600 euro come BIGLIETTO, non come capitale (r0725_prop_ladder.py)
Se i €600 come capitale sono refutati (§2, §4), restano i €600 come biglietto: si compra un'evaluation, il conto funded moltiplica il nozionale senza possedere capitale, i payout comprano altri biglietti. È l'unica leva che non richiede depositi. Il 24/07 si era fermato a un conto ($100k → ~€14.5/g, cap $200k/firm). Ma €50/g richiede più conti in parallelo — e qui c'è il problema che nessuno aveva studiato:
N conti che girano lo stesso book bustano INSIEME. La diversificazione fra conti è illusoria salvo assegnare sleeve diversi a conti diversi.
È un problema di costruzione di portafoglio sotto barriera di rovina per-conto, e non è ovvio quale verso vinca: concentrare alza lo Sharpe per conto (sopravvivenza individuale) ma rende le morti perfettamente correlate; sparpagliare decorrela le morti ma ogni conto ha Sharpe più basso e quindi buca più spesso la propria barriera.
Simulazione: 36 mesi, cassa iniziale €600, max 6 conti, 2 firm (cap $200k/$400k), regole vere, payout mensile 80% prelevato subito, fisco 33%, rischio-morte firm 10%/anno, bootstrap a blocchi congiunto dei 3 sleeve (la correlazione fra conti è quella reale: TP01–SKH01 +0.10, TP01–XS01 −0.12, SKH01–XS01 −0.00).
| politica (leva 1.0×) | EUR/g mediano | p90 | P(≥10/g) | P(≥50/g) | P(zero) |
|---|---|---|---|---|---|
| CONC-2SL — ogni conto = book live attuale | 0.00 | 63.2 | 26.1% | 13.1% | 55.6% |
| CONC-DIV — ogni conto = book diversificato | 5.70 | 70.6 | 44.9% | 17.8% | 33.4% |
| SPARSO — 1 sleeve per conto | 0.00 | 76.3 | 26.2% | 16.8% | 66.0% |
| MISTO — metà diversificati, metà single | 10.70 | 75.1 | 50.6% | 20.7% | 33.4% |
(lente close-only)
Risultato non ovvio: vince il MISTO, non gli estremi. Ogni conto ha bisogno di abbastanza Sharpe per sopravvivere alla propria barriera (questo uccide SPARSO: P(zero) 66%), ma i conti hanno anche bisogno di essere decorrelati fra loro (questo penalizza CONC). E il book live attuale a 2 sleeve è la politica peggiore di tutte.
La lente onesta però è più dura. Le regole prop scattano sull'equity intraday. Con i wick (lognormale calibrato sui percentili del recon MTM 1h del 24/07: p50 −0.17pp, p90 −0.90pp, p99 −3.50pp, scalati sulla vol di ogni config):
| politica (leva 1.0×, INTRADAY) | EUR/g mediano | p90 | P(≥10/g) | P(≥50/g) | P(zero) |
|---|---|---|---|---|---|
| CONC-2SL | 0.00 | 2.18 | 4.8% | 1.7% | 85.1% |
| CONC-DIV | 0.00 | 7.34 | 9.0% | 2.5% | 78.1% |
| SPARSO | 0.00 | 0.02 | 1.3% | 0.3% | 89.9% |
| MISTO | 0.00 | 4.89 | 6.6% | 1.6% | 78.1% |
⚠️ Il mio modello di wick è un PAVIMENTO, non una stima puntuale: il gap è estratto
indipendente dal rendimento del giorno, mentre i wick veri sono accoppiati alle giornate
brutte → estrarli indipendenti aggiunge finti tuffi anche nelle giornate buone, cioè breach spuri.
Il modo corretto è il bootstrap delle tuple (ritorno, gap) come in r0724_goal50_intraday_mc.py,
che però ha il recon solo per TP01+SKH01 (XS01 è 1d nativo su Hyperliquid, intraday non
ricostruibile dai nostri dati) → follow-up dichiarato, non simulato.
Verdetto in banda (ed è la risposta al goal):
Una via da €600 a €50/giorno esiste ed è la scala di conti funded. In 3 anni ha una probabilità fra il 2% e il 21% di arrivarci, e una probabilità fra il 33% e il 78% di bruciare interamente i €600. Il valore atteso è positivo rispetto ai €600 tenuti come capitale (~€0.11/g ⇒ ~€120 in 3 anni), ma è una scommessa a coda destra, non una rendita.
Il confronto fra politiche è invece robusto (stessa lente per tutte) e ha un'implicazione diretta: se si apre il fronte prop, non mandarci il book live attuale — è l'ultima delle quattro politiche in entrambe le lenti.
7) ADDENDUM — "e se metto 10K su IB?" (r0725_ib10k.py)
Domanda dell'operatore a valle dell'ondata. Non è una domanda su GTAA01: è allocazione fra due venue con profili opposti — Deribit (TP01+SKH01) è il motore (CAGR ~11% de-luck, vol 11.3%), IB (GTAA01) è un diversificatore (CAGR ~3.9%, vol ~5%, corr ~+0.10). Tre effetti da contare insieme: (a) il deposito sblocca GTAA01 (il pavimento di commissione passa dall'1-3% per ordine a ~0.02% → §1 risolto); (b) sposta il baricentro su un venue a CAGR basso; (c) cambia l'aliquota (ETF 26% vs crypto 33%, assunzione dichiarata).
Capitale totale $11.500 ($600 Deribit + €10k), de-luck ×0.6, SKH01 path live:
| quota su IB | Sharpe | CAGR | maxDD | €/g atteso | rendita perpetua |
|---|---|---|---|---|---|
| 0% (tutto Deribit) | 0.99 | 11.2% | 15.3% | 2.16 | €1.16/g |
| 25% | 1.06 | 9.3% | 12.0% | 1.85 | €1.08/g |
| 50% | 1.13 | 7.5% | 11.2% | 1.54 | €0.98/g |
| 94% (= i 10k su IB) | 0.84 | 4.4% | 10.5% | 0.93 | €0.61/g |
Mettere i 10k su IB più che dimezza il reddito (€0.93 vs €2.16/g): è la §3 di questo stesso diario vista dal lato pratico — un diversificatore a basso CAGR diluisce l'income a pari nozionale.
E la via d'uscita (levare) è chiusa dai costi. Lo Sharpe migliore (1.13 a 50/50) si converte in reddito solo con leva; ma su ETF a IB con €10k c'è la Reg-T (2× max, il portfolio margin parte da ~$110k) e il margine costa ~5.5%/anno. Contando il finanziamento:
| quota IB | leva attuabile | CAGR lordo | costo leva | CAGR netto | rendita |
|---|---|---|---|---|---|
| 0% | 1.33× | 14.8% | 0.7% | 14.1% | €1.33/g |
| 25% | 1.71× | 15.9% | 2.0% | 13.9% | €1.25/g |
| 50% | 2.27× | 17.1% | 4.8% | 12.4% | €0.92/g |
| 94% | 2.06× | 9.0% | 5.6% | 3.4% | €0.00/g |
→ con leva attuabile E costo del margine, vince tutto-Deribit a 1.33×. Il diversificatore permetterebbe di levare di più, ma il finanziamento costa più di quanto aggiunge. Regola: l'argomento iso-rischio (§3) vale solo se la leva è (a) disponibile e (b) a costo inferiore all'uplift — su un conto retail da €10k su ETF non lo è.
Il confronto che ridimensiona GTAA01: €10k in GTAA01 = €0.93/g con maxDD 10.5%; gli stessi
€10k fermi a interesse 2% = €0.54/g con maxDD ~0%. Il premio dello sleeve sopra la
liquidità è **€0.50/g pagato con un drawdown del 10%** — in isolamento un cattivo affare (e un
monetario/BTP EUR renderebbe più del 2% assunto).
Raccomandazione: se arrivano €10k, il posto produttivo è Deribit. Chi vuole meno drawdown può tenere 25% su IB: costa ~€0.08/g di rendita e taglia il maxDD dal 15.3% al 12.0% — è l'unico split che regge anche coi costi di finanziamento. Il 94% su IB no.
⚠️ Caveat che rende il confronto meno netto di come appare: il CAGR crypto (11%) viene da ~7 anni che contengono due bull market; il 3.9% di GTAA01 da ~30 anni con dentro più orsi. Il confronto favorisce il crypto per costruzione — il numero crypto ha più probabilità di deludere. Tassi (margine 5.5%, liquidità 2%) e aliquote (26%/33%) sono assunzioni dichiarate; le aliquote vanno confermate col commercialista (non è un parere fiscale).
8) HYROTRADER nello specifico (r0725_hyro.py)
La firm che il 24/07 aveva messo prima in classifica per questo book: unica con API reale da funded (sub-account Bybit) → il book gira automatico; nessun limite di tempo sull'eval (una strategia lenta non è penalizzata); weekend consentito — non banale, l'ondata 2026-07-17 ha misurato che il weekend porta il 38% del gross di TP01. Biglietti $25k/$249, $50k/$379, $100k/$579, cap $200k, split 80%, fee rimborsata al pass.
Due regole mordono proprio noi, e nessuna analisi le aveva modellate: maxDD 6% STATICO e consistency 40% (nessun giorno > 40% del profitto totale, in eval).
Ipotesi refutata: la consistency NON morde. Avevo previsto una tagliola (SKH01 ha P&L a
scalino, TP01 fa strappi di trend). Misurato: costo ≈ 0pp a ogni leva e in entrambe le lenti.
Ragione strutturale: il book accumula il 10% in 130-300 giorni, quindi nessun singolo giorno
si avvicina al 40% del cumulato. ⚠️ Prima di dichiararlo ho dovuto provare che il controllo
funziona (un "costo 0" può essere un bug): test_consistency_MORDE_su_un_book_grumoso mostra
che su un book con profitto concentrato in 1-2 giorni la regola porta P(pass) da >90% a <5%. Il
meccanismo c'è; è il book a non essere grumoso abbastanza. (Il primo probe era sbagliato — strappi
ripetuti si diluiscono a vicenda, e sim_eval fa block-bootstrap, non replay: due iterazioni di test
prima di avere un discriminante valido.)
Il vincolo vero è il DD 6% statico. Finestra comune 2024+, de-luck ×0.6:
| Sharpe | CAGR | vol | maxDD | |
|---|---|---|---|---|
| A — book live (TP01/SKH01) | 0.74 | 7.2% | 10.1% | 9.5% |
| B — + XS01 | 1.13 | 10.0% | 8.8% | 6.2% |
Config A ha maxDD 9.5% contro un limite di 6%: strutturalmente incompatibile a leva piena.
Funded $100k, P(vivo 1 anno) / €-giorno:
| config | leva | close-only (tetto) | intraday (pavimento) |
|---|---|---|---|
| A | 0.50× | 80.2% / €8.33 | 44.0% / €6.86 |
| A | 0.75× | 51.1% / €12.21 | 10.1% / — |
| A | 1.00× | 27.1% / €13.89 | 1.4% / — |
| B | 0.50× | 98.5% / €8.69 | 71.0% / €7.69 |
| B | 0.75× | 85.4% / €12.78 | 31.6% / €8.66 |
| B | 1.00× | 66.0% / €16.20 | 9.9% / — |
EV del biglietto (config B, eval 1.0×, funded a leva ottima, 1 anno): close-only P(pass) 73.0% → EV +$6.789 sul biglietto $100k; intraday P(pass) 31.1% → EV +$1.166. Positivo in entrambe le lenti — ma con ~69% di probabilità di perdere la fee nella lente pessimista.
Raccomandazione operativa:
- Config B (con XS01), non il book live attuale. A 1.0× intraday config A sopravvive l'1.4%: mandarci il book a 2 sleeve a leva piena è morte quasi certa.
- Funded a 0.50× (non 0.75× come indicava il 24/07 per la config A): E[payout] scende poco (€7.69 vs €8.66/g) ma la sopravvivenza raddoppia (71% vs 32%) — e su orizzonti pluriennali la sopravvivenza compone, un conto bustato smette di produrre per sempre.
- Eval a 0.75-1.0×; biglietto $25-50k come test economico — l'EV scala linearmente con la taglia, quindi la ragione per partire piccoli è varianza e apprendimento, non EV.
- Cap $200k/trader ⇒ ~€15-30/g anche negli scenari buoni. Per €50/g servono più firm → §6.
⚠️ Discrepanza dichiarata col 24/07: lì il funded di config A a 0.75× dava P(vivo) 58%, qui 10%. Due cause note: (a) il mio wick è a estrazione indipendente (più severo — §6); (b) finestra 2024+, dove config A è debole (Sharpe 0.74 vs 0.99 sulla finestra piena). La direzione concorda (meno leva è meglio), il livello no — e il numero del 24/07 usa il recon MTM vero, quindi sul livello è più affidabile del mio.
Bug catturato in sessione
Modello funded, base di prelievo aggiornata ogni giorno come un HWM mobile → al checkpoint
mensile eq > hwm è quasi sempre falso → guadagno misurato ≈ 0 → payout $230/anno invece di
~$7.000. Le regole vere sono a max-loss statico dal saldo iniziale, con la base ripristinata
dopo ogni prelievo. Corretto e bloccato da test_funded_payout_non_e_zero_regressione_hwm.
Famiglia nota: numero plausibile, meccanismo sbagliato — si prende solo con una sanity a risposta nota.
Decisioni e non-decisioni
Cablato: nulla sul path live. Book, pesi, config, cron: invariati.
Raccomandazioni all'operatore (non automatizzabili):
- Se si apre il fronte prop (l'unico canale che scala in mesi): mandarci il book diversificato TP01+SKH01+XS01, non il book a 2 sleeve. È la differenza fra P(vivo) 19% e 58% a leva 1.0×. Richiede una venue con i 19 alt perp (Bybit sub-account HyroTrader li ha). E se si arriva a più conti, politica MISTA (§6): metà conti col book diversificato, metà con singoli sleeve decorrelati. Budget mentale onesto: P(perdere tutto) 33-78%.
- GTAA01 su IB: non andare live senza banda+cadenza (weekly, banda ~$50/gamba). È un cambio al modello dello sleeve → passa dai gate, non lo cablo in questa sessione.
- Aspettativa onesta ricalibrata: rendita perpetua da 50 EUR/g = $300k-$500k di capitale (non €122k). A $600 il book rende ~€0.11/giorno.
Cosa NON fare (confermato): niente cambio pesi senza weights_tilt_null; niente leva "per
accelerare" sul capitale proprio (il muro si sposta del 20%, non dell'ordine di grandezza).