Monte Carlo Tool zur Portfoliosimulation
Hi liebe Community,
ich wollte mit euch ein Tool teilen, das ich zur Simulation von Portfolioverläufen gebaut habe. Bei den meisten herkömmlichen Onlinerechnern stört mich, dass immer mit einer festen Rendite gerechnet wird (z.B. 7% p.a. für 40 Jahre). In der Realität kriegt man nie genau 7% jedes Jahr und dieses Sequence-of-Return-Risko lässt sich nur sinnvoll über eine Monte Carlo Simulation abbilden.
https://frontpointfinance.streamlit.app/
Das Tool funktioniert in zwei Richtungen: Ansparphase und Entnahmephase. Ich erkläre einmal die Inputs und zeige dann zwei Beispiele.
---
Inputs
Simulation Parameters
- Number of simulations – Anzahl der simulierten Verläufe. Ab 1.000 kriegt man halbwegs glatte Verteilungen. Wer es genauer mag, einfach höher stellen.
- Starting year / Runtime – selbsterklärend.
Capital & Cashflows
- Starting portfolio value – aktueller Portfoliostand.
- Annual amount saved/withdrawn – Hier entscheidet sich ob angespart oder entnommen wird: positiv = Ansparphase, negativ = Entnahmephase. Alles jährlich (500 €/Monat → 6.000 €/Jahr im Rechner).
- Inflation rate – beeinflusst die jährlichen Ein-/Auszahlungen (steigende Lebenshaltungskosten in der Entnahmephase, Gehaltserhöhungen in der Ansparphase (lol)). Wird auch für die inflationsbereinigte Kaufkraft am Ende verwendet.
- Capital gain tax – 25% Kapitalertragssteuer wird direkt beim Verkauf abgezogen. Der Bruttobetrag wird so berechnet, dass nach Steuer der gewünschte Nettobetrag übrig bleibt (−30.000 € Entnahme → tatsächlich werden 40.000 € abgezogen). ⚠️ Mir ist bewusst, dass die Steuer eigentlich nur auf Gewinne anfällt. Aber das habe ich bis jetzt nicht berücksichtigt. Ist aktuell eine große Schwäche am Rechner und eine größere Ungenauigkeit. Bei Zeit, passe ich das mal an. Aber aktuell wird damit nur konservativer gerechnet.
Stock Allocation
Der Rechner arbeitet mit nur zwei Komponenten: Aktien und Fixed Income (Tagesgeld, Geldmarktfonds, etc.).
- Share of stocks – gewünschte Aktienquote.
- Rebalance – jährliche Prüfung, ob die Aktienquote noch innerhalb der Toleranz liegt. Falls nicht, wird beim untergewichteten Teil angespart bzw. beim übergewichteten entnommen.
- Probability density function – Hier kann man die Wahrscheinlichkeitsfunktion angeben, aus der die jährliche Rendite gezogen wird. Default ist hier eine Student-t Verteilung, da dort die Tails etwas ausgeprägter sind als bei einem Gauß.
- Average annual return / Std. deviation – Durchschnittliche Jahresrendite und Standardabweichung des ETFs. Default auf den FTSE All World gesetzt.
- Die simulierten Renditen beinhalten eine leichte Autokorrelation (gute Jahre folgen tendenziell auf gute Jahre und umgekehrt) und sind dividendenbereinigt (Gesamtrendite = Dividende + Kursgewinne).
- TER – ETF-Kosten.
- Annual dividend payout – Jährliche Dividende. Wird automatisch entnommen, nach Steuern reinvestiert (Ansparphase) oder als Teil der Auszahlung verwendet (Entnahmephase). Wenn die Dividende größer ist als die Entnahme, wird der Rest auch wieder reinvestiert. ⚠️ Auch hier leider eine große Schwäche: Der Rechner kann aktuell nur Ausschütter simulieren. Thesaurierer mit Vorabpauschale als extra Option war mir zu kompliziert :D
Fixed Income Allocation
Funktioniert analog zur Aktienallokation.
Crash Settings
Problem bei einer rein statistischer Simulation: echte Crashs wie 2008 werden kaum zufällig gezogen (Black Swan). Deshalb gibt es hier einen zusätzlichen Stress-Test:
- Mit einer Wahrscheinlichkeit von X% (default: 3%, also ~3x pro 100 Jahre) wird ein Crash gewürfelt.
- Bei einem Crash wird eine Rendite zwischen −20% und −50% gezogen und die ETF-Dividende halbiert (schlechte Zeiten und so).
- Besonders relevant für die Entnahmephase, wo ein früher Crash langfristig großen Schaden anrichten kann.
---
Beispiele
Ansparphase
Erstes Beispiel: 35-jährige Person, 30 Jahre bis zur Rente, 500 €/Monat Sparrate (2% Inflationsanpassung), 10.000 € Startkapital, 100% Aktienquote.
Nach 15 Jahren:
- Grüne Linie = reiner Cashwert (eingezahltes Kapital)
- Dunkelblaue Linie = Medianverlauf (fixe mittlere Rendite jedes Jahr)
- Schattierte Bereiche = Perzentile (dunkelblau = 50% aller Pfade, hellblau = 80% aller Pfade)
- Rechts daneben: Verteilung der simulierten Portfoliostände zum gewählten Jahr (nominal + inflationsbereinigt)
Bei Renteneintritt:
> Erwartungswert: 467.000 € nominal → 258.000 € heutiger Kaufkraft
- 10% der Pfade liegen unter 221.000 € (unter dem reinen Cashwert. Ist möglich, aber es braucht 30 Jahre konstant schlechte Performance)
- 10% der Pfade liegen aber auch über 1.100.000 €
Das Ergebnis ist keine fixe Zahl, sondern eine Verteilung. Damit lassen sich Ziele statistisch formulieren:
> "Bei Renteneintritt möchte ich in 90% der Fälle über 300.000 € haben. Das Restrisiko nehme ich hin oder ich muss mehr ansparen."
---
Entnahmephase
Zweites Beispiel: 65-jährige Person, 700.000 € Startkapital, 15.000 €/Jahr Entnahme (2% Inflation), erstmal mit 100% Aktienquote.
Mit 90 Jahren:
> Erwartungswert: 474.000 €; aber in 17% der Fälle ist die Person bereits pleite gegangen, da die Rendite zu Beginn der Phase nicht so gut war.
Jetzt muss sich jeder selbst überlegen: Kann ich darauf pokern nicht in den 17% zu landen? Muss ich weniger entnehmen oder brauch ich mehr Startkapital bei Renteneintritt? Oder muss ich Assets etwas umschichten?
Gleiches Beispiel aber mit 60% Aktien / 40% Geldmarktfonds:
> Pleitewahrscheinlichkeit ist jetzt unter 10%, Erwartungswert allerdings nur 311.000 €, da die expected returns natürlich an der niedrigeren Aktienquote leiden.
Weniger Rendite, aber deutlich geringere Downside-Volatilität.
Hiermit kann man dann auch sein Langlebigkeitsrisiko direkt testen:
> "Was wenn ich doch 97 werde? Wie hoch ist die Wahrscheinlichkeit, dass mein Depot auf 0 geht?"
---
Fazit
Das Tool ist nicht komplex genug, um über Jahrzehnte wirklich realistische Szenarien abzubilden: Sparrate, Kosten, Steuern und Asset Allocation können sich alles ändern. Das Ziel ist es, statistisch über den eigenen Depotverlauf nachdenken zu können und grobe Größenordnungen zu bekommen. Besonders den Effekt der Asset Allocation in der Entnahmephase finde ich spannend.
Ich freue mich über jedes Feedback. Verbesserungsvorschläge, Ideen für neue Features oder auch Fehler in der Methodik, gerne her damit!
GaLiGrü 👋