Files
PythagorasGoal/docs/diary/2026-07-25-rendita-capcurve-prop.md
Adriano Dal Pastro 607cd94ecd fix(gtaa): costo IB reale (pavimento fisso) + esecuzione a banda — lo sleeve era cieco al capitale
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>
2026-07-25 17:25:06 +00:00

25 KiB
Raw Permalink Blame History

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: TP01SKH01 +0.10, TP01XS01 0.12, SKH01XS01 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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):

  1. 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%.
  2. 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.
  3. 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).