La scala di conti funded era giudicata con due lenti a un ordine di grandezza di distanza su P(>=50 EUR/g): 20.7% close-only vs 1.6-2.5% wick indipendente. Il difetto era dichiarato (gap estratto indipendente dal rendimento del giorno) ma il recon accoppiato esisteva solo per il book 75/25. Qui si generalizza: sleeve TP01/SKH01 separati a risoluzione oraria (minimo intraday esatto per qualsiasi vettore di pesi) + XS01 accoppiato dagli OHLC giornalieri HL (recon = sleeve ufficiale a max|delta|=0.0). FINDING: la calibrazione del wick era giusta, l'errore era l'INDIPENDENZA. Le marginali coincidono (p50 -0.17pp identico) ma il gap e' ~3x piu' profondo nei giorni che finiscono BENE (-1.58pp vs -0.48pp), perche' un giorno brutto chiude sul minimo (m==R nel 26% dei giorni). Il breach si valuta sul minimo -> la lente indipendente raddoppia i breach da daily-loss (2.0-2.9x, misurato sui giorni storici). close-only non e' conservativa ma CIECA: 0.00% di breach ovunque. Verifiche: (1) 1h vs 5m identici (p99 -3.06 vs -3.14pp) -> il caveat di risoluzione del 24/07 e' trascurabile; (2) riconciliazione col 24/07 RISOLTA (63.2% vs 58% sulla stessa finestra: non era la finestra, era la lente); (3) bound severo su XS01 non ribalta config B. Decisioni: funded 0.75x (non 0.50x — massimizza il payout a 3 anni, $2674 vs $1230); scala P(>=50/g) ~6% con P(zero) 52-65%; ordine fra politiche invariato a tutte e 3 le lenti. Book/pesi/cron INVARIATI. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
12 KiB
2026-07-25 — La lente wick ACCOPPIATA: chiusura del follow-up dichiarato
Script: scripts/research/r0725_prop_coupled.py · Test: tests/test_prop_coupled.py (13 casi)
Segue: 2026-07-25-rendita-capcurve-prop.md §5 (scala prop) e §7 (HyroTrader)
Book / pesi / cron: INVARIATI. Nessuna decisione di portafoglio dipende da questo lavoro.
1. Cosa era rimasto aperto, e perché contava
La scala di conti funded (§5 del diario di stamattina) era stata giudicata con due lenti che differiscono di un ordine di grandezza su P(≥50 €/g in 3 anni):
| lente | P(≥50/g) | com'era descritta |
|---|---|---|
| close-only | 20.7% | tetto ottimista — le regole prop scattano sull'equity intraday, non sulla chiusura |
| wick indipendente | 1.6-2.5% | pavimento pessimista — gap lognormale estratto indipendente dal rendimento del giorno |
Una banda 1.6%-20.7% non decide niente: è la differenza fra "scommessa a coda destra che vale i 600 euro" e "non vale la pena". E il difetto del pavimento era già dichiarato nel docstring:
«nella realtà i wick profondi stanno sulle giornate brutte (sono ACCOPPIATI): estrarli indipendenti aggiunge finti tuffi anche nelle giornate buone → breach spuri → stima troppo severa. Il modo giusto è il bootstrap delle TUPLE (ritorno, gap) come in r0724_goal50_intraday_mc.py, che però ha il recon solo per TP01+SKH01 → FOLLOW-UP dichiarato.»
Questo lavoro chiude quel follow-up.
2. Metodo
Tre pezzi, tutti verificati contro qualcosa di indipendente:
- Recon per-sleeve a risoluzione oraria.
r0724calcola il minimo intraday del book Deribit con i pesi 75/25 cablati dentro. Qui i pesi si dividono via per ottenere gli sleeve nudi (ret, wick) di TP01 e SKH01 — così il minimo si compone esattamente sul path orario per qualsiasi vettore di pesi. Logica invariata: exit-al-livello, SL prioritario, fee. - Lente accoppiata per XS01, che su Hyperliquid è 1d nativo. L'escursione intraday si
ricostruisce dagli OHLC giornalieri dei 19 alt: il book si valuta ai 4 checkpoint
O / primo estremo / secondo estremo / C, con ordinamento condiviso fra le gambe (le alt
co-muovono) preso nell'ordine avverso. Non è path-exact, ma è accoppiato al giorno vero,
che è tutto il punto.
Sanity: il recon riproduce lo sleeve ufficiale con
max|Δ| = 0.0esatto. - Le tre lenti sulla stessa macchina di simulazione (close / indipendente / accoppiata), così il confronto non mescola differenze di modello con differenze di lente.
3. Il risultato principale: la calibrazione era giusta, l'indipendenza era l'errore
Confronto delle distribuzioni marginali del gap (book live TP01/SKH01, 2691 giorni):
| p50 | p90 | p99 | peggiore | |
|---|---|---|---|---|
| accoppiato (recon) | −0.17pp | −1.03pp | −2.70pp | −5.96pp |
| indipendente (calibrazione 25/07) | −0.17pp | −0.90pp | −3.50pp | — |
Sono quasi identiche. La calibrazione lognormale di stamattina era buona. Quello che era sbagliato non è quanto sono profondi i tuffi, ma su quali giorni cadono.
3.1 E la dipendenza va nel verso inatteso
Mi aspettavo — e lo avevo scritto — che i gap profondi stessero sui giorni brutti. È il contrario:
| book | giorni | m==R | gap medio | gap | decile PEGGIORE | gap | decile MIGLIORE |
|---|---|---|---|---|---|
| A TP01/SKH01 (live) | 2691 | 26% | −0.38pp | −0.48pp | −1.58pp |
| B +XS01 (diversif.) | 937 | 20% | −0.36pp | −0.39pp | −1.30pp |
| TP01 solo | 2691 | 33% | −0.39pp | −0.59pp | −1.57pp |
| SKH01 solo | 2691 | 76% | −0.39pp | −0.40pp | −2.97pp |
| XS01 solo | 937 | 53% | −0.44pp | −0.22pp | −2.32pp |
L'escursione intraday è ~3× più profonda nei giorni che finiscono BENE che in quelli che
finiscono male. Il meccanismo, una volta visto, è ovvio: un giorno brutto scende tutto il
giorno e chiude sul minimo (m == R nel 26% dei giorni: la chiusura è il peggio), mentre
un recupero a V ha un minimo profondo e una chiusura alta.
Il breach però si valuta sul minimo. Quindi ciò che conta è quanto gap si aggiunge nei giorni brutti — e lì il gap vero è ~1/3 di quello dei giorni buoni. Un'estrazione indipendente usa la stessa distribuzione ovunque, e così carica i giorni brutti con la coda che nella realtà appartiene ai giorni buoni.
3.2 Quanto costa, misurato sui giorni storici (nessun bootstrap)
Frazione di giorni che sfondano la regola di daily-loss:
| book | leva | regola | close-only | ACCOPPIATO | indipendente | gonfiaggio |
|---|---|---|---|---|---|---|
| A (live) | 0.75 | daily 4% (HYRO) | 0.00% | 0.21% | 0.40% | 1.9× |
| A (live) | 1.00 | daily 4% (HYRO) | 0.00% | 0.32% | 0.78% | 2.4× |
| B (+XS01) | 0.75 | daily 4% (HYRO) | 0.00% | 0.11% | 0.25% | 2.4× |
| B (+XS01) | 1.00 | daily 5% (FTMO) | 0.00% | 0.11% | 0.31% | 2.9× |
Due letture:
- la lente indipendente raddoppia i breach da daily-loss (2.0-2.9×);
- close-only non è "leggermente ottimista": è strutturalmente cieca. Fa
0.00%su ogni riga — la regola di daily-loss non scatta mai sulle chiusure. Non è una lente approssimata, è una lente che non vede affatto quel vincolo.
4. Tre verifiche — perché un "nessuna differenza" va provato, non assunto
(1) Risoluzione: l'1h basta? — sì, misurato
TP01 tiene peso costante nel giorno, quindi il suo minimo intraday si può calcolare anche a 5m ed è un confronto pulito:
| p50 | p90 | p99 | peggiore | |
|---|---|---|---|---|
| gamba TP01 @1h | −0.337pp | −1.358pp | −3.056pp | −5.34pp |
| gamba TP01 @5m | −0.336pp | −1.366pp | −3.136pp | −5.33pp |
Identici. Il caveat "i wick a 1h sono un tetto, i 5m sarebbero più profondi" — portato avanti dal 24/07 — è quantificato e trascurabile. L'ora cattura già il minimo del giorno: i 5m aggiungono solo rumore dentro un'ora di minimo già individuata.
Nota di metodo: entrambe le righe riportavano n=1865 e la cosa sembrava un errore (stessa
serie confrontata due volte). Non lo era: il filtro scarta i giorni in cui TP01 è flat (~30%),
che sono gli stessi a qualsiasi risoluzione. Verificato prima di accettare il risultato.
(2) Riconciliazione col 24/07 — la discrepanza dichiarata è risolta
CLAUDE.md portava un ⚠ aperto: «Discrepanza col 24/07 (P(vivo) A@0.75x 58% vs 10% mio)», con l'ipotesi che fosse un effetto-finestra. Non era la finestra, era la lente:
| finestra | lente | P(pass) | P(vivo 1a) | E[payout/a] |
|---|---|---|---|---|
| 2019-03+ FULL | close | 53.8% | 79.7% | $2.085 |
| 2019-03+ FULL | accoppiato | 48.1% | 63.2% | $1.618 |
| 2024+ comune | close | 47.0% | 74.8% | $1.632 |
| 2024+ comune | accoppiato | 35.6% | 39.4% | $770 |
Sulla stessa finestra piena del 24/07 (recon MTM indipendente, che dava 58%) la mia lente accoppiata dà 63.2% — accordo entro 5pp, con due implementazioni scritte separatamente. Il 10% del 25/07 era l'artefatto della lente indipendente. La finestra spiega il resto (63.2% full → 39.4% sul 2024+, dove config A è debole).
(3) Bound severo su XS01 — non ribalta niente
È XS01 a reggere il vantaggio della config diversificata, e il suo gap dipende da una convenzione (ordinamento condiviso). Girato anche il bound opposto — ogni gamba al proprio peggio nello stesso istante, fisicamente impossibile su 10 gambe co-moventi ma utile a delimitare l'errore:
| convenzione | gap p90 | peggiore | P(pass) | P(vivo 1a) | E[payout/a] |
|---|---|---|---|---|---|
| ordine condiviso (base) | −0.86pp | −4.81pp | 42.9% | 76.0% | $1.144 |
| per-gamba (bound severo) | −1.83pp | −15.56pp | 32.3% | 57.6% | $814 |
| config A, per confronto | — | — | 35.6% | 39.4% | $770 |
Anche al bound severo config B resta sopra config A (57.6% vs 39.4%, $814 vs $770). La conclusione non dipende dalla convenzione.
5. Cosa cambia nelle decisioni
5.1 La raccomandazione HyroTrader si sposta da 0.50x a 0.75x
Config B (book diversificato, +XS01), lente accoppiata, finestra 2024+:
| leva | P(pass eval) | P(vivo 1a) | E[payout/a] | E[payout] su 3 anni |
|---|---|---|---|---|
| 0.50x | 28.6% | 99.5% | $412 | ~$1.230 |
| 0.75x | 42.9% | 76.0% | $1.144 | ~$2.674 |
| 1.00x | 46.6% | 42.1% | $1.246 | ~$1.992 |
Stamattina la scelta era 0.50x, perché la lente indipendente dava a 0.75x una sopravvivenza del 55%. Con la lente onesta la sopravvivenza a 0.75x è 76%, e 0.75x massimizza il payout atteso su 3 anni — batte 0.50x di 2,2× e 1.00x di 1,3× (a 1.00x la sopravvivenza crolla e l'effetto composto la punisce). L'argomento del 25/07 — "la sopravvivenza compone su più anni" — resta valido; è il punto in cui morde che si sposta.
5.2 La scala di conti: il ranking regge, i livelli no
| lente | leva | MISTO EUR/g med | P(≥10/g) | P(≥50/g) | P(zero) |
|---|---|---|---|---|---|
| close-only | 1.00x | 11.11 | 50.8% | 22.0% | 33.9% |
| accoppiata | 0.75x | 0.00 | 29.7% | 5.6% | 52.2% |
| accoppiata | 1.00x | 0.00 | 20.8% | 6.5% | 65.5% |
| indipendente | 1.00x | 0.00 | 5.2% | 1.0% | 81.5% |
- L'ordinamento fra politiche SOPRAVVIVE a tutte e tre le lenti: MISTO ≥ CONC-DIV > CONC-2SL ≈ SPARSO. L'affermazione di stamattina — «il confronto fra POLITICHE è robusto: è la stessa lente applicata a tutte» — è confermata su una lente che allora non esisteva. CONC-2SL (= il book live attuale su ogni conto) resta la peggiore o penultima ovunque.
- I livelli si spostano parecchio. La stima onesta di P(≥50/g) in 3 anni è ~5,6-6,5%, non 1,6-2,5% e non 20,7%. La scala è ~3-4× più probabile di quanto diceva il pavimento e ~3,4× meno di quanto diceva il tetto.
- P(≥10/g) è massima a 0.75x (29,7%), non alla leva piena: l'ottimo di leva della scala coincide con quello del conto singolo.
- Il prezzo resta alto: P(bruciare i €600) = 52% a 0.75x, 65% a 1.00x.
5.3 Il verdetto sul goal, ristretto
Il 25/07 concludeva: «una via da €600 a €50/g ESISTE con P ~2-21% in 3 anni e P(bruciare i €600) ~33-78% → scommessa a coda destra, NON una rendita». Con la lente onesta la banda si stringe:
P(≥50 €/g entro 3 anni) ≈ 6%, con P(perdere i €600) ≈ 52-65%. Resta una scommessa a coda destra. Ma è una scommessa con una probabilità conoscibile, non un intervallo di un ordine di grandezza.
6. Cosa NON cambia
- Book, pesi, cron: invariati. Niente qui tocca il portafoglio.
- Il fronte prop non è aperto: questo lavoro dice cosa costerebbe e con quale probabilità, non che vada fatto.
- Resta il caveat di finestra del 25/07: il 2024+ è la finestra in cui XS01 è stato scoperto e affinato → la taglia del vantaggio di config B è ottimista; il meccanismo (correlazione bassa → meno DD → più sopravvivenza sotto vincolo di DD) è robusto. La verifica (2) qui sopra quantifica per la prima volta quanto pesa la finestra da sola (63.2% → 39.4% su config A).
- XS01 resta STAT-MODE sul capitale proprio (serve ~$20k). Su un conto funded da $100k è eseguibile: è esattamente l'asimmetria capitale-proprio vs funded del §4 di stamattina.
7. Lezione da portare avanti
Un modello di rischio intraday non si valida sulla distribuzione marginale del wick, ma sul suo ACCOPPIAMENTO al rendimento del giorno. Qui la marginale era calibrata quasi perfettamente (p50 −0.17pp identico) e ciò nonostante il modello sbagliava di 2-3× sui breach, perché metteva i tuffi sui giorni sbagliati. Un test "i percentili del mio wick sintetico coincidono con quelli del recon" sarebbe passato, e la stima sarebbe rimasta sbagliata.
Corollario controintuitivo, da ricordare perché è il contrario dell'intuizione: l'escursione intraday è più profonda nei giorni che chiudono bene. I giorni che chiudono male chiudono sul minimo. Ogni regola valutata sul minimo (daily-loss, trailing DD, stop di conto) va misurata su tuple accoppiate, mai su un wick estratto a parte.
Terzo: close-only non è una lente conservativa, è una lente cieca per le regole intraday — 0.00% di breach da daily-loss su ogni configurazione testata. Va usata come controllo, mai come stima.