From 66b4b2b9c079da46d60de83c3f2a481ec8c7d72b Mon Sep 17 00:00:00 2001 From: Adriano Dal Pastro Date: Sun, 26 Jul 2026 21:38:09 +0000 Subject: [PATCH] research: tabella anni parametrizzabile da riga di comando "E con 1000 al mese?" non deve richiedere di modificare lo script: importo mensile e versamento iniziale passano come argomenti. Modificarlo ogni volta significherebbe avere due versioni dei numeri in giro senza sapere quale ha prodotto cosa. uv run python scripts/research/r0726_tabella_anni.py # EUR 500/mese uv run python scripts/research/r0726_tabella_anni.py 1000 # altro mensile uv run python scripts/research/r0726_tabella_anni.py 1000 10000 # mensile + iniziale EUR 1.000/mese: traguardo al capitale mediano all'anno 9 (2035) invece del 12; P(traguardo) 80% a 10 anni contro 16%. Il totale versato a 20 anni raddoppia ($270.917 vs $138.482). Co-Authored-By: Claude Opus 5 (1M context) --- scripts/research/r0726_tabella_anni.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/research/r0726_tabella_anni.py b/scripts/research/r0726_tabella_anni.py index 9b842df..303a27d 100644 --- a/scripts/research/r0726_tabella_anni.py +++ b/scripts/research/r0726_tabella_anni.py @@ -14,7 +14,9 @@ TP01+SKH01 sul path reale, fisco 33%, EURUSD 1.09, NESSUN rischio di venue e NES dell'edge — i due scenari peggiori sono misurati altrove (`r0726_venue_risk`, `r0726_decadimento`) e vanno letti insieme a questa. - uv run python scripts/research/r0726_tabella_anni.py + uv run python scripts/research/r0726_tabella_anni.py # €500/mese (il piano) + uv run python scripts/research/r0726_tabella_anni.py 1000 # altro importo mensile + uv run python scripts/research/r0726_tabella_anni.py 1000 10000 # mensile + versamento iniziale """ from __future__ import annotations @@ -34,7 +36,10 @@ import r0726_deposits as DP # noqa: E402 OGGI = pd.Timestamp("2026-07-26") CONTO = 596.92 -LUMP_EUR, MENSILE_EUR = 5_000.0, 500.0 +# Parametrizzabili da riga di comando: chiedere "e con X al mese?" non deve richiedere di +# modificare lo script (e quindi di avere due versioni dei numeri in giro). +MENSILE_EUR = float(sys.argv[1]) if len(sys.argv) > 1 else 500.0 +LUMP_EUR = float(sys.argv[2]) if len(sys.argv) > 2 else 5_000.0 N_PATHS, BLOCK, YEARS, SEED = 6000, 20, 20, 20260726 SOGLIE = [(13_000, "GTAA01 entra nel book"), @@ -66,7 +71,7 @@ def main() -> None: snaps[y], paid_at[y] = cap.copy(), paid print("=" * 104) - print(" PIANO €5.000 SUBITO + €500/MESE — anno per anno") + print(f" PIANO €{LUMP_EUR:,.0f} SUBITO + €{MENSILE_EUR:,.0f}/MESE — anno per anno") print("=" * 104) print(f" partenza ${start:,.0f} · bersaglio €{CC.TARGET_EUR_DAY:.0f}/g = ${wall:,.0f} " f"· rendita perpetua {perp:.2%} · fattore d'ancora ×{DP.DELUCK}")