CLAUDE.md: nodo del disaster-SL sciolto — rotolante ma scatta MENO; e il docstring della cadenza in book_execute e' una trappola viva

This commit is contained in:
Adriano Dal Pastro
2026-08-23 00:38:16 +00:00
parent 9973b04bc1
commit 3a4592bdfc
+28 -6
View File
@@ -2482,12 +2482,34 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis
`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.
**IL NODO E' SCIOLTO (2026-08-23, `r0823_sl_anchor.py`, §40) — E LA DICHIARAZIONE DI
NON-MISURABILITA' ERA FALSA: IL LOG BASTAVA.** *(3ª conferma della regola del 26/07: un blocco
dichiarato e' un'IPOTESI, non un fatto.)*
📌 **L'attesa e' stata scritta PRIMA di guardare, derivata dal codice, e ha predetto le soglie
esatte:** rotolante e **simmetrico**, innesco **+5,263%** / **4,762%** (il fattore 0,70 si semplifica
e la condizione diventa una condizione **sul mark**, non sullo stop).
**Il fatto e' confermato:** su 1443 giri i 15 `placed` sono **5 aperture + 7 ribilanci + 3 A POSIZIONE
FERMA** (21/08, `HOLD (a target)`, **0 ordini**, trigger spostato di **+5,74/+5,81/+5,38%** = appena
sopra la soglia predetta); e sul venue **l'ordine di stop e' 2,5 giorni piu' giovane della posizione
che protegge**.
🚨 **MA IL TIMORE E' REFUTATO, e va nel verso OPPOSTO:** uno stop che segue il prezzo **si allontana
dal mercato, quindi scatta MENO**. Alla cadenza che gira (**1h**) gli episodi su storia reale sono
**0-1 contro 1 del pavimento**, mai piu' di 1 in 30 giorni; e **nell'outage — l'unico scenario per cui
il bracket esiste — il ri-ancoraggio e' SPENTO per costruzione** (nessun giro, nessun ri-piazzamento)
**un episodio solo**. **Il 37,5% resta il costo di un episodio singolo, il margine 1,33× e' quello
vero, la gamba di WORST-DAY REGGE.**
🚨 **Due cose indipendenti da k, da sapere comunque:** (i) **il nome inganna** — *"disaster-SL 30%"*
suggerisce un massimo di perdita per trade che **non esiste**: su cicli a ingresso proprio il rotolante
lascia passare perdite oltre 30% **senza scattare** nel **0,03%/0,96-2,84%/7,22-13,33%** dei cicli
(24h/7g/30g) e il peggior DD dall'ingresso e' **60,6% BTC / 61,5% ETH**; (ii) 🚨 **TRAPPOLA VIVA:
l'accumulo e' funzione della CADENZA DEL CRON, e il docstring di `book_execute.py` prescrive "ogni
~230 minuti" mentre il cron gira OGNI ORA** — chi "correggesse" la cadenza verso il docstring
sposterebbe il libro sulla riga **4h, dove BTC RADDOPPIA gli scatti** (2 contro 1; a 24h ETH arriva a
5). **Il docstring e' sbagliato e la configurazione che gira e' quella giusta.**
⚠️ **Limite dichiarato: 0 ri-ancoraggi verso il BASSO osservati su 3** — 2 mesi di vita del libro in
**un solo regime** (BTC ~$66,5k → ~$78,6k), mai un calo del mark >4,76% con posizione aperta. **La
simmetria e' un fatto di CODICE** (un solo `abs()`, esercitato in entrambi i versi), **non un fatto
OSSERVATO**: la prima osservazione utile arriva al primo ribasso >5% con posizione aperta.
**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.