research(wave-0822): VRP-QUOTE-VERE scartato — e collect_chain raccoglie la famiglia di contratti che il conto non puo' marginare
This commit is contained in:
@@ -460,6 +460,7 @@ def main() -> None:
|
||||
P(f" {'hte':>4} {'rule':>5} {'Δ vs adj_r':>12} {'Δ vs jit_r':>12}"
|
||||
f" {'Δ vs rand':>12} {'Δ vs mid':>12} {'Δ vs mr7':>12}")
|
||||
npos = ntot = 0
|
||||
npos_c = ntot_c = 0 # solo i null PULITI (bilanciati nel segno): rand/mid/mr7
|
||||
for hte in HTE_GRID:
|
||||
e = ev[ev["hte"] == hte]
|
||||
for rl in RULES:
|
||||
@@ -467,12 +468,25 @@ def main() -> None:
|
||||
for p in (f"adj_{rl}", f"jit_{rl}") + PLACEBOS_GLOB:
|
||||
dd = e[f"tw_{rl}"].to_numpy(float) - e[f"tw_{p}"].to_numpy(float)
|
||||
m, lo, hi, _ = cluster_boot(dd, e["exp"].to_numpy())
|
||||
cells.append(f"{m:>11.5f}{'*' if (np.isfinite(lo) and lo > 0) else ' '}")
|
||||
ntot += 1
|
||||
npos += int(np.isfinite(lo) and lo > 0)
|
||||
sig = bool(np.isfinite(lo) and lo > 0)
|
||||
cells.append(f"{m:>11.5f}{'*' if sig else ' '}")
|
||||
ntot += 1; npos += int(sig)
|
||||
if p in PLACEBOS_GLOB:
|
||||
ntot_c += 1; npos_c += int(sig)
|
||||
P(f" {hte:>4} {rl:>5} " + " ".join(cells))
|
||||
P(f" celle (rule x hte x placebo) in cui lo SPECIALE batte il placebo con IC95>0:"
|
||||
f" {npos}/{ntot} (atteso per caso ~{0.025 * ntot:.0f})")
|
||||
P(f" ... contando SOLO i null bilanciati nel segno (rand/mid/mr7): {npos_c}/{ntot_c}"
|
||||
f" (atteso ~{0.025 * ntot_c:.0f}) <-- e' QUESTO il numero da citare")
|
||||
P("\n ⚠ UN PLACEBO SI CONTROLLA PRIMA DI USARLO: se il suo segno non e' bilanciato rispetto")
|
||||
P(" alla regola, il Δ non misura l'informazione, misura il ROVESCIAMENTO del segnale.")
|
||||
P(f" quota di eventi con sign(K_placebo-S) == sign(K_regola-S), su tutti gli hte:")
|
||||
for rl in RULES:
|
||||
agr = {p: float(np.nanmean(np.sign(ev[f"d_{rl}"]) == np.sign(ev[f"d_{p}"])))
|
||||
for p in (f"adj_{rl}", f"jit_{rl}") + PLACEBOS_GLOB}
|
||||
P(" " + rl + ": " + " ".join(f"{k}={v:.2f}" for k, v in agr.items()))
|
||||
P(" un null PULITO sta vicino a 0.50 (rand/mid/mr7). Sotto ~0.35 il placebo e' la")
|
||||
P(" strategia INVERTITA e il suo Δ va letto come ~2x il segnale, non come un test.")
|
||||
P(" LETTURA: `adj_r`/`jit_r` chiedono 'e' proprio QUELLO strike?'; `mid`/`mr7` chiedono")
|
||||
P(" 'serve l'open interest, o basta il centro recente del prezzo?'. La seconda e' la")
|
||||
P(" domanda che uccide o salva il filone.")
|
||||
@@ -554,7 +568,9 @@ def main() -> None:
|
||||
f" · WR-knob atteso 1/(1+RR) = {1 / (1 + rr):.1%}" if np.isfinite(rr) else " RR n.d.")
|
||||
P(f" expectancy NETTA per trade: {np.mean(net):+.5f} ({np.mean(net) * 100:+.3f}%)"
|
||||
f" | in R (R = distanza dal livello): {np.mean(net / np.maximum(dk, 1e-6)):+.3f} R")
|
||||
P(f" a fee ZERO: {np.mean(tw):+.5f} -> {'l edge lordo non esiste' if np.mean(tw) <= 0 else 'edge lordo positivo, la fee lo mangia?'}")
|
||||
P(f" a fee ZERO: {np.mean(tw):+.5f} · la fee costa {2 * FEE_SIDE_REAL:.5f}/trade ="
|
||||
f" {200 * FEE_SIDE_REAL / max(np.mean(tw), 1e-9):.0f}% del lordo"
|
||||
f" -> {'MORTE PER FEE' if np.mean(tw) <= 2 * FEE_SIDE_REAL else 'la fee NON e il vincolo'}")
|
||||
|
||||
dbest, info = strat_daily(ev, best["rule"], int(best["hte"]),
|
||||
None if best["band"] == "nessuna" else (0.002, 0.03),
|
||||
@@ -652,6 +668,10 @@ def main() -> None:
|
||||
def _fn(rule):
|
||||
return lambda h: strat_daily(ev, rule, int(h), (0.002, 0.03), "sign", "all",
|
||||
FEE_SIDE_REAL)[0]
|
||||
P(" ⚠ le 8 ancore hte NON sono 8 osservazioni indipendenti: guardano le STESSE 73 scadenze")
|
||||
P(" e lo STESSO percorso di prezzo. '8/8 positive' dice che il segno non dipende")
|
||||
P(" dall'ancora, NON che l'effetto sia significativo — quello lo dice il cluster-bootstrap")
|
||||
P(" della sezione [4], che sui placebo senza opzioni (mid/mr7) NON e' significativo.")
|
||||
for other in ("mr7", "mid", "oi", "rand"):
|
||||
dl = A.anchor_luck_delta(_fn("mp"), _fn(other), offsets=list(HTE_GRID))
|
||||
P(f" Δ appaiato mp-{other:<4}: mediana {dl.get('median_paired'):+.2f}"
|
||||
@@ -676,7 +696,10 @@ def main() -> None:
|
||||
P("\n[8] SINTESI")
|
||||
n_fact_pos = int((F.lo > 0).sum())
|
||||
P(f" fatto : {n_fact_pos}/{len(F)} celle (rule x hte) con pinning significativo a IC95")
|
||||
P(f" null loc. : {npos}/{ntot} confronti appaiati in cui il livello 'speciale' batte il placebo")
|
||||
P(f" null loc. : {npos}/{ntot} confronti appaiati vinti dal livello 'speciale';"
|
||||
f" {npos_c}/{ntot_c} contando solo i null PULITI")
|
||||
P(f" di questi, contro il placebo SENZA OPZIONI (media 7g dello spot): "
|
||||
f"{sum(1 for h in HTE_GRID for rl in RULES if (lambda t: np.isfinite(t[1]) and t[1] > 0)(cluster_boot((ev[ev.hte == h][f'tw_{rl}'] - ev[ev.hte == h]['tw_mr7']).to_numpy(float), ev[ev.hte == h]['exp'].to_numpy())))}/24")
|
||||
P(f" strategia : miglior Sharpe della griglia {mb['sharpe']:+.2f} su {mb['n']} giorni, DSR {dsr:.3f}")
|
||||
P(f" marginale : {mv.get('marginal_verdict')} (strutturalmente non ADDS-abile a 3,7 mesi)")
|
||||
P("=" * 100)
|
||||
|
||||
Reference in New Issue
Block a user