In diesem Artikel
Nach diesem Artikel kannst du …
- Umordnung, Ziehen mit Zurücklegen und Modellparameter unterscheiden.
- Stopregeln und Initialkapital in Pfaden richtig berücksichtigen.
- Endkapital- und Maximaldrawdown-Quantile auseinanderhalten.
- Deutsche Excel- und Python-Struktur auf bekannte Fälle prüfen.
Begriffe direkt erklärt
Monte-Carlo-Simulation Drawdown Backtesting ErwartungswertEine historische Equitykurve ist keine vollständige Verteilung möglicher Zukunft. Eine Simulation stellt wiederum nur das dar, was ihr Modell zulässt. Beginne deshalb mit Definitionen und kontrollierten Handpfaden, bevor du tausend Linien als Risikonachweis interpretierst.
Umordnung, Bootstrap und parametrisches Modell unterscheiden
Monte Carlo zieht wiederholt aus einem festgelegten Modell. Eine Umordnung derselben festen Geldresultate ändert deren Reihenfolge, nicht ihre Summe. Bootstrap mit Zurücklegen kann ein Ergebnis mehrfach oder gar nicht ziehen und verändert auch die Gesamtsumme. Ein parametrisches Modell erzeugt etwa unabhängige Gewinner und Verlierer aus angenommenen Wahrscheinlichkeiten. Dokumentiere Verfahren und Größenupdate.
Fiktives Festgeldmodell mit 1.000 EUR Anfangskapital: +200, −100, −100 ergibt 1.000 → 1.200 → 1.100 → 1.000. Maximaldrawdown 200 / 1.200 = 16,6667 %. Die Reihenfolge −100, −100, +200 führt über 900 und 800 wieder zu 1.000: Maximaldrawdown 20 %. Anfangskapital gehört in die Spitzenhistorie, sonst fehlt der anfängliche Verlustpfad.
Eine Stopregel verändert ausgeführte Schritte
Separates EUR-Modell: Anfang 1.000, feste Nettoresultate +300, −150, −150, ohne Wiederanlage oder externe Bewegungen. Prüfe nach jedem vollständig ausgeführten Schritt: Bei Kapital ≤850 endet der Versuch. A führt alle drei Resultate aus und endet wieder 1.000. B beginnt mit −150, erreicht 850 und führt die beiden verbleibenden Schritte nicht aus.
Die gezogene Liste und die ausgeführte Sequenz sind bei Stopregeln nicht gleich.
- A: +300, −150, −150
- 1.000 →1.300 →1.150 →1.000 – Alle drei Schritte ausgeführt
- B: −150, −150, +300
- 1.000 →850; beendet – Nur erster Schritt ausgeführt
- Graue Fortsetzung B
- Übrige Schritte ausgelassen – Keine zwei weiteren Nulltrades
Die graue Fortsetzung eines beendeten Versuchs bezeichnet keine weiteren Nulltrades. Zwei Pfade definieren keine Wahrscheinlichkeiten. Bei Stop, Kapitalgrenze oder wechselndem Volumen reproduziert schlichtes Addieren aller umgeordneten historischen Geldresultate diese Regeln nicht. Trenne gezogene und tatsächlich ausgeführte Sequenz.
Welche Verteilung die Kennzahl zusammenfasst
Ein Modell kann Drawdowns, Schwellenkontakte und Endkapital untersuchen. Berechne zuerst für jeden vollständigen Pfad dessen Maximaldrawdown, dann das Quantil dieser Maxima. Ein punktweises Equity-Perzentilband ist kein einzelner ausgeführter Pfad. Nenne die Quantilkonvention: Interpolation und diskrete Werte verändern, wie viel Stichprobe unter einer Grenze liegt. Kein Perzentil garantiert ein Liveverlustlimit.
Vollständiges unabhängiges Modell: 200 Trades, p = 0,55, Gewinn 100 EUR, Verlust 80 EUR, feste Nettobeträge. Erwartung je Trade 0,55 × 100 − 0,45 × 80 = 19 EUR, insgesamt 3.800 EUR. Bei K Gewinnen lautet Endgewinn 180K − 16.000 EUR. Exakte Binomialquantile, definiert als kleinster K mit kumulierter Wahrscheinlichkeit mindestens q, ergeben: 1 % = K94 beziehungsweise 920 EUR; 5 % = K98, 1.640 EUR; 50 % = K110, 3.800 EUR; 95 % = K122, 5.960 EUR. Diese Werte wurden direkt aus der Modellverteilung berechnet, nicht als beobachtete Zufallssimulation behauptet. Eine endliche Simulation schwankt um das Modell.
Eine deutsche Excel-Version vollständig aufbauen
Setze A1 = 0,55, A2 = 100, A3 = −80, A4 = 10000. Zeile 1 ist der Zustand vor dem ersten Trade: C1 = $A$4, D1 = C1, E1 = 0. Die folgenden deutschen Formeln verwenden Semikolon; regionale Einstellungen können abweichen.
B2: =WENN(ZUFALLSZAHL()<$A$1;$A$2;$A$3)
C2: =C1+B2
D2: =MAX(D1;C2)
E2: =(D2-C2)/D2Kopiere B2:E2 bis Zeile 201: genau 200 Trades, nicht zwingend ein Kalenderjahr. C201 ist Endkapital, =MAX(E1:E201) positiver Maximaldrawdown. Das Cashmodell braucht für praktische Anwendungen zusätzliche Stopp-, Margin- und Insolvenzregeln.
Für einen weiteren Pfad kopierst du den ganzen B:E-Block einschließlich Anfangszeile; die absoluten A-Parameter bleiben fest. =QUANTIL.INKL(Bereich;0,95) wählt den oberen Tail positiver Drawdownbeträge. Für ungünstiges Endkapital nutzt du dagegen 0,05 oder 0,01. Die Funktion kann interpolieren und unterscheidet sich damit von der ausdrücklich diskreten Binomialdefinition oben. ZUFALLSZAHL wird bei Blattneuberechnung neu gezogen; sichere Stichproben als Werte mit Annahmen für einen exakt wiederholbaren Review.
Historische Werte in Python ziehen
Eine nichtleere Liste historischer Nettogeldresultate kann mit NumPy Generator erneut gezogen werden. Excel kann mit passenden Formeln ebenfalls historische Werte sampeln; Python ist kein automatischer Qualitätsnachweis. Beginne mit einem ausdrücklich definierten Kapital- und Kostenmodell.
new_sequence = rng.choice(history, size=200, replace=True)
equity = np.concatenate(([initial_capital],
initial_capital + np.cumsum(new_sequence)))Berechne daraus je Pfad laufende Spitzen und Drawdowns, bevor du Maxima zusammenfasst. Dokumentiere Daten, Seed, Bibliotheksversion, Horizont, Währung, Kosten und Stopregeln. Festgeld und anhand aktueller Equity neu berechnetes Risiko sind verschiedene Experimente.
Ein kontrollierter Vergleich kann dieselben uniformen U verwenden. Ergebnis +1 bei U unter dem jeweiligen Schwellenwert, sonst −1; A = 0,55, B = 0,60 sind angenommen. Erwartungen 0,10 und 0,20 ergeben Differenz 0,10. Mit gemeinsamem U ist B−A nur für 0,55 ≤ U < 0,60 gleich +2, sonst 0: Varianz 4 × 0,05 − 0,10² = 0,19. Bei unabhängigen Ziehungen addieren sich 0,99 und 0,96 zu 1,95. Das reduziert Rechenrauschen dieses Vergleichs, nicht Unsicherheit über reale Marktwahrscheinlichkeiten; beliebigen Strategien muss es nicht helfen.
Einzeltrade-Bootstrap erhält beobachtete Werte, zerstört aber die ursprüngliche Reihenfolge und bewahrt keine Verlustcluster. Ein nicht beobachtetes Tail-Ereignis wird nicht erfunden. Bei relevanter Abhängigkeit kannst du Blöcke oder separate Stressszenarien modellieren; begrenzte Historie kann trotzdem neue Regime auslassen.
Modellgrenzen vor der Risikointerpretation benennen
Das unabhängige Beispiel nimmt eine stabile Verteilung an. Monte Carlo selbst ist nicht darauf beschränkt: Abhängigkeiten und wechselnde Regime lassen sich modellieren, brauchen aber eigene Begründung und Prüfung. Mehr Läufe erzeugen keine zusätzlichen beobachteten Marktbedingungen.
Ein simuliertes Perzentil ist weder garantierte Decke noch bewiesener Boden des echten Drawdowns. Lege Schwellen vor der Untersuchung fest und prüfe Kosten, fehlende Fills, Gaps und Stopregeln separat. Im idealisierten Verlustmodell mit exakt 5 % des jeweiligen Kapitals bleiben nach n Verlusten Anfangskapital × 0,95ⁿ für endliches n positiv. Bei 10.000 EUR und 20 solchen Verlusten sind es rund 3.584,86 EUR. Praktisches Mindestvolumen, Margin oder größere Verluste ändern dieses Modell; daraus folgt keine allgemeine Ruinwahrscheinlichkeit.
Walk-forward strukturiert Entwicklung und Evaluation, erkennt aber nicht automatisch schwindenden Vorteil und macht schon betrachtete Daten nicht wieder unberührt.
Eine reproduzierbare Untersuchung abschließen
Definiere Historie, Kosten, Risiko und Marktdeckung, ohne zusätzliche Trades nur für eine Mindestzahl zu erzwingen. Rechne zuerst die Handpfade inklusive Anfangskapital nach. Bewahre eine gezogene Stichprobe vor weiteren Läufen und kontrolliere richtige Tailrichtung.
Änderst du Daten, Größe oder Kosten, dokumentiere die Version neben dem Resultat. Geringeres modelliertes Risiko kann Drawdown reduzieren; rechne erneut, statt eine garantierte proportionale Wirkung anzunehmen. Ein niedrigerer Median allein beweist keinen kausalen Live-Edge-Verfall. Die Testmethodik ergänzt Auswahl und unbekannte Grenzen.
- Definiere Historie, Kosten, Risiko und Marktdeckung und rechne zuerst die kurzen Handpfade einschließlich Anfangskapital nach. Dokumentiere die verschiedenen Drawdowns bei bloßer Reihenfolgeänderung; ein identischer Endbetrag beschreibt den Weg nicht vollständig und eine Mindestfallzahl rechtfertigt keine zusätzlich erzwungenen Trades.
- Bewahre eine gezogene Stichprobe und die Einstellungen vor weiteren Läufen und kontrolliere Quantildefinition sowie Tailrichtung. Rechne im parametrischen Modell die benannten Geldquantile nach; ein ungünstiger unterer Endgewinn und ein ungünstiger oberer Drawdown liegen auf verschiedenen Seiten ihrer jeweiligen Verteilung.
- Dokumentiere jede Änderung von Daten, Größe oder Kosten als eigene Version und vergleiche dieselben Annahmen mit ihren Grenzen. Rechne geringeres Risiko erneut statt eine garantierte proportionale Drawdownwirkung anzunehmen; ein niedrigerer simulierter Median isoliert weder kausalen Live-Verfall noch den wahren zukünftigen Handelsvorteil.
Prüfe dein Verständnis
Etwa 3 Minuten Übung.
Antwort und Erklärung anzeigen
Große positive Verlustbeträge liegen im oberen Tail.
Weitere Fragen
Was simuliert Monte Carlo einer Strategie?
Wiederholte Ziehungen aus einem definierten Modell. Umordnung fester Geldresultate erhält ihre Summe, Ziehen mit Zurücklegen kann sie ändern. Das unabhängige 200-Trade-Modell ergibt erwartete 19 EUR je Trade und ein diskretes 5-Prozent-Endgewinnquantil von 1.640 EUR. Das sind berechnete Annahmen, keine beobachtete Simulation oder bestätigte zukünftige Verteilung.
Wie baue ich die Excel-Variante?
Erhalte Zeile 1 als Anfangskapital und Höchststand. Die absoluten A-Parameter steuern WENN mit ZUFALLSZAHL, danach folgen Balance, laufendes MAX und positiver Drawdown. Kopiere Zeilen 2–201 für 200 Trades. MAX über die Drawdownspalte gibt das Pfadmaximum. Für weitere Pfade kopierst du den ganzen Block und bewahrst gezogene Werte vor Neuberechnung; Funktionssyntax hängt von Sprache und Region ab.
Wie setze ich historischen Bootstrap in Python um?
Definiere nichtleere Nettogeldhistorie, Kapital, Horizont und Regeln. rng.choice mit replace=True zieht Werte mehrfach; Anfangskapital wird vor die kumulierte Reihe gesetzt. Berechne erst Pfadspitzen und Maximaldrawdown. Notiere Seed, Bibliotheksversion, Einheiten und Kosten. Einzelwertziehen bewahrt weder ursprüngliche Verlustcluster noch unbekannte Schockwerte. Prüfe eine deterministische Handsequenz vor der Interpretation.
Welche Grenze haben die Risikoperzentile?
Sie gelten unter Daten und Modellannahmen, nicht als bewiesene Liveverlustdecke oder Mindestdrawdown. Einfacher unabhängiger Bootstrap zerstört Zeitabhängigkeit und erzeugt keine fehlenden Marktkrisen. Abhängige oder wechselnde Modelle sind möglich, benötigen aber eigene Prüfung. Kosten, Gaps, Fills, Größe und Stopregeln verändern die Ergebnisse; eine anhand des Perzentils gewählte Position garantiert kein Überleben.
Quellen und Nachvollziehbarkeit
- NumPy: Generator.choice
Zufallsauswahl aus nichtleerem Bestand mit oder ohne Zurücklegen; wiederholte Werte bei replace=True.
- Python: random
shuffle einer bestehenden Sequenz und Zufallszahlen; Stopregel und statistisches Modell sind gesonderte Annahmen.
- Microsoft: QUANTIL.INKL
Quantile mit möglicher Interpolation; positive Drawdown-Tails und Kapital-Tails unterschiedlich auswählen.
- Microsoft: ZUFALLSZAHL
Zufallszahl und Neuberechnung; konkrete Stichprobe als Werte bewahren.
Rechenfälle sind ausdrücklich angenommene Beispiele. Sie ersetzen weder aktuelle Marktdaten noch die Spezifikation deines Anbieters.
