research(wave-0822): GROWTH-POLICY — il libro gira al 7% di Kelly, e ogni gate del progetto e' cieco alla scala
This commit is contained in:
@@ -326,11 +326,11 @@ def main() -> None:
|
||||
V = CB.dvol_series(a)
|
||||
win = V[(V.index >= puts["ts"].min()) & (V.index <= puts["ts"].max())]
|
||||
hist = V[V.index < win.index[0]].to_numpy(float)
|
||||
print(f" {a}: DVOL nel campione min {win.min().1f} / mediana {win.median().1f} / "
|
||||
f"max {win.max().1f}")
|
||||
print(f" vs storia 2021+ ({len(hist)} giorni) la MEDIANA del campione sta al "
|
||||
f"{float((hist < win.median()).mean()).0%} pctl, il suo MASSIMO al "
|
||||
f"{float((hist < win.max()).mean()).0%} pctl")
|
||||
print(f" {a}: DVOL nel campione min {win.min():.1f} / mediana {win.median():.1f} / "
|
||||
f"max {win.max():.1f}")
|
||||
print(f" vs storia 2021+ ({len(hist)} giorni): la MEDIANA del campione sta al "
|
||||
f"{float((hist < win.median()).mean()):.0%} pctl, il suo MASSIMO al "
|
||||
f"{float((hist < win.max()).mean()):.0%} pctl")
|
||||
print("\n \u26a0\ufe0f Due statistiche diverse, da tenere distinte: CLAUDE.md cita «DVOL max al 24\u00b0/28\u00b0\n"
|
||||
" pctl» dal campione del 30/07. Un MASSIMO cresce con la finestra — e' una statistica\n"
|
||||
" di ESTREMO, non di livello. Per dire in che regime siamo la lente e' la MEDIANA, ed\n"
|
||||
@@ -368,6 +368,29 @@ def main() -> None:
|
||||
f"max {tr['ivrank'].max():.3f})")
|
||||
print(f" TOTALE: {passed}/{tot}. Il sleeve sarebbe stato FLAT per l'intero campione.")
|
||||
|
||||
print("\n QUANDO TORNERA' MISURABILE — il gate non e' chiuso per sempre, e la soglia e' un numero.")
|
||||
print(" Regola del 19/06: «rivalutare quando la catena cattura un crash». Un criterio senza\n"
|
||||
" numero non e' un criterio, quindi eccolo (IV-rank espandente causale, come nel sleeve):")
|
||||
for a in ASSETS:
|
||||
V = CB.dvol_series(a)
|
||||
vals = V.to_numpy(float)
|
||||
ivr = np.full(len(vals), np.nan)
|
||||
for i in range(1, len(vals)):
|
||||
ivr[i] = (vals[:i] < vals[i]).mean()
|
||||
ser = pd.Series(ivr, index=V.index).dropna()
|
||||
per_year = ser.groupby(ser.index.year).apply(lambda x: float((x > 0.30).mean()))
|
||||
thr = float(np.quantile(vals[:-1], 0.30))
|
||||
last_open = ser[ser > 0.30]
|
||||
since = (V.index[-1] - last_open.index[-1]).days if len(last_open) else None
|
||||
print(f" {a}: quota di giorni col gate APERTO per anno — "
|
||||
+ " ".join(f"{y}:{v:.0%}" for y, v in per_year.items()))
|
||||
print(f" DVOL oggi {vals[-1]:.1f} · serve DVOL > {thr:.1f} "
|
||||
f"(+{thr / vals[-1] - 1:.0%}) per riaprire il gate · ultimo giorno aperto "
|
||||
f"{last_open.index[-1]:%Y-%m-%d} ({since} giorni fa)")
|
||||
print(" → il campione non e' 'sfortunato': cade dentro un regime di vol bassa lungo e\n"
|
||||
" persistente. La misura giusta si potra' rifare quando quel numero sara' superato,\n"
|
||||
" e da allora servira' comunque un anno di settimane per avere un campione.")
|
||||
|
||||
ret = {a: (canon[a]["ST"].iloc[-1] / canon[a]["spot"].iloc[0] - 1.0) for a in ASSETS}
|
||||
print(f"\n E il sottostante nel campione: BTC {ret['BTC']:+.1%}, ETH {ret['ETH']:+.1%} — "
|
||||
f"vol implicita bassa E rialzo forte\n = il regime IDEALE per vendere put. "
|
||||
@@ -582,6 +605,13 @@ def main() -> None:
|
||||
if not W.empty:
|
||||
print(f"\n Peggior mark infra-settimana: mediana {W['frac'].median():.1%} del rischio, "
|
||||
f"minimo {W['frac'].min():.1%}")
|
||||
wmin = W.loc[W['frac'].idxmin()]
|
||||
print(f" Denominatore, per non fabbricare una discrepanza: qui il rischio e' "
|
||||
f"`width - credito`.\n"
|
||||
f" CLAUDE.md cita «-81,7% del capitale» per la STESSA settimana "
|
||||
f"({wmin['asset']} {wmin['exp']:%Y-%m-%d}):\n"
|
||||
f" e' lo stesso mark (${wmin['worst']:.2f}) diviso per la width nuda. Due "
|
||||
f"denominatori, un solo fatto.")
|
||||
wl = W[W["pnl"] > 0]
|
||||
print(f" Fra le sole settimane chiuse in UTILE ({len(wl)}/{len(W)}): mediana "
|
||||
f"{wl['frac'].median():.1%}, minimo {wl['frac'].min():.1%}")
|
||||
@@ -694,7 +724,7 @@ def main() -> None:
|
||||
|
||||
1. IL CAMPIONE NON CONTIENE LA STRATEGIA. 0 settimane su 19 passano il gate IV-rank>0.30
|
||||
che E' l'alpha di VRP01. Il campione e' vol implicita al 24-28 percentile E un rialzo
|
||||
del +25%/+57%: il regime migliore possibile per vendere put, non uno neutro.
|
||||
forte del sottostante: il regime migliore possibile per vendere put, non uno neutro.
|
||||
Le 10 settimane per asset (non 16: prima del 2026-06-09 la finestra 4-10 DTE non
|
||||
esiste) danno 10/10 vincenti su BTC. La lente giusta non e' lo Sharpe, e' la regola
|
||||
del tre: 0 perdite su 10 lascia un tasso vero fino al 30%, su un payoff che perde
|
||||
|
||||
Reference in New Issue
Block a user