COLLAR01 (§71): il pavimento funziona, il tetto lo paga troppo — e cio' che vince e' VRP01

Chiesto dall'operatore in quattro battute: hold BTC long o short coperto in
opzioni, scadenza <=15gg, "ridurre la vincita ma bloccare la perdita" (=>
collar, non put protettiva), entrata gated da indicatori ("forte bull"), e
uscita dalle opzioni fra il 50% e il 75% del tempo.

PERCHE' SI POTEVA RIAPRIRE DOPO §46. §46 (tail-hedge) fu refutato sul beta
+0,076 del libro — "non si assicura un libro che nei crash e' gia' quasi
piatto". Qui il sottostante e' un hold di BTC, beta 1,0: quel motivo non si
applica. E §46 dichiarava non provata proprio la copertura gated su regime.

L'entrata non aggiunge un solo parametro: tsmom_blend media tre np.sign() su
(30,90,180) => valori in {-1,-1/3,+1/3,+1}, quindi "forte bull" = |blend|==1
(52,5% dei giorni) contro il confronto dichiarato |blend|>=1/3 (97,1%).

RISULTATI (lente lunga 2021-03 -> 2026-09, 5,44 anni; griglia 48 celle
dichiarata prima + 36 di estensione dichiarata):
- A1 CONFERMATA: il pavimento FUNZIONA, maxDD scende in 36/48 (§46: saliva
  in 162/162). La meta' della domanda ha risposta positiva.
- A3 CONFERMATA: il de-levering lo fa meglio in 45/48. Δdrift/ΔmaxDD 7,90
  (gate forte) / 1,98 (largo): 2-8 punti di drift per punto di DD.
- C9 in forma pura: il tetto taglia il 46,2% dei cicli VINCENTI, il pavimento
  para il 6,7% dei PERDENTI — 7x piu' spesso sui vincenti: troncatura.
- M1: collar Sharpe 0,508 vs TP01 0,852; TP01+10% => +0,000 di Sharpe e
  +2,32pp di maxDD.

IL FATTO CHE VALE PIU' DEL VERDETTO. Le 3 celle vincenti stavano tutte sul
BORDO; estesa la famiglia vince 35/36 nell'ANGOLO (dput 0,02 / dcall 0,50,
Sharpe 1,471) — e il limite di quell'angolo e' una COVERED CALL: la pendenza
porta fuori dalla domanda posta e dentro lo short-vol. E quel 1,471 e' il
prezzatore che si paga da solo: DVOL/RV-forward 1,320 a 7g (sopra nel 76,9%
dei giorni) => riprezzato alla vol vera l'angolo cade a 0,511, che e' VRP01
(0,47). Non una scoperta: VRP01 per una strada piu' lunga. §3 lo blocca.

USCITA ANTICIPATA: implementata (exit_frac) e COSTA. Cella onesta gate forte:
drift +9,48% (scadenza) -> +3,84% (50%), esito da VINCE a perde sotto 0,75.
Il meccanismo previsto c'e' (VRP residuo +3,38 -> +1,27pp) ma lo spread lo
travolge. Corregge l'applicazione di §46: "un roll anticipato non paga f"
vale per una copertura solo LONG; in un collar la gamba venduta va
RICOMPRATA, quindi si paga f sulla parte che a scadenza si regolava gratis.
L'asimmetria si INVERTE quando la struttura ha una gamba corta.

CONTROLLI DELL'APPARATO 3/3 (M15): pranzo gratis riconosciuto (maxDD
51,83%->36,76%, drift +10,04%->+35,69%), premio x10 rifiutato, zero-cost
finito. Cinque difetti miei catturati dai controlli, non a occhio: bisezione
zero-cost invertita (dava Sharpe -3,9), dcall=NaN nella cassa, C9 non
consapevole della direzione (S1>S0 non e' "vincente" per uno short), e due di
contabilita' che avrebbero ADULATO il collar (base che rollava lo spot
pagando ~3,6%/a di fee inesistenti; roll che chiudeva lo spot senza motivo).

Corregge anche un muro di §46: il tick da 5 USDC e' della famiglia USDC; la
catena che raccogliamo e' 100% inverse, quindi li' non si applica.

Regole nuove in CLAUDE.md: M29 (un edge da opzioni prezzate a modello si
riprezza alla vol REALIZZATA prima di crederci), M8 esteso (un argmax sul
BORDO e' una pendenza, non una cella), C4 esteso (il segno dell'asimmetria di
f dipende dal verso della gamba).

Libro, pesi, cron, config INVARIATI. Nessun ordine. Suite: 807 passati.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Adriano Dal Pastro
2026-09-01 17:30:18 +00:00
parent 5bcf212923
commit 05816c49f9
6 changed files with 1207 additions and 3 deletions
+225
View File
@@ -0,0 +1,225 @@
# 2026-09-01 — COLLAR01: il pavimento funziona, il tetto lo paga troppo, e ciò che vince è VRP01 travestito
*Scritto il 2026-09-01. Ogni numero è riprodotto da `scripts/research/r0901_btc_collar.py`.
**Libro, pesi, cron, config INVARIATI. Nessun ordine.***
## 0. La domanda, come è arrivata
> *«crea una strategia di hold BTC in long o short con copertura con options (max 15gg)»*
> *«opzione deve essere al max di 15gg»*
> *«voglio ridurre la vincita, ma bloccare la perdita»*
> *«ovviamente l'entrata deve essere gestita da una strategia confortata da indicatori (es. è in forte bull)»*
> *«dalle opzioni dobbiamo uscire prima del termine (tra 50% e 75% del tempo)»*
Le tre precisazioni cambiano l'oggetto, e vanno lette insieme: **non è una put protettiva, è un
COLLAR** (pavimento comprato, tetto venduto per finanziarlo), su un **hold gated da indicatori**,
con **scadenza ≤15 giorni**.
## 1. Perché questo filone si poteva riaprire
§46 (TAIL-HEDGE, 2026-08-23) è **REFUTATO** e la memoria dice di battere il motivo, non di
ripetere la misura. Il motivo di §46, verbatim:
> *il maxDD **SALE in 162/162 celle**, a ogni lente di f, perché il **beta del libro al sottostante
> è +0,076**: non si assicura un libro che nei crash è già quasi piatto.*
**Quel motivo non si applica qui.** §46 assicurava il *libro* (TP01+SKH01, piatto il 28% dei
giorni); qui il sottostante è un **hold di BTC, beta 1,0 per costruzione**. E §46 dichiara di non
aver provato proprio questo: *«Nessuna copertura dinamica (gated su regime) è stata provata: la
domanda era la statica»*.
Riusati e non rimisurati: metriche e `k_for_same_dd` da `r0823_tail_hedge`, il listino fee opzioni
Deribit, la catena via `cblib.load_chain()`.
## 2. L'entrata, presa dal progetto invece che inventata
`trend_portfolio.tsmom_blend` media tre `np.sign()` sugli orizzonti (30, 90, 180), quindi assume
**solo** i valori {1, 1/3, +1/3, +1} (il bucket 2/3 non esiste — errore già corretto in §57).
Questo dà a **"forte bull" una definizione che non aggiunge nemmeno un parametro nuovo**:
- **gate FORTE** = `|blend| == 1`, tutti e tre gli orizzonti concordi → a mercato **52,5%** dei giorni
- **gate LARGO** = `|blend| ≥ 1/3`, confronto dichiarato → a mercato **97,1%** dei giorni
Il segno dà la direzione, quindi **long e short** sono entrambi coperti come chiesto. Si entra il
giorno **dopo** il segnale (eseguibile, §8.1).
## 3. La calibrazione: quello che il modello non poteva assumere
161.964 quote a due lati su 95 giorni (2026-05-07 → 2026-09-01), scadenze 1-15 giorni.
**Lo skew, ed è il fatto strutturale del filone:**
| \|δ\| | IV put / ATM | IV call / ATM | la put costa |
|---|---|---|---|
| 0,10 | 1,249 | 0,959 | **+30%** della call |
| 0,20 | 1,132 | 0,950 | **+19%** |
| 0,30 | 1,072 | 0,960 | **+12%** |
**Un collar delta-simmetrico è un debito netto**: compro l'ala cara e vendo quella a buon mercato.
Non è un dettaglio di prezzo, è la ragione per cui "gratis" non esiste a delta simmetrici.
Spread (mezza forchetta / mid): put 1,9-8,3%, call 2,1-10,0% secondo il delta. Struttura a termine
IV/DVOL30 ≈ 0,92-0,94 a 2-14 giorni.
📌 **A5 confermata, e corregge un muro di §46:** il tick da **5 USDC** che lì era «il secondo muro,
strutturale» vale per la famiglia **USDC**. La catena che raccogliamo è **100% inverse**
(`BTC-31JUL26-45000-P`), col tick in BTC. Il muro di §46 **non si applica a questo filone**.
## 4. Il risultato, in ordine di come uccide
Lente lunga 2021-03-24 → 2026-09-01 (1.988 giorni, 5,44 anni). BTC buy&hold nudo: Sharpe 0,413 ·
maxDD 76,73% · drift +7,82%/a. Griglia dichiarata prima: 3 δput × 3 δcall × 2 tenor × 2 gate = **48
celle**, più 12 varianti zero-cost dichiarate a parte.
### ✅ A1 CONFERMATA — il pavimento funziona davvero (e §46 è battuto sul suo motivo)
**maxDD scende in 36/48 celle.** Con beta 1,0 la put para davvero: è il risultato che §46 non
poteva ottenere. *Questa metà della domanda dell'operatore ha risposta positiva.*
### ❌ A3 CONFERMATA — ma il de-levering lo fa meglio in 45/48 celle
| gate | base gated senza opzioni | |
|---|---|---|
| FORTE | Sharpe 0,442 · maxDD **51,83%** · drift **+10,04%**/a | ← il null da battere |
| LARGO | Sharpe 0,578 · maxDD **71,94%** · drift **+17,37%**/a | |
Il null è **lo stesso hold gated, senza opzioni, scalato a iso-maxDD** — generato dallo stesso
motore, non ridichiarato (P1). Il collar lo batte in **3 celle su 48**.
### ❌ A2 CONFERMATA — ogni punto di DD risparmiato costa 2-8 punti di drift
Δdrift/ΔmaxDD mediano: **7,90** col gate FORTE, **1,98** col LARGO. Il tetto costa più di quanto
il pavimento renda, e non di poco.
### 🚨 C9 — non è protezione, è troncatura
Cella migliore, 196 cicli: **il tetto taglia nel 46,2% dei cicli vincenti, il pavimento para nel
6,7% dei cicli perdenti.** Scatta **7 volte più spesso sui vincenti che sui perdenti** — la
definizione letterale di C9. *La regola dell'operatore («ridurre la vincita, bloccare la perdita»)
è implementata fedelmente: il problema è che su BTC quel baratto è pagato male.*
### ❌ M1 — dentro il libro non aggiunge nulla
Collar Sharpe 0,508 contro TP01 **0,852**, corr +0,486. TP01 + 10% di collar: Sharpe **+0,000** e
maxDD **+2,32pp**. A 25%: **0,065** di Sharpe e **+6,57pp** di maxDD. *Peggiora proprio la cosa
che dovrebbe proteggere.*
## 5. 🚨 Il fatto che vale più del verdetto
**Tutte e 3 le celle vincenti stanno sul BORDO** della griglia (δput al minimo, δcall al massimo).
M8: un argmax sul bordo non è una decisione. Ho esteso la famiglia (M4) con 36 trial dichiarati
verso l'angolo — e lì **vince in 35/36 celle**, con il massimo *nell'angolo*:
> gate FORTE, 7 giorni, **δput 0,02 · δcall 0,50** → Sharpe **1,471** · maxDD **18,12%** · drift **+29,99%**/a
Il limite di quell'angolo è *nessun pavimento, tetto ATM*: **una covered call**. Cioè **la pendenza
porta fuori da ciò che l'operatore ha chiesto e dentro lo short-vol.**
E quel Sharpe 1,471 non è una scoperta — **è il mio prezzatore che si paga da solo**:
| | DVOL / RV-forward | DVOL sta sopra |
|---|---|---|
| a 7 giorni | **1,320** | **76,9%** dei giorni |
| a 14 giorni | **1,253** | **74,8%** dei giorni |
Riprezzando le opzioni alla **volatilità effettivamente realizzata** (diagnostica con look-ahead
dichiarato — è il valore equo ex-post, non una strategia):
| cella | a DVOL | a vol realizzata | il VRP valeva |
|---|---|---|---|
| FORTE 7g δ0,02/0,50 | Sh **1,471** · +29,99% | Sh **0,511** · +8,45% | **+21,54 pp (72%)** |
| LARGO 7g δ0,02/0,50 | Sh **1,141** · +32,17% | Sh **0,114** · **1,10%** | **+33,26 pp (tutto)** |
| FORTE 7g δ0,10/0,30 | VINCE | **perde** | +6,75 pp |
| LARGO 14g δ0,10/0,30 | perde | perde | +8,02 pp |
**Il 72-100% dell'edge dell'angolo è il premio di varianza**, non la struttura. E ciò che
sopravvive alla riprezzatura — **Sharpe 0,511** — è, entro il rumore, **il numero che il progetto
ha già**: VRP01 a f=0,73 vale **Sharpe 0,47**. *Non ho trovato una strategia nuova: ho ri-scoperto
VRP01 per una strada più lunga.* E §3 lo blocca comunque: **«niente short-vol da modello in
deploy»** — questo è esattamente short-vol da modello.
## 5-bis. L'uscita anticipata: chiesta, implementata, e costa
L'operatore ha chiesto di **uscire dalle opzioni fra il 50% e il 75% del tempo**. Implementato come
`exit_frac`, su tenor 14 giorni (⇒ uscita a 7 / 9 / 10 giorni). **La mia ipotesi a priori era che
migliorasse**: uscire presto recupera valore temporale sulla put e rinuncia al theta più veloce
sulla call, cioè proprio alla parte che stampava il premio di varianza. **Metà giusta, metà no.**
| cella `δ0,10/0,30`, gate FORTE | uscita | Sharpe | drift | null | esito | VRP residuo |
|---|---|---|---|---|---|---|
| a scadenza | 1,000 | 0,488 | **+9,48%** | +8,07% | VINCE | +3,38pp |
| 75% | 0,750 | 0,457 | +8,59% | +7,72% | VINCE | +4,93pp |
| 62,5% | 0,625 | 0,366 | +6,11% | +7,98% | **perde** | +2,51pp |
| 50% | 0,500 | 0,278 | **+3,84%** | +8,04% | **perde** | **+1,27pp** |
**Il meccanismo previsto c'è** — il VRP residuo scende da +3,38 a +1,27pp, quindi uscire presto
*davvero* rinuncia allo short-vol — **ma lo spread lo travolge**: 5,6 punti di drift sul gate
FORTE, 10,2 sul LARGO (12,06% → 1,88%), e su `δ0,20/0,20` da 4,37% a 8,58%.
🚨 **E qui §46 va corretto nella sua applicazione.** §46 misurò: *«f si paga solo sulla parte di
valore che converge a intrinseco, quindi un roll anticipato non lo paga»*. **Vero per una copertura
SOLO LONG.** In un collar c'è una **gamba venduta da ricomprare**: uscire prima paga f *esattamente*
sulla parte che a scadenza si sarebbe regolata gratis, e si fa ~2× più spesso per unità di tempo.
**L'asimmetria di §46 si inverte quando la struttura ha una gamba corta.** È il risultato
trasferibile di questa richiesta.
**Nella banda chiesta (50-75%) il verdetto si spacca:** a **0,75** la cella onesta passa ancora il
null (di poco); a **0,625 e sotto** non lo passa più. Nessun `exit_frac` ribalta il verdetto del
filone — lo peggiora.
## 6. I controlli dell'apparato (M15) — 3/3
§46 insegna che *«un controllo positivo rotto dichiara guasto l'apparato»*. Prima di credere a un
verdetto negativo ho verificato che l'apparato sappia riconoscere un successo:
| controllo | atteso | misurato | |
|---|---|---|---|
| pavimento a **premio zero** (pranzo gratis) | deve VINCERE | maxDD 51,83%→**36,76%**, drift +10,04%→**+35,69%** | ✅ |
| premio **×10** | deve PERDERE | drift **33,96%**/a | ✅ |
| zero-cost costruibile e finito | non NaN | drift 3,50%/a | ✅ |
## 7. Tre difetti miei, catturati dai controlli e non a occhio
1. **Bisezione dello zero-cost invertita** (`hi = md` dove serve `lo = md`): il premio cresce col
delta, quindi se incasso troppo poco il tetto va *avvicinato*. Dava Sharpe 3,0/3,9 e drift
53%/a — spazzatura che al primo giro avevo quasi pubblicato.
2. **`dcall=NaN`** nella variante zero-cost propagava NaN nella cassa allo smontaggio anticipato.
3. **C9 non consapevole della direzione:** usavo `S1 > S0` come proxy di "ciclo vincente", ma per
un ciclo **short** un prezzo che sale è una **perdita**. Era la causa del risultato impossibile
*«il pavimento para nello 0,0% dei cicli perdenti»* con una put a 10 delta.
E due difetti di contabilità trovati prima di misurare, che avrebbero **adulato il collar**:
la base senza opzioni rollava lo spot ogni `tenor` giorni pagando ~3,6%/anno di fee inesistenti;
e al roll delle opzioni chiudevo e riaprivo anche lo spot, che non ha motivo di muoversi.
## 8. Cosa NON ho misurato, dichiarato
- **La lente reale (quote vere, 2026-05→09) non è stata girata come backtest.** 123 giorni = ~8
cicli non sovrapposti: sotto-potenziata per costruzione, e su una finestra in cui BTC è salito da
~64,7k a ~77,5k — **avversa a un collar per costruzione**. La catena è servita a **calibrare**
(skew, termine, spread), che è l'uso in cui 161.964 quote hanno potenza.
- **Nessun DSR, nessun `study_family_honest`.** Non servono: il filone cade al **primo** gate (M5),
e M2 si spende su ciò che il primo gate lascia in piedi.
- **A6 e A7 non verificate** (lente reale non girata; il verso short è dentro i gate ma non
separato). Restano previsioni non misurate, non risultati.
- **Il funding dei perp non è nel motore**, come in ogni backtest del progetto: 2,16%/a di drift.
Colpisce base e collar quasi allo stesso modo (stessa esposizione spot), quindi **non cambia il
segno del confronto**, ma abbassa entrambi.
## 9. Verdetto
> **`IL PAVIMENTO FUNZIONA — E' IL TETTO CHE NON SI PUO' PAGARE. E CIO' CHE VINCE SUL BORDO NON E'
> LA PROTEZIONE: E' IL PREMIO DI VARIANZA, CIOE' VRP01`** — **REFUTATO come chiesto.**
Con una postilla che è il vero risultato trasferibile: **la domanda «bloccare la perdita» ha
risposta positiva sul maxDD (36/48) e negativa sul prezzo (45/48).** Su BTC il pavimento si compra
meglio **tenendo meno BTC** che comprando una put e vendendo una call — e il de-levering, a
differenza del collar, non tocca il rendimento nella coda destra dove BTC vive.
## 10. Cosa lo riaprirebbe
- Un **f di stress misurato su un crash catturato** — la stessa condizione che §3 pone allo
short-vol. Con quello, l'angolo covered-call diventa discutibile invece che escluso.
- Un sottostante **senza coda destra grassa**: il tetto costa perché BTC vive lì. Su un asset a
distribuzione più simmetrica il baratto cambia di segno, e il conto va rifatto.
- **Non** lo riapre un tenor diverso, un delta diverso o una griglia più fine: la pendenza è
monotona verso l'angolo short-vol, e l'angolo è già misurato.
+51
View File
@@ -1452,3 +1452,54 @@ una maschera a caso della stessa frequenza**.
dall'aria seria. Se ne è accorta solo la riga `giorni in cui il LIBRO e' flat: 0 = 0.0%`.
**REGOLA: stampare sempre la CARDINALITÀ di una maschera prima di usarla** — un filtro vuoto non
solleva, produce il caso degenere e lo veste da risultato.
---
- **COLLAR01 "hold BTC gated dal trend + collar di opzioni <=15 giorni" — REFUTATO (2026-09-01)** —
`scripts/research/r0901_btc_collar.py`, diario `2026-09-01-collar-btc.md`, registro §71.
Chiesto dall'operatore in quattro battute: *hold BTC long o short coperto in opzioni* + *opzione
max 15gg* + ***"ridurre la vincita, ma bloccare la perdita"*** (⇒ collar, non put protettiva) +
*entrata gestita da indicatori (es. forte bull)*.
🚨 **Si poteva riaprire dopo §46 perche' ne batte il MOTIVO, non perche' ne ripete la misura:**
§46 cadde sul **beta +0,076 del libro** (*"non si assicura un libro che nei crash e' gia' quasi
piatto"*), qui il sottostante e' un **hold di BTC, beta 1,0**. E §46 dichiarava non provata la
copertura **gated su regime**, che e' questa.
**L'entrata non ha aggiunto un solo parametro:** `tsmom_blend` media tre `np.sign()` su (30,90,180)
⇒ valori in {1,1/3,+1/3,+1}, quindi *"forte bull"* = `|blend|==1` (52,5% dei giorni) contro il
confronto dichiarato `|blend|>=1/3` (97,1%); il segno da' long **e** short.
**A1 CONFERMATA — il pavimento FUNZIONA: maxDD scende in 36/48 celle** (§46: saliva in 162/162).
*La meta' della domanda dell'operatore ha risposta positiva.*
**Ma il de-levering lo fa meglio in 45/48**, e il baratto costa **2-8 punti di drift per punto
di DD** (Δdrift/ΔmaxDD **7,90** gate forte, **1,98** largo).
🚨 **C9 in forma pura: il tetto taglia il 46,2% dei cicli VINCENTI, il pavimento para il 6,7% dei
PERDENTI** — 7x piu' spesso sui vincenti: *troncatura, non protezione*.
**M1:** collar Sharpe 0,508 vs TP01 **0,852**; TP01+10% ⇒ **+0,000** di Sharpe e **+2,32pp** di
maxDD — peggiora proprio cio' che dovrebbe proteggere.
🚨 **IL RISULTATO TRASFERIBILE STA NELL'ESTENSIONE, NON NELLA GRIGLIA.** Le 3 celle vincenti
stavano tutte **sul bordo**; estesa la famiglia vince **35/36** con il massimo **nell'angolo**
(δput 0,02 / δcall 0,50, Sharpe **1,471**) — e il limite di quell'angolo e' *nessun pavimento,
tetto ATM* = **una covered call**: **la pendenza porta fuori dalla domanda posta e dentro lo
short-vol**. E quel 1,471 era **il prezzatore che si paga da solo**: **DVOL/RV-forward 1,320 a 7g,
sopra nel 76,9% dei giorni** ⇒ riprezzato alla vol vera l'angolo cade a **0,511** (VRP = **72%**
del drift; col gate largo **il 100%**, drift **1,10%**). E **0,511 e' VRP01** (ShFULL 0,47 a
f=0,73): *non una scoperta, VRP01 ri-trovato per una strada piu' lunga*. §3 lo blocca comunque.
🚨 **USCITA ANTICIPATA (chiesta: 50-75% del tempo) — implementata e COSTA**, e produce il secondo
risultato trasferibile. Cella onesta, gate FORTE: drift **+9,48% (scadenza) -> +3,84% (uscita al
50%)**, esito da VINCE a **perde sotto 0,75**; gate LARGO **12,06% -> 1,88%**. Il meccanismo
previsto c'e' (il VRP residuo scende **+3,38 -> +1,27pp**: uscire presto rinuncia davvero allo
short-vol) **ma lo spread lo travolge**. 📌 **Corregge l'APPLICAZIONE di §46:** *"un roll anticipato
non paga f"* vale per una copertura **solo LONG**; in un collar la **gamba venduta va RICOMPRATA**,
quindi uscire prima paga f *esattamente* sulla parte che a scadenza si regolava gratis, ~2x piu'
spesso. **L'asimmetria di §46 si INVERTE quando la struttura ha una gamba corta.**
**Controlli dell'apparato 3/3** (la lezione di §46): pranzo gratis riconosciuto, premio x10
rifiutato, zero-cost finito.
⚠️ **Cinque difetti miei catturati dai controlli:** bisezione zero-cost **invertita** (dava Sharpe
3,9); `dcall=NaN` che propagava NaN nella cassa; **C9 non consapevole della direzione** (`S1>S0`
non e' "vincente" per un ciclo short — dava l'impossibile *"pavimento 0,0%"*); e due di
contabilita' che **avrebbero adulato il collar** (la base che rollava lo spot pagando ~3,6%/a di
fee inesistenti, e il roll che chiudeva lo spot senza motivo).
📌 **Corregge un muro di §46:** il **tick da 5 USDC** e' della famiglia **USDC**; la catena che
raccogliamo e' **100% inverse** ⇒ quel muro **non si applica** a questo filone.
**Cosa lo riapre:** un **f di stress su un crash catturato** (la condizione che §3 pone allo
short-vol), o un sottostante **senza coda destra grassa**. **Non** lo riaprono tenor, delta o
griglie piu' fini: la pendenza e' monotona verso l'angolo, e l'angolo e' gia' misurato.
+88
View File
@@ -17,6 +17,7 @@ null de-levering superato + eseguibilita' al capitale dichiarato.
| 8 | VOL-SIZE | **LEAD RIDIMENSIONATO** — gate 22/12 **gia' fallito oggi** | dare a SKH01 una size per-trade regge a **23/23 ancore**, 8/8 anni, null di permutazione e trasferimento su V1 — ma vale **+0,07 di Sharpe di libro, un terzo della fortuna d'ancora del libro stesso (+0,196)**. Il vol-target di **libro** e' invece falsificato: compra peso SKH gia' respinto e peggiora l'eseguibilita' |
| — | **XSR-REPRO** (integrita') | 🚨 **DIFETTO DI PRODUZIONE** | il numero 1.82 e' SPIEGATO e non era sbagliato (era su una **terza** lente, e su una barra non ancora chiusa) — ma cercandone la causa e' emerso che **`paper_xsr` registra ~41 minuti di mercato al giorno**, non un giorno. Tre gate pre-registrati leggono serie costruite cosi' |
| 70 | **XSR-RENDITA** | **SCARTATO sotto la lente RENDITA** (non come sleeve) | il muro scende del 20,6% a iso-rischio, ma **mescolare i rendimenti di XSR01 da' lo stesso muro** (il meccanismo vale 0,8%, dentro la risoluzione MC) e un **conto remunerato allo stesso tasso lo eguaglia a vol 0 e senza secondo venue**. A drift zero il muro **sale**: si compra un drift scorrelato, non la scorrelazione. E l'haircut non pareggia un conto al 4% **nemmeno a haircut ZERO** |
| 71 | **COLLAR01** | hold BTC gated dal trend, coperto da un collar (pavimento comprato, tetto venduto) a scadenza <=15g: "ridurre la vincita, bloccare la perdita" batte il de-levering? | **REFUTATO** — ✅ il pavimento FUNZIONA (maxDD scende in **36/48**, §46 battuto sul suo motivo: qui beta=1,0) ❌ ma costa **2-8 punti di drift per punto di DD** e il de-levering vince **45/48**. 🚨 Le 3 celle vincenti stanno sul **bordo**: estesa la famiglia vince 35/36 **nell'angolo covered-call**, e **il 72-100% di quell'edge e' il PREMIO DI VARIANZA** (DVOL sta **32% sopra** la RV-forward): riprezzato alla vol vera l'angolo cade da Sharpe **1,471 a 0,511** — che e' VRP01 (0,47), non una scoperta |
| 5 | SKEW | **SCARTATO** (Q1, Q2) + **LEAD** (Q3, gate 2027-02-22) | il prezzo muove lo skew (t 3,1-9,4 su 8/8 test), **non il contrario** (max |t| in avanti 2,35 contro 2,08 atteso dal rumore). Ma Q3 e' grosso: **il f=0,73 di VRP01 e' per il 42% STRUTTURA A TERMINE e solo per il 25% skew** |
| — | **HL-EXEC** (audit di fatto) | **3 falsificazioni misurate** | il pavimento vero e' **$10 (non $5)** e il taker **4,50 bps (non 5,0)** — ma il *"XS01 serve ~$20k"* e' **refutato del tutto** (nessuna soglia da min-order), il *"XSR01 ~$5.000"* e' **conservativo di 1,7x** (vero ~$3.000), e lo **slippage "rischio #1" di XSR01 e' refutato** con margine **21x** |
| — | **SLIP-AUDIT** (audit di fatto) | **SCARTATO** = nessun costo nascosto a questa taglia | i backtest a 10 bps RT restano **conservativi di ~1,5 bps/lato**; nessuna evidenza di impatto sopravvive al null (p=0,274; estremi avversi **1/18 contro 4,7 attesi**). **Ma la misura ha una data di scadenza** |
@@ -3799,3 +3800,90 @@ rendita non e' lo strumento**, e che il gate del 23/10 sta per decidere su una g
capitale **non e' comprabile**.
**Con questa sono 70 filoni e 0 candidati promossi.**
---
## 71 — COLLAR01 (hold BTC gated dal trend, coperto da un collar a <=15 giorni)
`scripts/research/r0901_btc_collar.py`. **Libro, pesi, cron, config INVARIATI. Nessun ordine.**
Domanda dell'operatore, con tre precisazioni in corso d'opera che ne cambiano l'oggetto: *"hold BTC
long o short con copertura in opzioni"* + *"opzione max 15gg"* + *"ridurre la vincita, ma bloccare
la perdita"* (⇒ **collar**, non put protettiva) + *"l'entrata gestita da indicatori (es. forte bull)"*.
🚨 **PERCHE' SI POTEVA RIAPRIRE DOPO §46.** §46 fu refutato perche' **il beta del libro al
sottostante e' +0,076** — *"non si assicura un libro che nei crash e' gia' quasi piatto"*. Qui il
sottostante e' un **hold di BTC nudo, beta 1,0**: il motivo non si applica. E §46 dichiara di non
aver provato la copertura **gated su regime**, che e' esattamente questa.
**L'entrata non aggiunge parametri:** `tsmom_blend` media tre `np.sign()` su (30, 90, 180) ⇒ valori
in {1, 1/3, +1/3, +1}, quindi *"forte bull"* = `|blend|==1` (3/3 orizzonti, a mercato **52,5%**
dei giorni) contro il confronto dichiarato `|blend|>=1/3` (**97,1%**). Il segno da' la direzione:
long **e** short, come chiesto.
**CALIBRAZIONE dalla catena vera** (161.964 quote a due lati, 95 giorni, DTE 1-15). **Lo skew e' il
fatto strutturale:** IV_put/ATM contro IV_call/ATM = **1,249 vs 0,959** a |δ|0,10 · 1,132 vs 0,950 a
0,20 · 1,072 vs 0,960 a 0,30 ⇒ **un collar delta-simmetrico e' un DEBITO netto**, si compra l'ala
cara e si vende quella a buon mercato. 📌 **Corregge un muro di §46:** il **tick da 5 USDC** e' della
famiglia **USDC**; la catena che raccogliamo e' **100% inverse****quel muro non si applica qui**.
| esito | misura |
|---|---|
| ✅ **A1 — il pavimento FUNZIONA** | maxDD scende in **36/48** celle (§46: saliva in 162/162) |
| ❌ **A3 — ma il de-levering lo fa meglio** | il collar batte il null a iso-maxDD in **3/48** |
| ❌ **A2 — il prezzo del baratto** | Δdrift/ΔmaxDD mediano **7,90** (gate forte) / **1,98** (largo) |
| 🚨 **C9 — troncatura, non protezione** | il tetto taglia il **46,2%** dei cicli **vincenti**, il pavimento para il **6,7%** dei **perdenti**: 7x piu' spesso sui vincenti |
| ❌ **M1 — dentro il libro non aggiunge** | collar Sharpe 0,508 vs TP01 **0,852**; TP01+10% ⇒ Sharpe **+0,000** e maxDD **+2,32pp** |
🚨 **IL FATTO CHE VALE PIU' DEL VERDETTO — e che si vede solo estendendo la griglia (M4/M8).** Tutte
e 3 le celle vincenti stanno sul **BORDO** (δput min, δcall max). Estesa la famiglia con 36 trial
dichiarati verso l'angolo: **vince 35/36**, massimo **nell'angolo** (FORTE 7g, δput 0,02 / δcall
0,50) = Sharpe **1,471**, maxDD 18,12%, drift **+29,99%/a**. Il limite di quell'angolo e' *nessun
pavimento, tetto ATM* = **una covered call**: **la pendenza porta FUORI da cio' che l'operatore ha
chiesto e DENTRO lo short-vol.**
🚨 **E quel Sharpe e' il prezzatore che si paga da solo.** **DVOL / RV-forward mediana 1,320 a 7g**
(DVOL sta sopra nel **76,9%** dei giorni), 1,253 a 14g. Riprezzando alla vol **realizzata**
(look-ahead dichiarato, valore equo ex-post): l'angolo cade **1,471 -> 0,511** di Sharpe (VRP
**+21,54pp = 72%** del drift) col gate FORTE, e **1,141 -> 0,114** col LARGO (VRP **+33,26pp = tutto**;
drift **1,10%**). Le celle con un pavimento VERO (δ0,10/0,30) passano da VINCE a **perde**.
📌 **Cio' che sopravvive — Sharpe 0,511 — e' il numero che il progetto GIA' HA:** VRP01 a f=0,73 vale
ShFULL **0,47**. *Non e' una strategia nuova: e' VRP01 ri-scoperto per una strada piu' lunga*, e §3
lo blocca comunque (**"niente short-vol da modello in deploy"**).
🚨 **USCITA ANTICIPATA (chiesta dall'operatore: 50-75% del tempo) — IMPLEMENTATA, E COSTA.**
`exit_frac` su tenor 14g (uscita a 7/9/10 giorni). Cella onesta δ0,10/0,30 gate FORTE: drift
**+9,48% (scadenza) -> +8,59% (0,75) -> +6,11% (0,625) -> +3,84% (0,50)**, e l'esito passa da VINCE a
**perde sotto 0,75**; gate LARGO **12,06% -> 1,88%**. ⚠️ **Il meccanismo previsto c'e'** — il VRP
residuo scende da +3,38 a **+1,27pp**, quindi uscire presto rinuncia davvero allo short-vol — **ma lo
spread lo travolge**. 📌 **E CORREGGE L'APPLICAZIONE DI §46:** *"f si paga solo sulla parte di valore
che converge a intrinseco, quindi un roll anticipato non lo paga"* vale per una copertura **SOLO
LONG**; in un collar c'e' una **gamba VENDUTA da RICOMPRARE**, e uscire prima paga f *esattamente*
sulla parte che a scadenza si sarebbe regolata gratis, ~2x piu' spesso per unita' di tempo.
**L'asimmetria di §46 si INVERTE quando la struttura ha una gamba corta.**
**CONTROLLI DELL'APPARATO 3/3** (M15, la lezione di §46): pavimento a **premio zero** riconosciuto
come vittoria (maxDD 51,83%→**36,76%**, drift +10,04%→**+35,69%**); premio **x10** rifiutato (drift
**33,96%/a**); zero-cost costruibile e finito.
⚠️ **CINQUE DIFETTI MIEI, tutti catturati dai controlli e non a occhio.** (i) **bisezione dello
zero-cost invertita** — il premio cresce col delta, quindi a incasso insufficiente il tetto va
*avvicinato*: dava Sharpe 3,0/3,9 e drift 53%/a; (ii) `dcall=NaN` propagava NaN nella cassa allo
smontaggio anticipato; (iii) **C9 non consapevole della direzione**`S1>S0` non e' "vincente" per
un ciclo **short**: era la causa dell'impossibile *"il pavimento para nello 0,0% dei perdenti"* con
una put a 10 delta; (iv) la base senza opzioni **rollava lo spot** ogni tenor pagando ~3,6%/a di fee
inesistenti (**avrebbe adulato il collar**); (v) al roll delle opzioni chiudevo e riaprivo **anche lo
spot**, che non ha motivo di muoversi.
⚠️ **NON MISURATO, DICHIARATO:** la **lente reale** (quote vere, 123 giorni = ~8 cicli) non e' stata
girata come backtest — sotto-potenziata, e su una finestra in cui BTC e' salito da ~64,7k a ~77,5k,
**avversa a un collar per costruzione**; la catena e' servita a **calibrare**, dove 161.964 quote
hanno potenza. Nessun DSR e nessun `study_family_honest`: il filone cade al **primo** gate (M5), e M2
si spende su cio' che il primo gate lascia in piedi. A6/A7 restano previsioni non misurate. Il
**funding** non e' nel motore (2,16%/a) ma colpisce base e collar quasi allo stesso modo: abbassa
entrambi, **non cambia il segno**.
**VERDETTO: `IL PAVIMENTO FUNZIONA — E' IL TETTO CHE NON SI PUO' PAGARE; E CIO' CHE VINCE SUL BORDO
NON E' LA PROTEZIONE, E' IL PREMIO DI VARIANZA (VRP01)`** — REFUTATO.
**Cosa lo riapre:** un **f di stress misurato su un crash catturato** (la stessa condizione che §3
pone allo short-vol), o un sottostante **senza coda destra grassa** — il tetto costa perche' BTC vive
li'. **Non** lo riaprono tenor, delta o griglie piu' fini: la pendenza e' monotona verso l'angolo, e
l'angolo e' gia' misurato.