research(wave-0822): HL-EXEC refuta il muro dei 20k di XS01 e lo slippage come rischio #1 — e il 20k di venue e' un'altra cosa
This commit is contained in:
@@ -702,6 +702,41 @@ def main() -> None:
|
||||
print(" scoperta; se resta a drift 0, il vantaggio e' pura DECORRELAZIONE e non dipende da")
|
||||
print(" quell'ipotesi. Il numero, non la narrazione, dice quale delle due.")
|
||||
|
||||
hr("E-ter. IL BUCO CHE LA FINESTRA NON PUO' CHIUDERE — 2024-2026 non contiene un CRASH")
|
||||
print(" L'ottimizzazione toglie peso a TP01 (Sharpe 0.79 su questa finestra). Ma TP01 e' lo")
|
||||
print(" sleeve DIFENSIVO: il LOO del 26/07 misura il suo contributo hold-out NEGATIVO nel 99.1%")
|
||||
print(" delle ancore e conclude 'uno sleeve difensivo si giudica sul SINISTRO, non sul premio'.")
|
||||
print(" Su un conto funded la barriera morde PROPRIO nel sinistro. Qui la coppia crypto (che ha")
|
||||
print(" storia dal 2019, quindi il 2022 dentro) e' ri-ottimizzata sulle due finestre:")
|
||||
cry_full = pc.crypto_daily_tuples(1.0, 0.0).index
|
||||
W2 = [{"TP01": i / 8, "SKH01": 1 - i / 8} for i in range(9)]
|
||||
print(f"\n {'finestra':>26} {'giorni':>7} {'argmax TP/SKH':>15} {'leva':>6} {'J':>7} "
|
||||
f"{'J del 75/25':>12} {'Sharpe argmax':>14}")
|
||||
for st, lab in (("2019-03-14", "FULL 2019+ (col 2022)"), (START_WIN, "2024+ (senza crash)")):
|
||||
pairs = {}
|
||||
for w in W2:
|
||||
c = pc.crypto_daily_tuples(w["TP01"], w["SKH01"])
|
||||
c = c[c.index >= pd.Timestamp(st, tz="UTC")]
|
||||
pairs[wkey(w)] = (deluck(c["R"].values), np.minimum(c["m"].values, c["R"].values) - c["R"].values)
|
||||
nh = len(next(iter(pairs.values()))[0])
|
||||
ev2 = boot_idx(nh, EV_H, N_PATHS, seed=8230)
|
||||
fu2 = boot_idx(nh, FU_H, N_PATHS, seed=8231)
|
||||
res = []
|
||||
for k, (R_, G_) in pairs.items():
|
||||
for lv in LEVS:
|
||||
jj = (eval_sim(R_, G_, ev2, lv, "HYRO")["p_pass"]
|
||||
* funded_sim(R_, G_, fu2, lv, "HYRO", 100_000.0)["p_alive"])
|
||||
res.append((k, lv, jj, R_.mean() * 365 / (R_.std() * np.sqrt(365))))
|
||||
bk, blv, bj, bsh = max(res, key=lambda x: x[2])
|
||||
j75 = max(x[2] for x in res if x[0] == "75/25/0")
|
||||
print(f" {lab:>26} {nh:>7d} {bk.rsplit('/', 1)[0]:>15} {blv:>6.3f} {bj:>7.3f} "
|
||||
f"{j75:>12.3f} {bsh:>14.2f}")
|
||||
print("\n Se anche sulla finestra che CONTIENE il 2022 l'ottimo scarta TP01, la sua sotto-")
|
||||
print(" pesatura non e' un artefatto di finestra. Se invece li' TP01 pesa, allora la")
|
||||
print(" raccomandazione del 2024+ e' una scommessa sull'assenza di crash — e su una barriera")
|
||||
print(" di rovina quella scommessa la paghi una volta sola. **Questa finestra NON puo' dirlo")
|
||||
print(" per XS01**, che nasce nel 2024: il buco resta aperto per lui, per costruzione.")
|
||||
|
||||
# ---------------------------------------------------------------- F. VRP01 / GTAA01
|
||||
tick("E. banda ancora")
|
||||
hr("F. E GLI SLEEVE 'INUTILI A $600'? — l'asimmetria del 25/07 §4 vale per XS01, non per tutti")
|
||||
|
||||
Reference in New Issue
Block a user