Files
PythagorasGoal/docs/diary/2026-07-25-prop-wick-accoppiato.md
T
Adriano Dal Pastro 4cb82dc474 research(prop): lente wick ACCOPPIATA — chiude il follow-up dichiarato del 25/07
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>
2026-07-25 19:30:03 +00:00

12 KiB
Raw Blame History

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:

  1. Recon per-sleeve a risoluzione oraria. r0724 calcola 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.
  2. 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.0 esatto.
  3. 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.