4cb82dc474
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>
235 lines
12 KiB
Markdown
235 lines
12 KiB
Markdown
# 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.
|