research(wave-0822): FUNDING misurato — 2,16%/anno di drift, muri +17,5%; esposizione e funding sono correlati e la stima ingenua sottostima di 2x

This commit is contained in:
Adriano Dal Pastro
2026-08-22 22:43:24 +00:00
parent d930492d47
commit ee5cbb2c08
2 changed files with 1290 additions and 0 deletions
+78
View File
@@ -700,6 +700,7 @@ stessi hanno nominato senza poterli eseguire**. Stesso contratto di consegna, st
| 32 | SKH-ANCHOR-PROP | `GATE PROP-01` gamba (b), datata 31/10: girata oggi | **PASS 23/23** — e il numero scende ancora, a **4,4%** |
| 33 | WORST-DAY | il peggior giorno del libro, MISURATO: il gradino di leva e' autorizzabile? | **LEAD** — l'aritmetica passa, **il knob non esiste** |
| 34 | CC01-2022 | il carry riaperto sui dati che gli mancavano per costruzione | **RESTA SCARTATO** — per la ragione giusta, ma non quella pubblicata |
| 35 | FUNDING | il costo mai prezzato di TENERE una posizione aperta | **LEAD****2,16%/anno di drift**, muri **+17,5%** |
| 22 | MAKER | l'esecuzione passiva e' una fonte di ritorno, al netto del costo di non essere eseguiti? | **SCARTATO** — il segno dipende da `<` contro `<=` |
| 23 | BOCPD | un rilevatore di cambio di regime vero batte il miglior lookback COSTANTE? | **SCARTATO** — filone chiuso definitivamente |
| 24 | CRITICO | cosa NON e' stato misurato, e quale singola misura mancante vale di piu' | **3 correzioni all'ondata**, 1 regola mia ritirata |
@@ -1634,3 +1635,80 @@ contro 6,0%, l'85% della perdita) perche' il funding negativo e' **persistent
**VERDETTO: `CC01 COL 2022 DENTRO: RESTA SCARTATO — e per la ragione giusta, ma quella pubblicata era
necessaria e non sufficiente.`**
---
## 35 — FUNDING (il costo che il progetto non aveva mai prezzato)
`scripts/research/r0822d_funding.py` (1.212 righe, 32 s, `--no-net` usa la cache). **Nessuna cella e'
una selezione** → niente DSR da calcolare. Ridotto per budget: muri a 2.000 path (**risoluzione ~1%,
dichiarata**).
Il progetto ha prezzato fee, slippage, min-order, pavimento IB, haircut, fortuna d'ancora, degrado
d'esecuzione, look-ahead, backfill, split, contaminazione EUR/USD, rischio di venue e fisco — **e mai
il costo di TENERE APERTA una posizione su un perpetual.**
| serie | ShFULL | ShHOLD | maxDD | CAGR | drift |
|---|---|---|---|---|---|
| LIBRO 75/25 path live | 1,692 | 1,214 | 11,2% | 20,43% | 19,24% |
| **+ funding** | **1,513** | **1,154** | **11,5%** | **17,87%** | **17,08%** |
| Δ | 0,179 | 0,060 | **+0,3pp** | 2,56% | **2,16%** |
| TP01 canonico | 1,314 → **1,146** | 0,489 → 0,420 | 14,3 → 15,2% | 16,43 → 14,02% | 2,10% |
| SKH01 50/50 path live | 1,247 → **1,154** | 1,456 → 1,439 | 24,6 → 24,8% | 30,56 → 27,59% | 2,32% |
📌 **Il costo va citato CON LA FINESTRA: 2,16%/anno** (2019-2026, proxy inverse sul 40% del campione)
· **1,39%** sulla sola finestra dello strumento vero (≥2022-03) · **0,55%** sul 2025+ — e il 2022 e
il 2026 costano ~0 **perche' il libro era FLAT** (esposizione 0,008 / 0,018), non perche' il funding
sia sparito.
🚨 **IL MECCANISMO, ed e' il risultato trasferibile: esposizione e funding sono POSITIVAMENTE
CORRELATI.** Il tasso che il libro paga davvero e' **1,86-2,55×** l'incondizionato per TP01 e
**2,41-3,44×** per SKH01. **Il prodotto ingenuo "esposizione media × tasso medio" sottostima di ~2×**
— ed e' esattamente la forma della stima grezza da cui e' nato il filone.
❌ **L'ipotesi da cui il filone e' partito — "SKH01 paga meno perche' sta a mercato il 12% del tempo"
— e' FALSA:** 2,24%/anno di sleeve contro **2,02%** di TP01. Quando e' a mercato SKH01 sta a nozionale
**1,0×** (TP01 vol-targeted sta a **0,14×**) **ed entra sui breakout, cioe' quando il funding e' caro.**
**Il peso ottimale resta 0,25** con e senza funding, e il delta e' negativo a **23/23 offset per ogni w**.
⚠️ **Il proxy Hyperliquid era 2,1-2,2× il venue vero** sulle stesse ore (14,8% contro 6,8-7,1%): **due
errori opposti — tasso troppo alto, esposizione condizionale troppo bassa — che quasi si
compensavano.** *Compensarsi non e' misurare.*
🚨 **COSA CAMBIA NEI NUMERI PUBBLICATI:** rendita perpetua **10,73% → 9,14%**; muro
**$276,6k → $325,0k (+17,5%)**; traiettoria da $600 a €250/mese **16,4a con P(20a) 90% → 18,7a con
P(20a) 64%**; **soffitto direzionale ~1,31 → ~1,15**.
📌 **E il maxDD NON si muove (+0,3pp): e' una tassa sul DRIFT, non sulla coda** — per questo colpisce i
**muri** molto piu' dello Sharpe. Il gradino di leva **regge** (k* 13,7 → 12,3, guadagno del passo
1,00→1,25× 12%).
**NON cambia:** il peso **75/25**, il gradino di leva, il maxDD, ne' **l'ordine delle leve del piano**.
⚠️ **AVVERTENZA DEL COORDINATORE, non dell'agente: questa correzione e quella del FISCO si SOMMANO, e
nessuna tabella pubblicata le contiene entrambe.** La riga "€250/mese" vale P(20a) **92% al lordo** ·
**52% col fisco** (07/08) · **64% col funding** (oggi) — le due lenti sono state applicate
**separatamente** allo stesso numero lordo. La tabella con entrambe **non esiste ancora**, e il
risultato congiunto sara' **peggiore di 52%**.
**Validato contro il CONTO VERO, e per ELIMINAZIONE invece che per grandezza:** modello contro
`realized_pnl` di sessione **ETH 0,2% / BTC 7,7%**, mentre le finestre sbagliate sbagliano di 2-4×.
L'identificazione regge perche' nella sessione ci sono stati **0 ordini** (letti dal log) → il P&L di
trading realizzato e' **esattamente zero**, quindi quel campo non puo' essere P&L di trading; e il
segno e' negativo su due gambe **entrambe long**. Funding realmente pagato da quando il libro esegue:
**$0,22**. Convenzione temporale **verificata sui dati** (`interest_8h` = somma delle 8 ore trailing
incluso T: mediana |dif| **2,2e-08** contro 1,1e-06 dell'alternativa). Replica **bit-exact 5/5**.
⚠️ **BUG CATTURATO DAL CONTROLLO POSITIVO, non a occhio, e in famiglia gia' nota:**
`DatetimeIndex.astype("int64")` su tre serie dello stesso progetto con risoluzioni **diverse**
(`[ms]` il funding, `[us]` `al.get`, `[s]` il log) dava funding **0,000%/anno su SKH01** e
**+1,229%/GIORNO su TP01**. **Nessuna eccezione, nessun NaN: due numeri plausibili in due punti
diversi.** E' la stessa famiglia codificata in CLAUDE.md il **01/07** (`DatetimeIndex.view("int64")`
su indici tz-aware non-ns → look-ahead che `causality_ok` non vede). Ora c'e' un controllo che
confronta `searchsorted` con un `groupby` di pandas **e verifica di avere potenza**.
⚠️ **Secondo errore corretto in sessione:** contava `diff(pos) < 0` come vendite — **su un perpetuale
lineare il nozionale scende da solo quando scende il mark.**
**Smentitore principale dichiarato:** sul **pre-2022** l'agente usa l'**inverse come proxy** e i due
strumenti correlano solo **0,27-0,40** orario → se il funding dei lineari nel 2019-2021 fosse stato
molto piu' basso, il 2,16% scenderebbe verso il **1,39%** della finestra pulita.
**VERDETTO: LEAD** (misura di politica, non strategia).
**`IL FUNDING COSTA 2,16%/ANNO NETTO AL LIBRO` — quanto la fortuna d'ancora ×0,89 che il progetto ha
misurato con enorme cura, e sposta i muri di capitale del +17,5%.**
File diff suppressed because it is too large Load Diff