research(wave-0822): VOL-SIZE — il p-value del null di permutazione si cita col segno, non col decimale (3 ancore su 23)

This commit is contained in:
Adriano Dal Pastro
2026-08-22 17:24:10 +00:00
parent e8bbb92f8a
commit f975272ec8
4 changed files with 550 additions and 22 deletions
+37
View File
@@ -643,6 +643,12 @@ def main() -> None:
except Exception as ex:
print(f" non girato: {ex}")
imp = A.implausible_sharpe(bs)
print(f"\n implausible_sharpe sulla cella migliore: implausible={imp['implausible']} "
f"reasons={imp.get('reasons')}")
print(f" (Sharpe {imp.get('sharpe')}, maxDD {imp.get('maxdd')}, "
f"perdite sulle barre ATTIVE {imp.get('loss_frac')}, attive {imp.get('active_frac')})")
print("\n causalita' (tagli DENTRO la finestra dello skew, non all'80% della storia prezzi):")
for a in ASSETS:
f_, w_, sg_ = best.split("|")
@@ -798,6 +804,37 @@ def main() -> None:
P[c] = P[c].round(3)
print(P.to_string(index=False))
# ------------------------------------------------------------ 5. SOMMARIO
rule("5. SOMMARIO — cosa regge, cosa no, e cosa non e' misurabile con 75 giorni")
print("""
Q1 lo skew NON anticipa lo spot: e' lo spot che muove lo skew.
Il prezzo precede il RR con t da 3.1 a 9.4 su 8 test su 8 e su entrambi gli asset;
in avanti il |t| massimo su 16 test e' 2.35 contro un massimo atteso dal rumore di 2.08,
non replica sul secondo asset, e l'unica cella apparente perde i due terzi togliendo
4 giorni di rally su 24. La strategia giornaliera migliore su 18 celle fa Sharpe +2.61
con IC95% [-2.90, +5.86] e DSR 0.163 -> SCARTATO.
Q2 gate di rischio: NON MISURABILE su questa finestra, e la ragione e' strutturale.
Nei 75 giorni TP01 e' attivo 5 giorni su 75 e il suo maxDD e' 0.14%: non c'e' sinistro
da prevenire. Cio' che si vede: alle soglie z<-1.0 e z<-1.5 il gate spegne giorni in cui
TP01 era GIA' flat nel 100% dei casi -> 5a conferma della ridondanza col trend, ma su un
campione senza potenza. Il null de-levering gira e dice REFUTED per assenza di DD, non
per merito del baseline.
Q3 il risultato della sessione, e non e' una strategia: e' una CORREZIONE DI PREZZATURA.
Il f=0.73 di VRP01 e' replicato in modo indipendente (0.714 su 22 ingressi, 0.723 su 2.582
ore) e poi SCOMPOSTO. La causa maggiore NON e' lo skew:
struttura a termine 42% | spread denaro-lettera 30% | skew 25% | fit 2%
Il sleeve prezza un'opzione a 7 giorni con il DVOL a 30 giorni, che nel 90% delle ore sta
~3 punti di vol SOPRA l'ATM a 7 giorni -> sovrapprezza entrambe le gambe. Il "+0.8pp sulla
gamba corta" pubblicato il 30/07 (qui +0.20pp) e' la CANCELLAZIONE di due errori da ~3pp:
-2.97pp di termine e +2.79pp di skew. Guardando le gambe contro l'ATM a 7 giorni si vede
che il modello sbaglia su ENTRAMBE, non solo sull'ala.
E il pezzo grande CAMBIA SEGNO col regime: f_term 0.83 nel quartile basso di IV-rank ->
0.93 nel quartile alto, e 1.05 nelle ore in backwardation, mentre f_skew resta piatto
(0.93 -> 0.92). Cioe' l'errore piu' grande si annulla proprio dove il gate IV-rank fa
tradare il sleeve.
""")
rule(f"fine — {time.time()-t_start:.0f}s")