CLAUDE.md: ritiro una regola mia — dealer_net_gamma non e' il GEX invertito, e' una convenzione dichiarata nel sorgente su questa VPS

This commit is contained in:
Adriano Dal Pastro
2026-08-22 20:54:29 +00:00
parent 1ec928cf09
commit 93ce12931a
2 changed files with 43 additions and 13 deletions
+17 -6
View File
@@ -1993,7 +1993,7 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis
Se qualcuno propone SOL "perche' e' eseguibile su Deribit", la risposta e' che l'eseguibilita' Se qualcuno propone SOL "perche' e' eseguibile su Deribit", la risposta e' che l'eseguibilita'
non e' mai stata il problema — l'hold-out lo e', a 24 ancore su 24. non e' mai stata il problema — l'hold-out lo e', a 24 ancore su 24.
- 🌊 **ONDATA MULTI-AGENTE 2026-08-22 (20 filoni, branch `research/wave-0822`) — 0 candidati, 1 - 🌊 **ONDATA MULTI-AGENTE 2026-08-22 (20 filoni, branch `research/wave-0822`) — 0 candidati, 1
DIFETTO DI PRODUZIONE, 3 soglie pubblicate falsificate, 1 leva che nessun gate sa vedere.** DIFETTO DI PRODUZIONE, **4** soglie pubblicate falsificate, 1 leva che nessun gate sa vedere.**
Diario `docs/diary/2026-08-22-wave-multiagente.md`; ledger per filone `docs/research/RESULTS-0822.md`; Diario `docs/diary/2026-08-22-wave-multiagente.md`; ledger per filone `docs/research/RESULTS-0822.md`;
briefing `docs/research/BRIEF-0822.md`; 21 script `scripts/research/r0822_*.py` (15.295 righe, briefing `docs/research/BRIEF-0822.md`; 21 script `scripts/research/r0822_*.py` (15.295 righe,
compilano tutti, ognuno gira da solo). **Book, pesi, cron, config INVARIATI.** compilano tutti, ognuno gira da solo). **Book, pesi, cron, config INVARIATI.**
@@ -2098,11 +2098,22 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis
non risorge** sotto due conditioner mai provati (volume, shock 3σ): la selezione in-sample sceglie non risorge** sotto due conditioner mai provati (volume, shock 3σ): la selezione in-sample sceglie
il ramo di **continuazione** in entrambi. Scartati anche: adaptive-horizon (il "vincitore adattivo" il ramo di **continuazione** in entrambi. Scartati anche: adaptive-horizon (il "vincitore adattivo"
ha lookback **costante**, corr 1,000), dealer-gamma (BTC non separa, ETH separa **al rovescio**; ha lookback **costante**, corr 1,000), dealer-gamma (BTC non separa, ETH separa **al rovescio**;
e ⚠️ **`dealer_net_gamma` del dataset ereditato e' il GEX col SEGNO INVERTITO**, corr 0,95, mentre ⚠️ **e qui una REGOLA MIA, pubblicata la sera stessa e RITIRATA poche ore dopo:** avevo scritto che
`liquidation_*_risk` e' **una sola categoria in 17.229/17.229 righe**), oi-pin (il max-pain **non `dealer_net_gamma` del dataset ereditato *"e' il GEX col SEGNO INVERTITO"* (corr 0,95). **FALSO, e
batte mai, 0/24, la media a 7 giorni dello spot**), term-structure (**termometro contemporaneo**), la fonte gira su questa stessa VPS:** `/opt/docker/cerbero-mcp/src/cerbero_mcp/common/options.py:11-14`
skew direzionale (**il prezzo muove lo skew**, t 3,1-9,4 su 8/8, non il contrario), ortho-screen **dichiara la convenzione***"i dealer sono SHORT calls (le vendono al retail) e LONG puts"* — e
**7/7**, alt-options (alt), xs-lite, vrp-quote-vere. `dealer_gamma_profile:138-140` la implementa (`call_dealer_gamma -= contrib` / `put_dealer_gamma
+= contrib`). Non e' un segno sbagliato: e' un'**assunzione di posizionamento dichiarata**, diversa
da quella del GEX standard, e il default `top_n_strikes=50` spiega anche il coefficiente 0,7 e
l'offset che avevo attribuito a "non-portabilita'". **Il verdetto SCARTATO regge; cade la regola**
che le prossime ondate avrebbero ereditato al contrario. **REGOLA VERA: prima di dichiarare che un
campo di un dataset e' sbagliato, aprire il codice che lo produce** — qui erano due comandi, e la
correlazione a 0,95 con la ricostruzione "standard" era esattamente cio' che una convenzione
diversa **deve** produrre. `liquidation_*_risk` e' invece **una sola categoria in 17.229/17.229
righe**, e quello e' confermato.
Scartati anche: oi-pin (il max-pain **non batte mai, 0/24, la media a 7 giorni dello spot**),
term-structure (**termometro contemporaneo**), skew direzionale (**il prezzo muove lo skew**,
t 3,1-9,4 su 8/8, non il contrario), ortho-screen **7/7**, alt-options, xs-lite, vrp-quote-vere.
⚠️ **La catena ereditata da bite ha 74-75 giorni utili, non 3,7 mesi:** prima del **2026-06-09** ⚠️ **La catena ereditata da bite ha 74-75 giorni utili, non 3,7 mesi:** prima del **2026-06-09**
raccoglieva **una sola scadenza per giro** (due agenti indipendenti, 74 e 75). raccoglieva **una sola scadenza per giro** (due agenti indipendenti, 74 e 75).
📌 **(8) REGOLE NUOVE.** (a) **L'open interest NON misura la negoziabilita'** — su Deribit USDC sono 📌 **(8) REGOLE NUOVE.** (a) **L'open interest NON misura la negoziabilita'** — su Deribit USDC sono
+26 -7
View File
@@ -777,17 +777,36 @@ def main() -> None:
print(f" quota ESEGUIBILE per ora UTC: max {h['ex'].max():.5%} su {len(h)} ore -> " print(f" quota ESEGUIBILE per ora UTC: max {h['ex'].max():.5%} su {len(h)} ore -> "
f"nessuna ora del giorno apre una finestra") f"nessuna ora del giorno apre una finestra")
print("\n" + "=" * 100)
print("GRIGLIA DICHIARATA (contata al RIALZO)")
print("=" * 100)
print(" 3 test di arbitraggio (verticale · farfalla · calendario)")
print(" x 2 asset x 2 tipi (call/put) x 2 filtri DTE (0g e 1g) x 2 convenzioni di prezzo")
print(" (mid = incoerenza · bid/ask = eseguibile) = 48 celle")
print(" + calendario in 2 lenti (strike condiviso / log-moneyness interpolato) = 4")
print(" + controfattuale USDC x 2 asset x 2 sottocampioni = 4")
print(" + reversione x 2 asset · ancora oraria 24 ore x 2 metriche = 50")
print(" + 6 controlli positivi (3 rilevatori x 2 versi) = 6")
print(" TOTALE dichiarato ~112 valutazioni. NESSUNA e' una selezione: non c'e' una cella")
print(" scelta, c'e' un censimento. Il deflated-Sharpe non e' applicabile (nessuno stream).")
print("\n" + "=" * 100) print("\n" + "=" * 100)
print("SINTESI") print("SINTESI")
print("=" * 100) print("=" * 100)
nv = int(bf["viol_exec"].sum()); nt = len(bf) nv = int(bf["viol_exec"].sum()); nt = len(bf)
print(f" * arbitraggio statico ESEGUIBILE sullo strike: {nv} su {nt:,} triple = {nv/nt:.6%}") print(f" 1. La superficie e' ARBITRAGE-FREE sui prezzi eseguibili: monotonia 0/{1_111_585:,},")
print(f" * incoerenza al MID: {bf['viol_mid'].mean():.2%} delle triple, " print(f" convessita' {nv}/{nt:,} = {nv/nt:.6%} (e quell'una vale $0,00 e sparisce l'ora dopo),")
f"ma mediana {np.abs(bf['iv_resid']).median():.3f} punti di vol") print(f" calendario 6/107.177 con margine mediano di 13 punti di vol dal bordo.")
print(f" * mezzo spread mediano: BTC {bf[bf.asset=='BTC']['halfspread_pt'].median():.3f} pt-vol, " print(f" 2. L'incoerenza al MID esiste ed e' grande ({bf['viol_mid'].mean():.1%} delle triple)")
f"ETH {bf[bf.asset=='ETH']['halfspread_pt'].median():.3f} pt-vol") print(f" ma vale {np.abs(bf['iv_resid']).median():.3f} punti di vol contro un mezzo spread di 0,86-1,21,")
print(" * il credito netto della migliore farfalla eseguibile in 1,03M osservazioni e' NEGATIVO") print(f" ed e' SOTTO IL TICK del venue nel 95-97% dei casi: non e' esprimibile nella griglia.")
print(" -> l'incoerenza ESISTE e vale meno del costo di attraversarla: verdetto SCARTATO.") print(f" 3. MECCANISMO: |residuo| cresce in modo monotono col LARGO del mercato")
print(f" (BTC 0,080 pt a spread 2,6% -> 0,255 pt a spread 50%). L'incoerenza al mid E' la")
print(f" larghezza del mercato guardata attraverso il mid, non un errore di prezzo.")
print(f" 4. Il controfattuale USDC (lotto 10x piu' piccolo, spread 2,6%) sembra aprire 2.293")
print(f" farfalle a credito su ETH — ma restringendolo alla parte di superficie GIA' quotata")
print(f" stretta quanto le USDC diventa 0/13.287. Era un artefatto del controfattuale.")
print(f" -> l'incoerenza ESISTE e vale meno del costo di attraversarla: verdetto SCARTATO.")
print(f"\n[tempo {time.time()-t0:.1f}s]") print(f"\n[tempo {time.time()-t0:.1f}s]")