research(capitale): aggiunta la riga 10k al filone orizzonte-10

10.000 EUR + 500/mese: P(entro 10 anni) 33.9% (contro 19.7% con 5k), mediana 10.7 anni,
rendita a 10 anni 42.25 EUR/g. Raddoppia quasi la probabilita' ma resta fuori dal vincolo.

Versamento richiesto con lump 10k: P=50% -> 604 EUR/m, P=75% -> 793, P=90% -> 975.
Cioe' 5.000 EUR in piu' oggi valgono 77 EUR/mese per 10 anni (~9.240): meno del 2.45x
misurato su 20 anni, perche' a orizzonte corto il lump compone meno.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Adriano Dal Pastro
2026-07-27 19:37:34 +00:00
parent fa18621eb3
commit 067c89fc16
+4 -4
View File
@@ -38,7 +38,7 @@ import r0727_lumpsum_split as LS # noqa: E402
ETA = 49 ETA = 49
ORIZZONTE = 10 ORIZZONTE = 10
LUMPS = (3_000.0, 5_000.0, 6_043.0) LUMPS = (3_000.0, 5_000.0, 6_043.0, 10_000.0) # 10k = oltre XEON: tocca VWCE/SPYM/PPFB
DEPS = (500.0, 800.0, 1_000.0, 1_500.0, 2_000.0) DEPS = (500.0, 800.0, 1_000.0, 1_500.0, 2_000.0)
CONFIDENZE = (0.50, 0.75, 0.90) CONFIDENZE = (0.50, 0.75, 0.90)
CONC = {"Deribit": 1.0} CONC = {"Deribit": 1.0}
@@ -128,13 +128,13 @@ def main() -> None:
print("\n" + "=" * 100) print("\n" + "=" * 100)
print(f" (3) SE QUEL NUMERO NON C'E': CHE RENDITA SI COMPRA IN {ORIZZONTE} ANNI") print(f" (3) SE QUEL NUMERO NON C'E': CHE RENDITA SI COMPRA IN {ORIZZONTE} ANNI")
print("=" * 100) print("=" * 100)
print(f"\n (lump €5.000; rendita NETTA mediana a {ORIZZONTE} anni, e in quanti anni") print(f"\n (lump €10.000; rendita NETTA mediana a {ORIZZONTE} anni, e in quanti anni")
print(" si arriverebbe invece ai €50/g)") print(" si arriverebbe invece ai €50/g)")
print(f"\n {'dep/mese':>10}{'cap. mediano a 10a':>21}{'rendita a 10a':>16}" print(f"\n {'dep/mese':>10}{'cap. mediano a 10a':>21}{'rendita a 10a':>16}"
f"{'anni per €50/g':>17}{'eta a quel punto':>19}") f"{'anni per €50/g':>17}{'eta a quel punto':>19}")
for dep in DEPS: for dep in DEPS:
a = p_entro(series, 5_000.0, dep, years=ORIZZONTE) a = p_entro(series, 10_000.0, dep, years=ORIZZONTE)
b = LS.simulate(CONC, series, 0.0, lump_usd=5_000.0 * CC.EURUSD, dep_eur=dep, years=25) b = LS.simulate(CONC, series, 0.0, lump_usd=10_000.0 * CC.EURUSD, dep_eur=dep, years=25)
rend = a["median_end"] * perp * (1 - CC.TAX_RATE) / 365.0 / CC.EURUSD rend = a["median_end"] * perp * (1 - CC.TAX_RATE) / 365.0 / CC.EURUSD
yrs = b["median_yrs"] yrs = b["median_yrs"]
print(f" {dep:>9,.0f}{a['median_end']:>20,.0f}${rend:>13.2f} €/g" print(f" {dep:>9,.0f}{a['median_end']:>20,.0f}${rend:>13.2f} €/g"