research(wave-0822): TP01-SINISTRO — l'allarme e' falsificato nel verso; il rischio dell'ottimo funded e' XS01, non TP01
This commit is contained in:
@@ -495,6 +495,10 @@ def main() -> None: # noqa: C901
|
||||
a_sin = max(tab, key=lambda w: tab[w]["sin"][1]["J"])
|
||||
print(f"\n argmax: 2019+ -> TP01 {a_full:.3f} | 2024+ -> TP01 {a_rec:.3f} | "
|
||||
f"SOLO-SINISTRO -> TP01 {a_sin:.3f}")
|
||||
print(f" ⚠️ RISOLUZIONE: un LIVELLO di J ha errore MC ~{np.sqrt(0.25/N_PATHS):.3f} "
|
||||
f"(N={N_PATHS}) -> celle entro ~0.02 NON sono distinguibili, e infatti 0.375 e 0.500")
|
||||
print(" si scambiano il posto fra semi diversi. La lettura e' 'la regione 0.25-0.50',")
|
||||
print(" non 'il punto 0.375' (stessa lezione del null dei tilt casuali di PROP-ALLOC).")
|
||||
print(" ⚠️ La colonna SOLO-SINISTRO e' una lente ESTREMA e va letta come tale: l'anno intero")
|
||||
print(" e' fatto di soli blocchi di crash (4 episodi ricampionati). Non e' uno scenario")
|
||||
print(" plausibile, e' il **limite superiore del danno**: se il verso della risposta e' lo")
|
||||
@@ -748,8 +752,9 @@ def main() -> None: # noqa: C901
|
||||
(0.125, 0.375, 0.50), (0.25, 0.25, 0.50), (0.375, 0.125, 0.50)]
|
||||
com = xs.index.intersection(IDX[i_rec:])
|
||||
xs_al = xs.reindex(com)
|
||||
LEV_COM = 0.625 # leva comune per il blocco a XS01=50% (la minima fra le tre righe)
|
||||
print(f"\n {'TP/SKH/XS':>16} {'ipotesi XS':>12} {'leva':>6} {'J normale':>10} "
|
||||
f"{'P(viv|replay peggiore)':>24} {'shock di rottura':>18}")
|
||||
f"{'P(viv|replay pegg.)':>21} {'idem @0.625x':>14} {'shock di rottura':>18}")
|
||||
for cfg in W3:
|
||||
wtp, wsk, wxs = cfg
|
||||
base = wtp + wsk
|
||||
@@ -767,7 +772,7 @@ def main() -> None: # noqa: C901
|
||||
bfu = PA.boot_idx(nn, HORIZON, N_PATHS, seed=8302)
|
||||
lab = f"{int(round(wtp*100))}/{int(round(wsk*100))}/{int(round(wxs*100))}"
|
||||
|
||||
def build(hyp: str, shock: float = 0.0):
|
||||
def build(hyp: str, shock: float = 0.0, lev_: float | None = None):
|
||||
segsR, segsG = [], []
|
||||
for t in epis:
|
||||
rc = base * (crypto(wtp_n)[0][t:t + EPI_LEN] - offc)
|
||||
@@ -790,16 +795,16 @@ def main() -> None: # noqa: C901
|
||||
worst = 1.0
|
||||
for k, g2 in enumerate(sg):
|
||||
fu = splice_paths(bfu, np.arange(g2[0], g2[1]), seed=8320 + k)
|
||||
worst = min(worst, J_of(Rp, Gp, evn, fu, lv)["p_alive"])
|
||||
worst = min(worst, J_of(Rp, Gp, evn, fu, lv if lev_ is None else lev_)["p_alive"])
|
||||
return worst
|
||||
|
||||
if wxs == 0:
|
||||
print(f" {lab:>16} {'n/a (no XS)':>12} {lv:>6.3f} {on['J']:>10.3f} "
|
||||
f"{build('A-flat'):>24.1%} {'-':>18}")
|
||||
f"{build('A-flat'):>21.1%} {build('A-flat', lev_=LEV_COM):>14.1%} {'-':>18}")
|
||||
continue
|
||||
for hyp in ("A-flat", "B-peggiore"):
|
||||
print(f" {lab:>16} {hyp:>12} {lv:>6.3f} {on['J']:>10.3f} "
|
||||
f"{build(hyp):>24.1%} {'-':>18}")
|
||||
f"{build(hyp):>21.1%} {build(hyp, lev_=LEV_COM):>14.1%} {'-':>18}")
|
||||
lo, hi = 0.0, 0.40 # shock di rottura: bisezione su P(vivo) = 50%
|
||||
for _ in range(9):
|
||||
mid = 0.5 * (lo + hi)
|
||||
@@ -807,11 +812,22 @@ def main() -> None: # noqa: C901
|
||||
lo = mid
|
||||
else:
|
||||
hi = mid
|
||||
print(f" {lab:>16} {'C-shock':>12} {lv:>6.3f} {on['J']:>10.3f} {'(50% per def.)':>24} "
|
||||
f"{-lo:>17.1%}")
|
||||
lo2, hi2 = 0.0, 0.40
|
||||
for _ in range(9):
|
||||
mid = 0.5 * (lo2 + hi2)
|
||||
if build("C-shock", mid, lev_=LEV_COM) >= 0.50:
|
||||
lo2 = mid
|
||||
else:
|
||||
hi2 = mid
|
||||
print(f" {lab:>16} {'C-shock':>12} {lv:>6.3f} {on['J']:>10.3f} {'(50% per def.)':>21} "
|
||||
f"{'(50% per def.)':>14} {-lo:>17.1%} / {-lo2:.1%} @0.625x")
|
||||
print("\n Lettura: 'shock di rottura' = il crollo di UN giorno su XS01 che porta P(vivo) al")
|
||||
print(" 50% quando il crash arriva. Piu' e' piccolo, piu' l'allocazione XS01-pesante e' a un")
|
||||
print(" giorno di coda dalla morte. Non e' una previsione: e' la taglia della scommessa.")
|
||||
print(" ⚠️ Le ultime tre righe hanno XS01 FISSO al 50% e differiscono SOLO per come si")
|
||||
print(" divide il resto fra TP01 e SKH01: e' li' che si legge se TP01 fa da zavorra contro")
|
||||
print(" l'ignoto di XS01. **La colonna @0.625x e' quella da leggere**, perche' a leva libera")
|
||||
print(" la riga con meno TP01 sceglie una leva piu' bassa e vince per quello.")
|
||||
tick("§6 XS01")
|
||||
|
||||
# ============================================================ §7. BANDA + VERDETTO
|
||||
@@ -917,9 +933,14 @@ def main() -> None: # noqa: C901
|
||||
print(" de-levering**, in una veste nuova: 'protezione dal crash' invece di 'meno DD'.")
|
||||
print(" 4) Il rischio vero dell'ottimo di PROP-ALLOC NON e' TP01 sotto-pesato: e' XS01 al")
|
||||
print(" 50% con un comportamento nel crash che il campione non contiene. Un solo giorno")
|
||||
print(" a -8% su XS01 dimezza la sopravvivenza; con TP01 al 50% ne serve uno a -12.3%.")
|
||||
print(" **Se TP01 vale qualcosa su un conto funded, vale come zavorra contro l'ignoto di")
|
||||
print(" XS01, non come assicurazione contro il crash di BTC/ETH — che SKH01 fa meglio.**")
|
||||
print(" a ~-10% su XS01 dimezza la sopravvivenza quando il crash arriva.")
|
||||
print(" ⚠️ IPOTESI MIA, NATA E REFUTATA IN SESSIONE: avevo scritto che TP01 fa da")
|
||||
print(" ZAVORRA contro quell'ignoto (a XS01 25% serviva uno shock -12.3% contro -8.0% a")
|
||||
print(" XS01 50%). Il controllo a **XS01 FISSO al 50% e leva comune** lo smonta: lo shock")
|
||||
print(" di rottura e' -10.1 / -10.2 / -10.2% muovendo TP01 da 12% a 38%, cioe' INVARIANTE,")
|
||||
print(" e la sopravvivenza sotto l'ipotesi severa CALA (74.1 -> 72.6 -> 64.7%). Cio' che")
|
||||
print(" protegge dall'ignoto di XS01 e' **meno XS01**, non piu' TP01: il primo numero")
|
||||
print(" confrontava due pesi di XS01 diversi e attribuiva a TP01 il merito dell'altro.")
|
||||
print("\n ⚠️ COSA MI SMENTIREBBE: un crash in cui SKH01 NON si gira short in tempo (gap")
|
||||
print(" notturno oltre lo stop, o venue fermo). Il campione ne ha quattro e in tutti e")
|
||||
print(" quattro SKH01 ha girato. Basterebbe un episodio in cui SKH01 perde quanto il")
|
||||
|
||||
Reference in New Issue
Block a user