research(wave-0822): TERM-STRUCTURE e OI-PIN scartati — la catena ereditata ha 74 giorni utili, non 3,7 mesi

This commit is contained in:
Adriano Dal Pastro
2026-08-22 17:19:45 +00:00
parent 75606d0f44
commit 110f894bdf
3 changed files with 108 additions and 6 deletions
+22
View File
@@ -549,6 +549,28 @@ def main() -> None:
print(" -> il massimo in avanti e' quello che il rumore produce da solo. LAG INDIETRO:")
print(f" |t| minimo = {LL[LL['minuti'] < 0]['t_dRR'].abs().min():.2f} su "
f"{int((LL['minuti'] < 0).sum())} test, tutti dello STESSO segno.")
print("\n Robustezza — il COLLETTORE cambia a meta' campione (cerbero-bite: ~10 giri/ora,")
print(" fino al 2026-07-30; raccolta nostra: 1 giro/ora al minuto :25). Stessa misura sui due")
print(" tronconi, piu' la copertura oraria (il guasto quote-vuote del 29-30/07 e' qui dentro):")
TAGLIO = pd.Timestamp("2026-07-30 20:00", tz="UTC")
for a in ASSETS:
S = cm30[a]
for nome, m in (("bite ", S.index < TAGLIO), ("nostra ", S.index >= TAGLIO)):
sub = S[m]
if len(sub) < 100:
continue
L2 = leadlag(sub, a)
av = L2[L2["minuti"].isin([5, 15, 60])]["corr_dRR"].to_numpy()
ind = L2[L2["minuti"].isin([-15, -60])]["corr_dRR"].to_numpy()
gg = len(np.unique(pd.DatetimeIndex(sub.index).date))
print(f" {a} {nome} ore={len(sub):5d} giorni={gg:3d} ({len(sub)/max(gg,1):.1f} ore/giorno)"
f" avanti(+5/+15/+60m) {np.round(av,3)} indietro(-15/-60m) {np.round(ind,3)}")
gio = pd.Series(1, index=pd.DatetimeIndex(cm30[ASSETS[0]].index)).groupby(
pd.DatetimeIndex(cm30[ASSETS[0]].index).date).sum()
peggio = gio.nsmallest(4)
print(f" giorni con MENO ore di superficie ricostruibile (BTC): "
f"{ {str(k): int(v) for k, v in peggio.items()} } su 24 attese")
print("\n Controllo POSITIVO — la stessa misura con l'ancora ASSUNTA a :30 dell'ora:")
FF = pd.concat([leadlag_ancora_sbagliata(cm30[a], a) for a in ASSETS], ignore_index=True)
print(FF.to_string(index=False))