From db9d8443512e2171ca7b3b1ead87203c06e8c33e Mon Sep 17 00:00:00 2001 From: Adriano Dal Pastro Date: Sat, 22 Aug 2026 23:58:19 +0000 Subject: [PATCH] =?UTF-8?q?CLAUDE.md:=20la=20chiave=20di=20scala=20specifi?= =?UTF-8?q?cata=20=E2=80=94=20tetto=20sul=20prodotto,=20il=20test=20di=20g?= =?UTF-8?q?uardia=20smette=20di=20controllare,=20e=20il=20nodo=20del=20dis?= =?UTF-8?q?aster-SL=20rotolante?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 55b4a64..f041bd4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2384,8 +2384,9 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis β†’ al gate si confronterebbe **un benchmark giusto con un numero di strategia sbagliato**, e il margine sembrerebbe **+5,83 invece di +1,87**. 🚨 **(4) WORST-DAY β€” la riserva sulla leva e' mal tarata di 2-4 ORDINI DI GRANDEZZA, ma il knob di - scala NON ESISTE.** Il gradino 1,00xβ†’1,25-1,50x vale **14,7 β†’ 11,6 anni** al capitale-rendita - (~€300/mese di versamenti equivalenti) ed era bloccato da un parametro **scelto a mano** ("un giorno + scala NON ESISTE.** Il gradino di leva vale **14,7a β†’ 12,9a a 1,25x** e **β†’ 11,6a a 1,50x** al + capitale-rendita (**+€164/mese** e **+€282/mese** di versamenti equivalenti) ed era bloccato da un + parametro **scelto a mano** ("un giorno a βˆ’10% ogni anno"). **Il peggior giorno ha due risposte:** **βˆ’3,94% in chiusura** (2020-03-13) e **βˆ’7,33% al minimo** intra-giorno (rapporto mediano **1,89Γ—**). Coda GPD: **βˆ’4,55% a 1/10.000 giorni** [βˆ’6,34/βˆ’3,08] ⚠️ **ma Hill dice βˆ’7,34% (ΞΎ 0,34 contro 0,09): i due stimatori NON concordano @@ -2456,6 +2457,40 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis plausibili in due punti diversi**. Stessa famiglia del `DatetimeIndex.view("int64")` codificato il 01/07. **Su un perpetuale lineare, inoltre, `diff(nozionale) < 0` NON e' una vendita: il nozionale scende da solo quando scende il mark.** + βœ… **SEGUITO 2026-08-22 notte β€” LA CHIAVE E' SPECIFICATA (`docs/research/SPEC-scale-key.md` + + prototipo isolato `r0822e_scale_proto.py`, zero scritture, isolamento verificato a runtime), con un + NODO IRRISOLTO.** Registro Β§38. Replica a k=1,00 **6/6** contro WORST-DAY. + ⚠️ **CORREZIONE A UN NUMERO CHE AVEVO SCRITTO IO:** *"1,25-1,50x vale 14,7 β†’ 11,6 anni, ~€300/mese"* + **fondeva due gradini** β€” a **1,25x** l'equivalente e' **+€164/mese**, il €282 e' del **1,50x**. + 🚨 **Tre risultati che il mandato non prevedeva:** + **(i)** `test_leva_massima_da_config_resta_sotto_o_uguale_a_1x` **NON si rompe, ed e' PEGGIO che + rompersi**: misura `frac Β· n_asset` mentre la grandezza vera diventerebbe `frac Β· n_asset Β· scala` + β†’ **continua a passare e smette di controllare**. **4Βͺ occorrenza** della forma *"un controllo + puntato su una configurazione diversa da quella che gira"*. **Va cancellato con nota, non + aggiustato.** + **(ii) La guardia che morde per prima e' il DISASTER-SL, non il peggior giorno:** bound strutturale + k ≀ 3,49x, **disaster-SL k ≀ 1,67x = 2,1Γ— piu' stringente** β†’ **C1 di WORST-DAY guardava la + grandezza sbagliata**. Il tetto giusto e' l'invariante `n_asset Β· frac Β· scala Β· disaster_sl_pct + ≀ 0,50`, che lega **tre** chiavi. + **(iii) Il tetto va sul PRODOTTO, non sulla chiave:** `frac=0,625` + `scala=1,25` = leva **1,562x** + e **passerebbe** un tetto *"scala ≀ 1,25"* β€” e WORST-DAY aveva appena pubblicato che alzare `frac` + da solo *"non produce k=1,25"*: **combinato con la scala lo produce eccome.** + πŸ“Œ **Gate proposto `GATE SCALA-01`** (9 condizioni, fra cui **tetto sul prodotto** e **A6 + anti-recency**: `k_ammesso` calcolato **togliendo gli ultimi 90 giorni** dev'essere β‰₯ k richiesto), + perche' **la scala e' invisibile a ogni gate esistente** β€” Sharpe **1,5051 identico a tutte le celle + di k**: `deflated_sharpe` e `marginal_vs_tp01` **non falliscono, non vedono la variabile**. + βœ… `weights_tilt_null` invece **passa con potenza**: peso implicito TP01 **0,750000 a ogni k**, + `max|target(k) βˆ’ kΒ·target(1)| = 0`, e il **controllo positivo** (scala sulla sola gamba TP01 = cio' + che farebbe `target_vol`) lo porta a **0,789** e viene smascherato. + 🚨 **IL NODO, da sciogliere PRIMA di qualunque gradino:** `execution.py:196-223` **ri-ancora il + disaster-SL al mark a ogni giro** (tolleranza 5%) β†’ **il βˆ’30% e' ROTOLANTE, non un pavimento**. Se e' + cosi', il 37,5% e' il costo di **un episodio** e un ribasso lento ne produce **piu' d'uno**, e il + margine 1,33x del gradino non e' quello vero. ⚠️ **Letto nel codice, NON misurato**, e il log non lo + permette (servirebbe `pos_prima`): **non ricostruibile a posteriori** β†’ per misurarlo bisogna prima + aggiungere il campo al log. + **Seconda soglia dichiarata:** il fallback dell'equity oggi scatta **0 volte su 1.442 giri**; sopra + il **2% dei giri in 90 giorni** il libro girerebbe a leva **mista** e `g(k)` smetterebbe di + descriverlo. **REGOLE NUOVE:** (a) **una data in un gate va giustificata col COSTO della misura, non con la sua difficolta' percepita** β€” due gate d'attesa eliminati in una sera perche' nessuno aveva contato i secondi; (b) **una verifica esterna a €0 va fatta PRIMA di qualunque misura che ne dipenda**, e si