research: traiettoria di accumulo ricalcolata col fattore de-luck corretto
Il fattore agisce DUE volte e i due effetti pesano quasi uguale: alza il drift (si
accumula prima) E abbassa il bersaglio (il muro scende da $495k a $272k). Le colonne
li separano invece di sommarli alla cieca.
Mediana degli anni da $600 al capitale-rendita (block bootstrap, 3000 path, 25 anni):
dep./mese x0.60 muro $495k x0.89 muro $495k x0.89 muro $272k
(25/07) (solo drift) (26/07)
0 mai mai mai
250 22.4a (8% <20a) 19.6a (53%) 16.2a (91%)
500 19.6a (48%) 15.7a (94%) 12.4a (100%)
1000 14.8a (95%) 12.0a (100%) 9.0a (100%)
2000 10.0a (100%) 8.5a (100%) 6.0a (100%)
VALIDAZIONE: la colonna x0.60 riproduce ESATTAMENTE i numeri pubblicati il 25/07
(500/m -> 19.6a, 1000/m -> 14.8a) -> la replica e' fedele e le altre due colonne sono
confrontabili con quelle.
A 500 EUR/mese: dei ~7 anni guadagnati, ~4 vengono dal drift e ~3 dal bersaglio.
CIO' CHE NON CAMBIA: senza depositi il capitale-rendita non si raggiunge MAI (0% dei
path a 20 anni, a ogni fattore). L'accumulo viene dai versamenti, non dal rendimento:
correggere il x0.6 accorcia i tempi, non crea una via che non c'era.
Book, pesi, cron, config INVARIATI.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -472,9 +472,22 @@ Prima ondata di ricerca onesta su BTC/ETH certificati (5 track, harness condivis
|
|||||||
restano refutati, come BIGLIETTO (prop) no. Rendita a $600: €0.12/g → **€0.18/g** (centesimi:
|
restano refutati, come BIGLIETTO (prop) no. Rendita a $600: €0.12/g → **€0.18/g** (centesimi:
|
||||||
il fattore conta per il MURO e le soglie prop, non per il conto attuale).
|
il fattore conta per il MURO e le soglie prop, non per il conto attuale).
|
||||||
Cio' che NON dipende dalla lente: **la rendita perpetua vale ~45-55% del CAGR**, quindi ogni muro
|
Cio' che NON dipende dalla lente: **la rendita perpetua vale ~45-55% del CAGR**, quindi ogni muro
|
||||||
calcolato come `target/CAGR` sbaglia di un fattore ~2. Traiettoria (bootstrap,
|
calcolato come `target/CAGR` sbaglia di un fattore ~2.
|
||||||
de-luck): **0 depositi → 0% dei path in 20 anni**; €500/m mediana 19.6a; €1000/m mediana 14.8a
|
**TRAIETTORIA da $600, ricalcolata col fattore corretto (26/07).** Il fattore agisce **due
|
||||||
(⚠️ calcolata a ×0.6: col fattore corretto i tempi si accorciano, non ricalcolata).
|
volte**: alza il drift (si accumula prima) E abbassa il bersaglio (serve meno capitale), e i due
|
||||||
|
effetti pesano quasi uguale. Mediana degli anni per toccare il capitale-rendita:
|
||||||
|
| dep./mese | ×0.60 muro $495k (25/07) | ×0.89 muro $495k (solo drift) | ×0.89 muro $272k (26/07) |
|
||||||
|
|---|---|---|---|
|
||||||
|
| €0 | mai | mai | **mai** |
|
||||||
|
| €250 | 22.4a (8% entro 20a) | 19.6a (53%) | **16.2a (91%)** |
|
||||||
|
| €500 | 19.6a (48%) | 15.7a (94%) | **12.4a (100%)** |
|
||||||
|
| €1000 | 14.8a (95%) | 12.0a (100%) | **9.0a (100%)** |
|
||||||
|
| €2000 | 10.0a (100%) | 8.5a (100%) | **6.0a (100%)** |
|
||||||
|
✅ La colonna ×0.60 **riproduce esattamente** i numeri del 25/07 (19.6a / 14.8a) = validazione
|
||||||
|
indipendente della replica. ⚠️ **Cio' che NON cambia col fattore: senza depositi il
|
||||||
|
capitale-rendita non si raggiunge mai** (0% dei path a 20 anni a OGNI fattore) — l'accumulo
|
||||||
|
viene dai versamenti, non dal rendimento; e la mediana e' una MEDIANA (meta' dei path arriva
|
||||||
|
dopo, una quota non arriva affatto).
|
||||||
(3) **Diversificare NON crea reddito a pari nozionale — libera BUDGET DI RISCHIO.** Per tier:
|
(3) **Diversificare NON crea reddito a pari nozionale — libera BUDGET DI RISCHIO.** Per tier:
|
||||||
iso-nozionale 2 sleeve 5.98% → 4 sleeve 6.35% (nulla, il diversificatore a basso CAGR toglie vol e
|
iso-nozionale 2 sleeve 5.98% → 4 sleeve 6.35% (nulla, il diversificatore a basso CAGR toglie vol e
|
||||||
ritorno insieme); a **ISO-RISCHIO** (vol 15%) 7.51%/$395k → **9.25%/$321k (−19% di muro)**.
|
ritorno insieme); a **ISO-RISCHIO** (vol 15%) 7.51%/$395k → **9.25%/$321k (−19% di muro)**.
|
||||||
|
|||||||
@@ -173,6 +173,32 @@ Cambia la taglia dell'errore, e cambia che il numero e' misurato invece che scel
|
|||||||
Rendita sul conto attuale: EUR 0.12/g (×0.6) → **EUR 0.18/g** (×0.89). A questa taglia sono
|
Rendita sul conto attuale: EUR 0.12/g (×0.6) → **EUR 0.18/g** (×0.89). A questa taglia sono
|
||||||
centesimi: **il fattore conta per il MURO e per le soglie prop, non per il conto di oggi.**
|
centesimi: **il fattore conta per il MURO e per le soglie prop, non per il conto di oggi.**
|
||||||
|
|
||||||
|
### La traiettoria — il fattore agisce DUE volte
|
||||||
|
|
||||||
|
Correggere il fattore alza il drift (si accumula prima) **e** abbassa il bersaglio (serve meno
|
||||||
|
capitale). I due effetti pesano quasi uguale, quindi vanno separati invece che sommati alla cieca:
|
||||||
|
|
||||||
|
```
|
||||||
|
dep./mese ×0.60 muro $495k ×0.89 muro $495k ×0.89 muro $272k
|
||||||
|
(25/07) (solo drift) (26/07)
|
||||||
|
€0 mai mai mai
|
||||||
|
€250 22.4a (8% <20a) 19.6a (53%) 16.2a (91%)
|
||||||
|
€500 19.6a (48%) 15.7a (94%) 12.4a (100%)
|
||||||
|
€1000 14.8a (95%) 12.0a (100%) 9.0a (100%)
|
||||||
|
€2000 10.0a (100%) 8.5a (100%) 6.0a (100%)
|
||||||
|
```
|
||||||
|
|
||||||
|
✅ **Validazione indipendente:** la colonna ×0.60 riproduce **esattamente** i numeri pubblicati il
|
||||||
|
25/07 (€500/m → 19.6a, €1000/m → 14.8a). La replica e' fedele, quindi le altre due colonne sono
|
||||||
|
confrontabili con quelle.
|
||||||
|
|
||||||
|
A €500/mese: dei ~7 anni guadagnati, ~4 vengono dal drift e ~3 dal bersaglio piu' basso.
|
||||||
|
|
||||||
|
⚠️ **Cio' che il fattore NON cambia:** senza depositi il capitale-rendita **non si raggiunge mai**
|
||||||
|
(0% dei path a 20 anni, a ogni fattore). L'accumulo viene dai versamenti, non dal rendimento —
|
||||||
|
correggere il ×0.6 accorcia i tempi, non crea una via che non c'era. E la mediana e' una mediana:
|
||||||
|
meta' dei path arriva dopo, e una quota non arriva affatto.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. Regole trasferibili
|
## 5. Regole trasferibili
|
||||||
|
|||||||
@@ -67,6 +67,33 @@ def perp_and_wall(r: np.ndarray, k: float, gross_needed: float) -> tuple[float,
|
|||||||
return lo2, perp, cap
|
return lo2, perp, cap
|
||||||
|
|
||||||
|
|
||||||
|
def trajectory(r: np.ndarray, cap_needed: float, n_paths: int = 3000,
|
||||||
|
years: int = 25, seed: int = 725) -> dict:
|
||||||
|
"""Da $600 al capitale-rendita, stocastico (block bootstrap): stessa logica di
|
||||||
|
r0725_capcurve.part_d, parametrizzata sul fattore e sul bersaglio."""
|
||||||
|
rng = np.random.default_rng(seed)
|
||||||
|
n_days = 365 * years
|
||||||
|
paths = CC._boot_paths(r, n_paths, n_days, 20, rng)
|
||||||
|
out = {}
|
||||||
|
for dep_eur in (0, 250, 500, 1_000, 2_000):
|
||||||
|
dep = dep_eur * CC.EURUSD
|
||||||
|
cap = np.full(n_paths, 600.0)
|
||||||
|
hit = np.full(n_paths, -1, int)
|
||||||
|
for t in range(n_days):
|
||||||
|
cap = cap * (1.0 + paths[:, t])
|
||||||
|
if t % 30 == 0 and t > 0:
|
||||||
|
cap += dep
|
||||||
|
newly = (hit < 0) & (cap >= cap_needed)
|
||||||
|
hit[newly] = t
|
||||||
|
yrs = np.where(hit >= 0, hit / 365.0, np.nan)
|
||||||
|
fin = yrs[~np.isnan(yrs)]
|
||||||
|
out[dep_eur] = dict(
|
||||||
|
p50=float(np.percentile(fin, 50)) if len(fin) > 100 else float("nan"),
|
||||||
|
p10=float(np.percentile(fin, 10)) if len(fin) > 100 else float("nan"),
|
||||||
|
p20y=float((yrs <= 20).sum() / len(yrs)))
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
print("=" * 100)
|
print("=" * 100)
|
||||||
print(" r0726 — MURI DI CAPITALE col fattore de-luck MISURATO (era ×0.6 a occhio)")
|
print(" r0726 — MURI DI CAPITALE col fattore de-luck MISURATO (era ×0.6 a occhio)")
|
||||||
@@ -123,6 +150,36 @@ def main() -> None:
|
|||||||
print("\n (a questa taglia la differenza fra ×0.6 e ×0.89 sono centesimi al giorno:")
|
print("\n (a questa taglia la differenza fra ×0.6 e ×0.89 sono centesimi al giorno:")
|
||||||
print(" il fattore conta per il MURO e per le soglie prop, non per il conto attuale.)")
|
print(" il fattore conta per il MURO e per le soglie prop, non per il conto attuale.)")
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------- traiettoria
|
||||||
|
print("\n" + "=" * 100)
|
||||||
|
print(" TRAIETTORIA da $600 al capitale-rendita (block bootstrap, 3000 path, 25 anni)")
|
||||||
|
print("=" * 100)
|
||||||
|
print(" Il fattore agisce DUE VOLTE: alza il drift (si accumula piu' in fretta) E abbassa")
|
||||||
|
print(" il bersaglio (serve meno capitale). Le due colonne centrali separano gli effetti.")
|
||||||
|
cap_old = res[(0.60, 1.0)][2]
|
||||||
|
cap_new = res[(0.89, 1.0)][2]
|
||||||
|
scen = [
|
||||||
|
(0.60, cap_old, f"×0.60, muro ${cap_old:,.0f} (25/07)"),
|
||||||
|
(0.89, cap_old, f"×0.89, muro ${cap_old:,.0f} (solo drift)"),
|
||||||
|
(0.89, cap_new, f"×0.89, muro ${cap_new:,.0f} (26/07)"),
|
||||||
|
]
|
||||||
|
T = {}
|
||||||
|
for f, capn, lab in scen:
|
||||||
|
r = (base - (1.0 - f) * mu).values.astype(float)
|
||||||
|
T[lab] = trajectory(r, capn)
|
||||||
|
|
||||||
|
for dep in (0, 250, 500, 1_000, 2_000):
|
||||||
|
print(f"\n deposito {dep:,}/mese")
|
||||||
|
print(f" {'scenario':<34}{'p10':>8}{'MEDIANA':>10}{'P(entro 20a)':>14}")
|
||||||
|
for _f, _c, lab in scen:
|
||||||
|
d = T[lab][dep]
|
||||||
|
fm = (lambda v: f"{v:.1f}a" if np.isfinite(v) else " —")
|
||||||
|
print(f" {lab:<34}{fm(d['p10']):>8}{fm(d['p50']):>10}{d['p20y']:>13.0%}")
|
||||||
|
|
||||||
|
print("\n ⚠️ Restano vere le due cose che non dipendono dal fattore: senza depositi il")
|
||||||
|
print(" capitale-rendita non si raggiunge, e la mediana e' una MEDIANA (meta' dei")
|
||||||
|
print(" path arriva dopo, e una quota non arriva affatto).")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user