Monte Carlo Simulation für Handelssysteme

Kennt Ihr das auch, die Unzuverlässigkeit von vermeintlich sehr guten Handelssystemen, die aufgrund von Backtest und "out-of-sample"-Tests eigentlich den Weg zum "schnellen Erfolg" vorgezeichnet hatten?

Mich hat es jedenfalls bewogen, mich mehr auch mit Simulationen des zukünftigen Systemverhaltens zu beschäftigen und so bin ich auf die Methode der Monte Carlo Simulation gestoßen, um mögliche Profits und Drawdowns der Handelsansätze besser einschätzen zu können.

Auf meiner Website http://www.zentrader.de habe ich Freeware in Form einer Excel-Simulation und eines schnelles Windowsprogramms, welches i.e.Linie für EOD-Daten einsetzbar ist, per Download zur Verfügung gestellt:
http://www.zentrader.de/download.html

Wer die Software brauchbar findet, aber mehr Funktionalität benötigt, kann auf der Website auch die professionellen Versionen günstig erwerben.

Feedback insb. auch konstruktive Kritik sind immer willkommen!

ciao,
zentrader

Geschrieben von zentrader am
Peter S
Mitglied seit 11 Jahre 11 Monate

hallo zentrader,

interessanter beitrag!

mein feedback: ich bin mir (allerdings) nicht sicher, ob du bei deinem excel-sheet mit der funktion zufallszahl arbeiten kannst, da diese funktion eine gleichverteilte zufallszahl erzeugt. deine gewinne (62) und verluste (51) scheinen aber nicht gleichverteilt zu sein. mit hilfe eines bestimmten algorithmus kannst du jedoch aus dieser zufallszahl eine normalverteilte zufallszahl erzeugen. wenn du interesse hast suche ich dir den algorithmus raus. vorher solltest du aber die frage klären ob deine gewinne bzw. verluste überhaupt normalverteilt sind bzw. welche verteilung denn grundsätzlich vorliegt und ob eine stichprobe von 113 signalen überhaupt aussagekräftig ist. (bedenke 113 signale bei 200 börsentagen oder bei 3000 börsentagen ist schon ein nicht unerheblicher unterschied bzw. wie sehen die entsprechenden kennzahlen bei anderen underlyings aus)

mfg oliver

zentrader
Mitglied seit 11 Jahre 11 Monate

@Oliver,

im Excel-Beispiel wird diese "Ungleich-Verteilung", durch die "wenn-Bedingung" in Spalte B ausgeglichen:

Zufallszahl < (Gewinner/Gesamtzahl der Trades/100)

D.h. Spalte A erzeugt zwar eine gleichverteilte Zufallszahl, durch den Bezug in Spalte B werden jedoch als Folge bei diesen beispielhaften Inputdaten (Gewinner 62, Verlierer 51) über die Zeit auch diese Gewinner-/Verlierer-Verhältnise im Excelsheet erzeugt.

Auch in der Programmversion werden die "zufälligen" Trades in Abhängigkeit von diesen Systemtest-Input-Daten erzeugt. Sicherlich könnte man die Erzeugung selbst innerhalb des Programms über Timer etc. nochmals "zufälliger gestalten, erreicht jedoch m.E. damit keine höhere Aussagekraft.

Die Aussage bzgl. der Schwankungsbreite von in der Simulation erzielten Profit-und Drawdownbeträgen, sowie bzgl. eines Schätzwertes der mit der entspr. stat. Sicherheit nicht unterschritten würde, ist durch diesen Ansatz schon gewährleistet.

Egal wie man's macht, bleibt immer die Problematik von "niemals simulierten" Ausreißerwerten - eine 100%-ige Sicherheit gibt's nunmal nicht...

Der große Vorteil der MCS als Ergänzung zu Metastock oder ähnlichen Tools besteht eben darin, daß man sich nicht auf die tolle Entwicklung einer vorhandenen Zeitreihe von Daten und daraus generierten Trades verläßt, sondern daß man abhängig von der gefunden Profitabilität des Systems zufällige Konstellationen simulieren kann, die Chance und Risiko des Systems besser verständlich machen.

ciao,
zentrader

SwingMan
Mitglied seit 11 Jahre 11 Monate

@zentrader

"...abhängig von der gefunden Profitabilität des Systems zufällige Konstellationen simulieren kann"

Und ich glaubte immer daß man zunächst Monte Carlo Simulationen machen muß, und dann wird die Profitabilität ermittelt. Scheinbar funktioniert es auch umgekehrt!

- Eine rein technische Frage: laut vielen Auswertungen sind die Aktienkurse lognormal verteilt.
Werden in dem Generator Kurse oder Logarithmen der Kurse generiert?

Peter S
Mitglied seit 11 Jahre 11 Monate

@zentrader,

ich hatte mir "nur" die erste Lasche (Monte Carlo Simulation 500) näher angeschaut. Dort wurde mit einer TradeRatio von 0,5 gearbeitet (Was ich nicht verstanden hatte vgl. Anzahl Gewinner und Verlierer bzw. s.o.). Habe mir aber (jetzt) die zweite Lasche näher angeschaut und dort arbeitest du ja mit der tatsächlich beobachten TradeRatio (von 0,55).

Um Ausreißerwerte zu simulieren, könntest du einfach welche fiktiv aufnehmen. Kannst dich dabei z.B. an den 10 größten Tagesverlusten orientieren etc.

D.h. du bildest in einem ersten Schritt Klassen aus deinen historischen Beobachtungen und korrigierst dann deren tatsächliche Wahrscheinlichkeit um einen bestimmten Prozentsatz um so dein Worst-Case-Szenario implementieren zu können.

1. Klasse - Wahrscheinlichkeit 5% - Gewinn 150 Punkte
2. Klasse - Wahrscheinlichkeit 7% - Gewinn 75 Punkte
3. Klasse - Wahrscheinlichkeit 15% - Gewinn 45 Punkte
4. Klasse - ...
5. Klasse - ...
...
7. Klasse - Wahrscheinlichkeit 15% - Verlust 100 Punkte
8. Klasse - Wahrscheinlichkeit 10% - Verlust 200 Punkte
9. Klasse (WorsteCase) - Wahrscheinlichkeit 1% - Verlust 600 Punkte

In einem zweiten Schritt ermittelst du dann über 500 Ziehungen die jeweiligen Klassen und aggregierst die Teilergebnisse zu einem Endwert. Wenn du diesen Prozess z.B. 1000 mal durchläufst erhälst du eine "eigene" Verteilung aus der du dann Wahrscheinlichkeiten über den Ereignisraum des Endwertes ableiten kannst.

zentrader
Mitglied seit 11 Jahre 11 Monate

@swingman,

meine Software generiert keine Kurse (dies könnte man natürlich auch simulieren), die Software simuliert Trades und berechnet aufgrund der bekannten Systemtest-Eckdaten (z.B. aus dem System Test Report von Metastock) alternative Simulationen des Tradingverlaufs.

Als Ergebnis erhält man von-/bis-Ranges von Profit und Drawdown und einen Erwartungswert für diese Größen gemäß des Levels der statistischen Sicherheit, grob gesprochen eine Einschätzung von Chance und Risiko.

Wenn man ein wenig damit experimentiert, erkennt man recht schnell ab welchem Trade-Ratio (Verhältnis Gewinner-Trades zu allen Trades) und ab welchem pay-off-Ratio (Verhältnis Durchschnittsgewinn zu Durchschnittsverlust) ein System in der Simulation "ruhiger" wird, m.E. eine unabdingbare Voraussetzung, um zu entscheiden, ob ein z.B. per Metastock-Backtest ermitteltes System überhaupt real zu handeln wäre...

@compu_o,

natürlich sind alternative Ansätze denkbar,ich bin jedoch nachwievor der Meinung, daß der implementierte Ansatz mit den Durchschnittsgewinnen- bzw. Verlusten vollkommen ausreicht, z.B. per zufallserzeugten Tradeserien Gewinne und Drawdowns realistisch zu simulieren.

Grund: über das vorgegebene Trade-Ratio und das pay-off-Ratio weren die Simulationen statistich "reguliert".

ciao,
zentrader

ciao,
zentrader

zentrader
Mitglied seit 11 Jahre 11 Monate

@swingman,

meine Software generiert keine Kurse (dies könnte man natürlich auch simulieren), die Software simuliert Trades und berechnet aufgrund der bekannten Systemtest-Eckdaten (z.B. aus dem System Test Report von Metastock) alternative Simulationen des Tradingverlaufs.

Als Ergebnis erhält man von-/bis-Ranges von Profit und Drawdown und einen Erwartungswert für diese Größen gemäß des Levels der statistischen Sicherheit, grob gesprochen eine Einschätzung von Chance und Risiko.

Wenn man ein wenig damit experimentiert, erkennt man recht schnell ab welchem Trade-Ratio (Verhältnis Gewinner-Trades zu allen Trades) und ab welchem pay-off-Ratio (Verhältnis Durchschnittsgewinn zu Durchschnittsverlust) ein System in der Simulation "ruhiger" wird, m.E. eine unabdingbare Voraussetzung, um zu entscheiden, ob ein z.B. per Metastock-Backtest ermitteltes System überhaupt real zu handeln wäre...

@compu_o,

natürlich sind alternative Ansätze denkbar,ich bin jedoch nachwievor der Meinung, daß der implementierte Ansatz mit Anzahl der gewinner- und Verlierertrades sowie mit den Durchschnittsgewinnen- bzw. Verlusten vollkommen ausreicht, z.B. per zufallserzeugten Tradeserien Gewinne und Drawdowns realistisch zu simulieren.

Grund: über das vorgegebene Trade-Ratio und das pay-off-Ratio weren die Simulationen statistich "reguliert".

ciao,
zentrader

he96
Mitglied seit 11 Jahre 11 Monate

@zentrader

""die Software simuliert Trades und berechnet aufgrund der bekannten Systemtest-Eckdaten (z.B. aus dem System Test Report von Metastock) alternative Simulationen des Tradingverlaufs.""

Ich nehme an Du meinst es so: Du nimmst von einem bestehenden System die backtest ERGEBNISSE (closed trades) in Punkten oder Währung und bringst diese in eine andere Reihenfolge:

BSP originaloutput backtest:
+500
+1000
-400
+300
-2000

und nimmst diese ERGEBNISSE dann und mischst diese dann mit der Monte Carlo Mischmaschine richtig durcheinander, d.h. erzeugst XXX verschiedene Equity curves - ja ?

Da die Anzahl der "closes trades" von der Zeitaches abhängen (5min, 60min, EOD)kann man über den Backtestzeitrum wenig Aufschlüsse ziehen. Welche Mengen an Ergebnissen nimmst Du ? und wieviele sims. dann damit ?

""Wenn man ein wenig damit experimentiert, ........ ein System in der Simulation "ruhiger" wird""

Ich würde sagen wo die Performance mit vergleichbaren Parametern ein Plattform bildet und nicht mit einem Wert eine super Perfomance = PEAK hat und mit kleinsten Parameterabweichungen sehr viel schlechter ist.

gruss hans

zentrader
Mitglied seit 11 Jahre 11 Monate

@hans,

ich nehme nicht die einzelnen Trade-Ergebnisse eines Backtests, sondern die Auswertung des Systemreports:

- Anzahl der Gewinnertrades z.B. 75
- Anzahl der Verlierertrades z.B. 50
- durchschn. Gewinn je Gewinnertrade z.B. 100 Punkte
- durchschn. Verlust je Verlierertrade z.B. 80 Punkte
- Währungsbetrag je Punkt (z.B. beim Dax = 25)
- Anzahl der Kurse, die diesem Backtest-Ergebnis zugrunde lagen z.B. 500

So - dies alles bekomme ich von der Tradestation, von Metastock, Amibroker oder auch aus einem selbstgestrickten Excel-Backtest geliefert.

Die Daten bedeuten für eine MCS-Simulation mit meiner Freewareversion, daß ich Kurse für 500 Tage hatte (also ca. 2 Jahre EOD-Daten) und in diesen 2 Jahren 125 Trades stattfanden.

Die Monte Carlo Simulation ist nun zweistufig einzustellen:

1. simuliere ich den Betrachtungszeitraum. Mache ich das 1:1 zu den vorliegenden Backtest-Daten, trage ich bei Anzahl der Trades/je MCS-Sim.Lauf z.B. 125 ein, d.h. ein Lauf simuliert mir wieder die o.g. 2 Jahre (ich kann hier natürlich auch weniger oder mehr Trades eintragen - ich muß mir halt nur immer bewußt sein, welchen Zeitraum dies aufgrund der o.g. Inputparameter meines Systems abdeckt)

2. ich stelle die Anzahl der Simulationsläufe ein.
z.B. 5000, ich hätte somit den oben gewählten "Zweijahreszeitraum" 5000 x simuliert, macht 10.000 Handelsjahre oder 125 x 5000 = 625.000 Trades...

Die min-, max- Werte werden für jeden Lauf berechnet und dann über alle Läufe gemittelt bzw. eingeschätzt (und in der Freewareversion fix auf ein Jahr bzw. 250 Kurse heruntergerrechnet dargestellt)

Man sieht so die mögl. Range der Systemergebnisse, welche Profits und Drawdowns simuliert werden bzw. welche mit der eingestellten Stat. Sicherheit zu erwarten sind.

Die Einstellungen diesbzgl. sind in der Freeware-Version natürlich nicht so flexibel wie in der kommerziellen Version (Unterschiede siehe hier, letzte Seite: http://www.zentrader.de/mcsquickref.pdf)...:-)

ciao,
zentrader

he96
Mitglied seit 11 Jahre 11 Monate

@ zentrader

Danke für die ausführliche Antwort, aber Du gibst mir Rätsel auf.

Ich kenne nur die Vorgehensweise mit "gehandelten" Ergebnissen je trade die Reihenfolge zu mischen, wie ich oben beschrieben habe. Was Du mischst versteh ich überhaupt nicht.

""1. simuliere ich den Betrachtungszeitraum. Mache ich das 1:1 zu den vorliegenden Backtest-Daten, trage ich bei Anzahl der Trades/je MCS-Sim.Lauf z.B. 125 ein, d.h. ein Lauf simuliert mir wieder die o.g. 2 Jahre (ich kann hier natürlich auch weniger oder mehr Trades eintragen - ich muß mir halt nur immer bewußt sein, welchen Zeitraum dies aufgrund der o.g. Inputparameter meines Systems abdeckt)""

Du hast KEINE Daten des underlyings in der Maschine - und Du gibst KEINE einzelnen Tradeergebnisse weiter ? Habe ich hier was verpasst ?

Zumindest ab 2. Punkt ist mir die Sache klar.

gruss hans

tradeyoungster
Mitglied seit 11 Jahre 11 Monate

Moin Hans,

ich glaube ich habe verstanden, wie zentrader simuliert.

Also:

Du hast ein Risk/Reward-Ratio von 1:2 und eine Erfolgswahrscheinlichkeit von 52/48 zu gewinnen.

Jetzt schreibst Du in Zelle A1 in Excel 1 und eine Formel wie =wenn(zufallszahl()>0,52;2;-1) in b1, in c1 =wenn(zufallszahl()>0,52;b1+2;b1-1). Jetzt kopierst Du die Formel aus C1 in d1 bis j1. Und kopierst die Zeile 1 und fügst sie in Zeile 2 bis zehn ein.

Jetzt hast Du die Daten von zehn Equity-Kurven mit zehn simulierten Trades.

Mit der Taste F9 kannst Du neue Equity-Kurven erzeugen.

Die Tabelle gibs hier:

http://s23.yousendit.com/d.aspx?id=3COL4PZXUPPES1ITEK4Z2R68I9

Gruss Tradey

zentrader
Mitglied seit 11 Jahre 11 Monate

@ hans

ok - ich versuch's nochmal zu verdeutlichen:

1. ich verwende keine einzelnen OHLC-Kurse

2. ich benötige nur die wesentlichen Ergebnisse eines typischen (z.B. mit Metastock ausgegebenen Systemtests) - siehe Aufzählung in Beitrag #8

3. im Beispiel (Beitrag #8) war der Ausgangspunkt ein Backtest z.B. in Metastock, in den 500 EOD-Kursdaten eingeflossen sind und das gefundene System hat daraus beispielsweise 125 Trades generiert (wie gesagt für mich eine Blackbox - meine Software braucht nur die Ergebnisse des Tests) und die ganzen anderen tollen weiteren Ergebnisse, die so ein Systemreport ausgibt. D.h. das System hat in 2 Jahren im Backtest z.B: 2003 und 2004 diese 125 Trades erzeugt etc. etc.

4. In der MCS Simulation will ich nun prüfen, welche Schwankungen für Profit und Drawdown bei einer zufälligen Verteilung der Trades denkbar sind, wobei natürlich die Systemeigenschaften wie Verhältnis Gewinner- zu Verlierertrades oder durchschnittl. Gewinn je Gewinnertrade und durschnittl. Verlust je Verlierertrade diese zufällige Verteilung beeinflussen.

D.h. ein System mit höherem Trade Ratio oder höherem pay-off Ratio bzw. höherem Profitabilitätsindex wird auch in der Simulation bessere Werte (d.h. weniger Schwankungen) aufweisen) als diesbzgl. "schlechter" einzustufende Systeme.

5. MCS ist ein Mittel um ein solches anhand einer Zeitreihe von Echtdaten irgendwann mal ermitteltes System daraufhin zu prüfen, welche durchschnittl. Profite/je Zeiteinheit und welche max. Account Drawdowns zu erwarten bzw. zu befürchten sind, wenn der Ansatz real gehandelt werden würde und die verteilung der Trades eben unterschiedlich zur ursprünglichen Verteilung beim Backtest erfolgen.

Beispiel:

Du hast das o.g. System in Metastock per Backtest gestestet und einen jährlichen Gewinn von 30.000€ und einen max. Drawdown von -5.000€ gemeldet bekommen. Sieht ordentlich aus, für ein DAX-Future Konto könnten also 9.000€ (Margin) + 5.000€ (Drawdown) + ein bisserl Reserve für Intraday-Schwankungen, also ca. 20.000€ reichen.

Jetzt macht Du die Monte Carlo Simulation deines Systems und bekommst auf einmal die mögl. Schwankungen aufgezeigt, wenn Du z.B. nach Backtest der Jahre 2003 und 2004, ab 2005 "echt" handeln wolltest und eine der Simulationen hier z.B. eine herbe Serie von consecutive losses simuliert und Dein mögliches max. Drawdown nach der MCS auf einmal mit -35.000€ angezeigt wird.

Dies bedeutet aber nichts anderes, als daß solch ein System monetär nur mit einer Kontogröße von mind. 50.000€ zu handeln wäre (also wesentlich mehr als es ein einzelner Backtest ausgibt, weil der worst case einer solchen schwarzen Serie nunmal jeden Tag eintreffen kann) - von der psychologischen Handelbarkeit mal ganz zu schweigen, aber dies ist ja nicht mein Thema...

Vielleicht ist's so ein wenig verständlicher geworden.

ciao
zentrader

he96
Mitglied seit 11 Jahre 11 Monate

@ tradeyoungster

""Die Tabelle gibs hier: http://s23.yousendit.com/d.aspx?id=3COL4PZXUPPES1ITEK4Z2R68I9 ""

Nein - hat wohl jemand geklaut :-)

@ zentrader

Danke.

gruss hans

tradeyoungster
Mitglied seit 11 Jahre 11 Monate

@he96

Dann jetzt in Deiner eMail.

Gruss,

tradey

he96
Mitglied seit 11 Jahre 11 Monate

@ tradey, danke

Phantom of the Pits.
Mitglied seit 11 Jahre 11 Monate

der mathematische Beweis;-)

zentrader
Mitglied seit 11 Jahre 11 Monate

@limit-up,

tja, da hilft Dir auch die cleverste Monte Carlo Simulations Software nicht weiter... :-)

ciao,
zentrader
http://www.zentrader.de

Phantom of the Pits.
Mitglied seit 11 Jahre 11 Monate

schade eigentlich ;-)

Richard Ebert
Mitglied seit 11 Jahre 11 Monate

Thema: Zen Monte Carlo Simulator v3

zentrader Am: 06.03.2005 16:01:15 Gelesen: 4

Konstruktives Feedback von Interessierten hat dazu geführt, daß ich dem " Zen Monte Carlo Simulator v3" neben der vorhandenen Systemsimulationsfunktionalität auch noch eine Datensimulationsfunktionalität spendiert habe.

Die neue Datensimulation ermöglicht auf Basis von vorhandenen Originaldaten (z.B. OHLC-Dateien des DAX) die Generierung von Zufallsdaten, die gewisse Eigenschaften der Originaldateien übernehmen, aber eine zufällige neue Zusammenstellung dieser Daten aufweisen.

Ein aufgrund der Originaldaten mittels Metastock gefundenes System kann somit anhand dieser Daten auf Stabilität geprüft werden. Zu starkes "curve fitting" oder "over optimization" kann besser erkannt werden, als wenn man das System nur auf den Originaldaten testet!

Eine Quickreferenz sowie ein Prozessschaubild bzgl. der Einsatzmöglichkeiten der Software ist hier einzusehen:
http://www.zentrader.de/zen_mcs_deutsch.html

Eine Freeware-Version kann man hier per Download testen:
http://www.zentrader.de/download.html

Viel Spaß damit.

ciao,
zentrader

zentrader
Mitglied seit 11 Jahre 11 Monate

@all,

vor kurzem nun auch auf deutsch erschienen:

Benoit B.Mandelbrot, Richard L.Hudson: "Fraktale und Finanzen - Märkte zwischen Risiko, Rendite und Ruin" (Piper Verlag)

Auf den Seiten 303 und 363 gehen die beiden auch auf die Vorzüge der Monte Carlo Simulation (MCS) ein!

Auf dieser Seite habe ich ein paar Hintergrundinformationen zum Thema MCS zusammengestellt:
http://www.zentrader.de/mcs.html

ciao,
zentrader

YingYang
Mitglied seit 11 Jahre 11 Monate

Durch das Einfügen von 2 Zeilen im Excel-Programm verkürzt sich bei mir die Simulationsdauer von 27 auf 5 Sekunden!!!!

In "Sub Schaltfläche3_BeiKlick()"
muß vor der Zeile
"For i = 1 To zaehler"

die Zeile

Application.ScreenUpdating = False

eingefügt werden.

Hinter die Zeile

"Next"
sollte die Zeile

Application.ScreenUpdating = True

eingefügt werden.

Das ist alles.

Gruß YingYang

YingYang
Mitglied seit 11 Jahre 11 Monate

Wenn ich ein Hochkomma vor die Zeile
ActiveSheet.Cells(1, 10) = i setze

schaffe ich die Simulation in 4 Sekunden. Diese Zeile ist nicht unbedingt nötig.

'ActiveSheet.Cells(1, 10) = i

Gruß
YingYang

Osten
Mitglied seit 11 Jahre 11 Monate

@zentrader

die MCS in allen Ehren, aber sie kommt über eine statistische Ableitung von noch möglichen Extremwerten, welche auch "noch" den Systemkennzahlen entsprechen nicht hinaus und verliert die Aussagekraft der Methode an der Grenze zu:

-sehr kurzfristigen statistischen Intradaysystemen
-Wellen/Pattern Systemen (Wellen/Pattern lassen sich nicht sinnvoll simuliert "gleichverteilt" nachbilden
-dynamischen Systemen mit der Auswertung von Volumen/Ticks/Dauer je Zeitbereich
-Systemen mit Beachtung von "magischen" Werten (xx00, xx05, +/-Pivot's, +/- Fibo's ...)

Zur Verdeutlichung:
Alle indikatorbasierten Systemtest's benötigen "Conitinue"-Kontrakte, um Backtests zu ermöglichen.
Aber es gibt Systeme, welche auf absoluten Bezug & Folge der Realkurse, welche auch gehandelt wurden, angewiesen sind, da hier dynamische Beziehungen zwischen bestimmten asoluten Marken und den jeweiligen relativen Änderungen ausgewertet werden. Hier liefert jede Adjustierung (egal ob back/forward/random) eine völlig andere Basis und damit unbrauchbare Veränderung !

Kurzfristige Systeme welche per Marketprofiles ("Volumen/Kurs in Zeitraum" oder "Summe der Zeiteinheiten/Kurs in Zeitraum") gesteuert werden, arbeiten quasi mit dem "Gedächtnis" der Kurse (=Statistik des Herdentriebs der handelnden Masse). Selbst das Mischen von Daten verschiedener Tage/Kontrakte bringt hier absolut unbrauchbare Ergebnisse, da einfach nicht das zum Glück bestehende "Besondere" in realer ECHTZEIT Folge von Kursen neu nachgebildet werden kann.

Intermarket Test's in korrelierenden Märkten, welche per NUR auf die Marktdynamik und absoluten/relativen Marktbewegungen angepasst sind, können solche Systeme besser "Austesten", versagen aber meist bei nomalen OHLC "Indikatorsystemen"...

-> MCS ist sinnvoll, aber nicht "DAS" Werkzeug für alles :)
-> Die puren Grenzwerte nach Systemkennzahlen von Drawdown... könnte man meiner Meinung nach auch per Tabelle ermitteln (siehe irgendeinen der letzten zwei "Traders")

zentrader
Mitglied seit 11 Jahre 11 Monate

@YingYang,

danke für die Optimierungshinweise!

Ich werde dies demnächst mal in das Excelbeispiel einbauen, um nicht weitere kostbare Zeit von Usern zu verschwenden...:-)

danke,
zentrader

zentrader
Mitglied seit 11 Jahre 11 Monate

@Osten,

"...MCS ist sinnvoll, aber nicht "DAS" Werkzeug für alles :)..."

d'accord - ohnehin bleibt bei jeder statistischen Methode das sog. unbeherrschbare Restrisiko...

Deine Beispiele über die Diversität von Systemansätzen sind gut - jedoch solltest Du auch bei diesen "anderen" Ansätzen in der Lage sein einen Systemreport bzgl. der Profitabilität des Systems zu erstellen und dieser kann durchaus wiederrum per MCS verifiziert werden!

"...Die puren Grenzwerte nach Systemkennzahlen von Drawdown... könnte man meiner Meinung nach auch per Tabelle ermitteln (siehe irgendeinen der letzten zwei "Traders")..."

Da muß man genau aufpassen, was da genau ermittelt wird: sprechen die Autoren von Drawdown aufgrund einer max. Reihe von sog. consecutive losses oder wirklich von einem "account drawdown" (worst equity), die der Kontostand in seinem zukünftigen Tradinglebenslauf erreichen kann. Letzteres ist mit Sicherheit(!) mit einer ordentlich implementierten Monte Carlo Simulation realistischer abzubilden, als mit sonstigen mir bekannten Methoden...zumindest glaube ich dies, bis mich jemand vom Gegenteil überzeugt!

ciao,
zentrader

metatrader
Mitglied seit 11 Jahre 11 Monate

Hallo,

hier noch ein paar Links für Menschen, die zu viel Zeit haben

(Sehr gute Einführung)
http://gummy-stuff.org/index.shtml

(siehe: http://gummy-stuff.org/Monte-Carlo.htm
http://gummy-stuff.org/Monte_Carlo_2.htm
http://gummy-stuff.org/Monte-predictions.htm
http://gummy-stuff.org/MC-consistency.htm
http://gummy-stuff.org/MC-stuff.htm )

Gummy bietet auch jede Menge weitere gute Tools/Beschreibungen zu vielen anderen Börsenthemen, ein kleines Muss ;)

(Einführung, incl. einfacher Code)
http://www.anthony-vba.kefra.com/vba/vba12.htm

(Viele, viele,... kostenlose statistische und sonstige Funktionen)
http://www.deakin.edu.au/~rodneyc/software.htm

Freeware (Statistische Funktionen)
http://home.uchicago.edu/~rmyerson/addins.htm

Finance and Statistics Models Open Source Code, 29 USD
http://www.ozgrid.com/excel-add-ins/finance-statistics-models.htm#1
( http://www.ozgrid.com/excel-add-ins/monte-carlo-simulation.htm )

(Super Schnelle MC, 40 USD, Trial)
http://www.dawgroup.com/mc/#download

(Gute Einführung in MC)
http://www.vertex42.com/ExcelArticles/mc/index.html

(MC Kostenlos)
http://homepage.mac.com/martin.auer/montecarlito/

Hompage Molecular Monte Carlo
http://www.cooper.edu/engineering/chemechem/monte.html

Multivariate Monte Carlo Simulation (Freeware)
http://www.numtech.com/NtRand/index.htm

zentrader
Mitglied seit 11 Jahre 11 Monate

@ metatrader,

danke für die Linksammlung. Werde noch ein paar dieser Links auf meiner Website einbauen.

@ YingYang,

die Verbesserung der Performance im Excel-Sheet ist durch Ausschaltung der Grafikaktualisierung natürlich enorm - auch wenn ich aufgrund meiner etwas veralteten Hardware hier nicht ganz an Deine Zeiten herankomme...

Trotzdem liegen bzgl. der Performance von den häufig für MCS angebotenen Excel-Lösungen (siehe auch Links von Metatrader) und einer "echten" compilierten Lösung wie "Zen Monte Carlos Simulator v3" Welten!

Da sich die Aussagekraft der MCS mit der Anzahl der simulierten Trades verbessert, war der Hauptgrund für eine Eigenentwicklung ein extrem schnelles Tool zu entwickeln, daß exakt meine Anforderungen an die simulative Prüfung eines Handelssystems / Trading Systems erfüllt.

Das untenstehende Performance-Sheet zeigt, daß die Unterschiede zwischen reinen Excel-Lösungen und des Zen Monte Carlo Simulators insb. mit ansteigendem Mengengerüst sehr deutlich werden!

Und Zeit ist schließlich Geld. :-)

ciao,
zentrader

gautama2
Mitglied seit 11 Jahre 11 Monate

@zentrader:
da Du Mandelbrot erwähnst.
Wie funktioniert denn Deine Datensimulation?
Er widemt diesem Bereich doch einige Seiten und das zu recht, wie ich finde.
Demnach sind die meisten Datensimluationen Mit Up und Down auf Zufallsbasis wegen der Gaussschen Glockenverteilung der Wahrscheinlichkeiten unbrauchbar.

Zudem meine ich mich aus meinen Uraltcomputerzeiten erinnern zu können, daß viele Arten der Erzeugung von Zufallszahlen durch den Computer keine echten Zufallszahlen ergeben.

Viele Grüße

zentrader
Mitglied seit 11 Jahre 11 Monate

@gautama2,

wie es Mandelbrot/Hudson auf S.303 (der dt. Ausgabe) ausdrücken: "...eine künstliche Kursreihe zu erzeugen, die sich von der realen zwar unterscheidet, aber dem gleichen statistischen Muster folgt..."

Genau dieses habe ich im "Zen Monte Carlo Simulator" in der Datensimulation implementiert. Natürlich mit meinem Algorithmus - den von Mandelbrot/Hudson kenne ich ja nicht... :-)

Ich simuliere die Originaldaten folgendermaßen:

1. bilde ich aus der Originaldatei eine temporäre Tabelle, welche keine absoluten Kurse, sondern relative Werte enthält. Diese relativen Werte werden aus dem relativen Abstand des Close (des Vorgängerdatensatzes) zum aktuellen Open, sowie aus dem relativen Abstand des aktuellen Open zu den aktuellen High, Low und Close gebildet.

2. im zweiten Schritt werden diese relativen Sätze zufallsgesteuert (klar haben Computer nur die Fähigkheit, sog. Pseudo-Zufallszahlen zu erzeugen - aber durch den sog. "random seed" bei jeder Dateisimulation ist gewährleistet, daß das Programm "ausreichend" zufällig arbeitet und somit keine reproduzierebare Simulationen erzeugt!) in neuer zeitlicher Abfolge zugeordnet.

Ausgangspunkt ist dabei der erste Datensatz der Originaldatei. Die Kurven der simulierten Dateien sehen somit über die gesamte Laufzeit alle etwas anders aus. Der Close-Kurs des letzten Original-Datensatzes wird aber bei der Simulation annähernd erreicht.

(in der professionellen Version sind die Abweichungen bzgl. des Schlußkurses etwas größer, da zusätzlich auch gewährleistet wird, daß absolute Obergrenzen der Originalkursschwankungen nicht überschritten werden. Hier sorgt ein Ausgleichsalgorithmus für noch etwas realistischere Simulationen!)

Warum der Aufwand?

Wenn ein Tradingsystem nun sowohl mit den Originaldaten, als auch mit simulierten Dateien ähnliche Ergebnisse bringt, kann es zumindest bzgl. Überoptimierung oder "curve fitting" als relativ stabil angesehen werden.

Dies ist das Hauptziel der Funktion "Datensimulation" in meiner MCS-Software.

Zukünftige Kurse kann man auch mit MCS nicht prognostizieren, aber man kann ein System per MCS (wie oben beschrieben) durchaus auf Robustheit testen.

Das Restrisiko im "echten" Handel kann auch ein MCS-Tool nicht vermeiden und der "Zen Monte Carlo Simulator" ersetzt ein Systemtest-Tool wie Metastock auch nicht - aber er ergänzt es, um das Risiko für den Anwender um ein weiteres (wesentliches) Stück einzuschränken und auch die profitchancen realistischer darzustellen, als dies z.B. ein normaler Metastock System Report hergibt!

ciao,
zentrader

http://www.zentrader.de

gautama2
Mitglied seit 11 Jahre 11 Monate

@zentrader:
Danke für die Antwort.
"2. im zweiten Schritt werden diese relativen Sätze zufallsgesteuert (klar haben Computer nur die Fähigkheit, sog. Pseudo-Zufallszahlen zu erzeugen - aber durch den sog. "random seed" bei jeder Dateisimulation ist gewährleistet, daß das Programm "ausreichend" zufällig arbeitet und somit keine reproduzierebare Simulationen erzeugt!) in neuer zeitlicher Abfolge zugeordnet."

Damit hast du zwar realtiv zufällige Variationen der realen Kursverläufe, aber ob das reicht?
Prüfst Du auch, ob Du in etwa gleich viele Ups und Downs in deinen relativen Sätzen hast? wenn du z.B. 80% Ups hast, dann ist es egal wie Du sie verteilst.

Ansonsten klingt es recht brauchbar.

Ich frage deshalb, weil ich schon länger versuche so etwas zu basteln, aber bisher neben den anderen Aktivitäten nicht voran gekommen bin.
Ich halte es für gut wenn man realitätsnahe Kursverläufe erzeugen kann, um mehr Sicherheit zu haben, daß man nicht zu sehr maßschneidert.

Desweiteren schwebt mir vor eine Art Teststrecke für HS zu bauen.
Also Kursverläufe, bei denen bestimmte Parameter kontrolliert eingebaut sind.
Wenn man ein HS darüber jagt, dann soll man sehen in welchen Bereichen der Teststrecke es klappt oder nicht klappt, um dann z.B. sagen zu können "Aha, da wird die Vola kleiner, da fängt es an zu stottern, hier in der Gap Kurve fliegt es raus" oder so in der Art.
Also kontrollierte Variationen im Kursverhalten. Wie eine Teststrecke bei Autos mit genau definierten Höhen und Abständen von Unebenheiten usw.
Beim Test über einem realen Verlauf sieht man zwar, wo das System versagt, aber dann muss man anschließend schauen welche Parameter im Kursverlauf dafür verantwortlich sein könnten und das ist meist ein Mix aus verschiedenen Bedingungen, die da zusammen kommen. Auf einer Teststrecke wäre das vielleicht schneller klar. So die Überlegung. Dazu gehört natürlich, welche Parameter man kontrolliert verändert usw. Das Pflichtenheft der Teststrecke ist recht rudimentär. Aber das ist der Hintergrund weshalb ich mich mit der "Herstellung" von Kursverläufen befasse. Hinterher weiß man dann ob es nützlich ist, aber das läuft eben bei mir so nebenbei ab.

Vielleicht hätte metatrader als Mathematiker Anmerkungen dazu, die entweder bei der Entwicklung helfen oder eine Menge Arbeit sparen, wenn es eine Schnapsidee ist.

Viele Grüße

zentrader
Mitglied seit 11 Jahre 11 Monate

@gautama2,

(...Damit hast du zwar realtiv zufällige Variationen der realen Kursverläufe, aber ob das reicht?...)
Ob es reicht, weiß ich natürlich auch noch nicht und bin ich offen für weitere Ansätze. Aber zumindest ist diese Simulation eine deutliche Verbesserung ggü. der bisherigen Lage, nur die historischen Originalkurse für die Systemtests zu verwenden.

(...Prüfst Du auch, ob Du in etwa gleich viele Ups und Downs in deinen relativen Sätzen hast? wenn du z.B. 80% Ups hast, dann ist es egal wie Du sie verteilst...)
Wenn ich Dich richtig verstanden habe, zielt die Frage darauf ab, ob gleichviele weiße und schwarze Candlesticks in Original- und Simulationsdateien vorhanden sind? Antwort: ja natürlich, nur eben in anderer zeitlicher Verteilung und i.d.R. auch in anderen absoluten OHLC-Kurswerten.

Dieser Ansatz erhält das sog. "statistische Muster" (siehe Mandelbrot/Hudson) der Originalkurse und erzeugt andererseits aber eine neue Kurskurve.

Kritisch angemerkt wurde in E-Mails, die ich diesbzgl. erhalten habe u.a. die Tatsache, daß aufeinanderfolgende Kurse abhängig voneinander sein können und bei dieser Methode Abhängigkeiten der Kurse verloren gingen. Diese gehen wirklich verloren, aber dies nehme ich bewußt in Kauf, da ich diese historisch aufgetretene Konstellation eben nicht zwangsweise in den Simulationsdaten wiederfinden möchte, sondern nur zufällig.

Dein "Teststreckenansatz" klingt nicht schlecht. Eigentlich würde ich solch eine Handelssystemanalyse-Funktionalität aber von der Systemtestsoftware wie z.B. Metastock, Tradestation etc. erwarten (zumindest Metastock EOD mit der ich arbeite, hat so etwas leider nicht).

ciao,
zentrader

gautama2
Mitglied seit 11 Jahre 11 Monate

@ zentrader

Meine Frage zielte darauf ab, ob Du in den Originaldateien gleich viel weiße und schwarze Kerzen hast bzw. gleich viel Ups und downs von Close zu Close, damit Du nicht nur einen Uptrend umverteilst, und trotzdem nur wieder einen Uptrend hast, sondern wirklich unterschiedliche Verläufe hast, wo auch mal ein anderer Trend entstehen kann. Angenommen du hast 30% Downs und 70% Ups, dann kannst du die verteilen wie Du willst, du bekommst trotzdem überwiegend einen Uptrend beim Durchschütteln. Dass Du gleich viele Ups und Downs in den Simulationsdateien hast ist klar, aber achtest Du darauf, daß das Original bei Dir auch gleich viele Ups und downs hat bevor du schüttelst oder rührst?

Darum ging es mir.

Viele Grüße

zentrader
Mitglied seit 11 Jahre 11 Monate

@gautama2,

nun dies ist keine spezielle Funktion in der Software.

Ob man Daten nimmt, die i.e.Linie Uptrends, Downtrends, Seitswärtsverteilungen oder eben alles zusammen beinhalten, entscheidet man bei Auswahl der jeweiligen Originaldatei.

Das muß auch jeder selbst entscheiden. Hier scheiden sich ja noch die Geister: die einen wollen das System für alle Trend- oder "Nicht"Trend-Phasen bauen, die anderen bauen bewußt an unterschiedlichen Systemen für jede Marktphase.

Abhängig von der Datenauswahl bzw. der Auswahl des entsprechenden Zeitabschnitts bzgl. der Originaldaten kann man so auch die dazugehörigen Simulationsdaten erzeugen.

Aktuell habe ich jedoch keinen Algorithmus implementiert, der z.B. aus einer Originalkursreihe mit 30% downs und 70% ups automatisch Simulationsdaten mit 50% downs und 50% ups generiert. Interessanter Gedanke - muß ich mal drüber nachdenken, wenn ich mehr Zeit habe...

ciao,
zentrader

gautama2
Mitglied seit 11 Jahre 11 Monate

Zu Monte-Carlo-Simulation eine Freeware.
http://www.tickquest.com/product/equitymonaco.html

Viele Grüße

zentrader
Mitglied seit 11 Jahre 11 Monate

@gautama2,

habe den Link auch auf meiner MCS-Page:
http://www.zentrader.de/mcs.html

Es gibt jedoch mehrere Gründe, warum ich aktuell meine Software (für die es natürlich auch eine Freeware-Version gibt => http://www.zentrader.de/download.html) dem Tickquest-Produkt vorziehe... :-)

ciao,
zentrader

gautama2
Mitglied seit 11 Jahre 11 Monate

Sorry. Hatte den Link in einer Newsgroup gefunden und nicht in Erinnerung, daß er auch auf Deiner Seite ist.
Es sollte kein Hinweis auf ein "Konkurrenzprodukt" sein :)

Es ist in Ordnung, daß Du Deine Soft vorziehst.

Viele Grüße

zentrader
Mitglied seit 11 Jahre 11 Monate

@ gautama2,

das ist schon in Ordnung.

Ich mag Konkurrenz - nur so kann man selbst besser werden. :-)

ciao,
zentrader

Gast

Dies ist das Donchian Breakout System von Pruitt das ich umgesetzt habe
und zugegebenermaßen eigentlich deren stops gar nicht richtig geprüft habe,
ob die überhaupt das machen was sie meiner Meinung nach machen sollten

Gast

und weiter

Gast

Hi,

Ich habe mir die Kommentare zu der MCS angeschaut und war ziemlich beeindruckt.
Wie es oft der Fall ist, konnte ich mich nicht mit den Links beschäftigen, sofern das Englische nicht noch ein zusätzlicher Handicapfaktor bedeuten kann. Wer hat soviel Idealismus ?

Zwei wichtige Kenngrößen sind bei Backtests %Gewinnertrades u. das Payoffratio.

Wenn eine erzeugte Zufallszahl kleiner ist als %Gewinnertrades, müßte das doch bedeuten dass das System Kerzenkombinationen u. Kurven vorgesetzt bekommen mit denen es nicht so gut klar kommt, also schlechter reagieren wird. Irgendwie verständlich dass man es dann mit Verlusten bestraft, nämlich was liegt naheligender als das System mit dem durchschnittlichen Verlust per Verlierertrade zu bestrafen usw.
Ich schreibe bewußt ihn der Zukunft weil diese z.B. 500 Simulationen (Trades) in der Zukunft stattfinden werden.

Nennt man diesen Algorithmus Monte Carlo Simulation ?

Ich habe nun das Sheet ausgebaut, und noch die leicht ermittelnde Größe most consequtive wins ermittelt. (Zentrader hatte mir ja schon die Spur gelegt)

Ich habe mich weiter gefragt welche Metastocksystemgrößen könnte man noch einbauen.
Wer kann mir hier Hinweise geben, und natürlich brauche ich den Algoritmus dazu. ?

Ich hatte mir auch Gedanken gemacht, ob der Account Drawdown einer der Systemgrößen
System Close Drawdown, System Open Dradown oder Max Open Trade Drawdown sein könnte.
Ich überlegte kann man die einbauen und wie heißt der Algorithmus ?

Der im Sheet angegebene Account Drawdown wird wohl Max OpenTrade Drawdown nicht sein können, da dieser der größte Einzelverlust ist, den ein Trade erzeugt.
System Open Drawdown kann es auch nicht sein, da ich real alle Trades (z.B. 500) schließen werde in der Zukunft.
Aber System Close Drawdown kommt (ich kann mir nicht helfen) der Sache sehr näher.

Ich denke dass der angegebene Accout Drawdown im Sheet den tiefsten Stand des Kontos darstellt, beginnend bei Anfangskapital 0. (Min C7:C506) und zwar weil man alle 500 Trades schließen wird
Und das ist für mich eigentlich die Metastockgröße System Close Drawdown.

Tja was meint Ihr dazu ?

Das dürfte im Schluss für mich heißen, dass ich vielleicht noch 2 Drawdown-Größen einbauen könnte (wenn es noch was bringt, außer Förderung von Unübersichtlichkeit) ?
Na Vorschläge für den Algorithmus ?

Danke

Gast

Hi,

Leider ist mir ein kleiner Fehler unterlaufen. Natürlich muss es so lauten:

Wenn eine erzeugte Zufallszahl kleiner ist als %Gewinnertrades, müßte das doch bedeuten dass das System Kerzenkombinationen u. Kurven vorgesetzt bekommen mit denen es gut klar kommt, also besser reagieren wird. Irgendwie verständlich dass man es dann mit Gewinnen belohnt, nämlich was liegt naheligender als das System mit dem durchschnittlichen Gewinn pro Gewinnertrade 6958 € zu belohnen. usw.

Umgekehrt wenn die erzeugte Zufallszahl ein Ersatz%Gewinnertrade von z.B. 0,88 ist, ist das System zweiter Sieger und man muss dem System den vollen Verlust geben. Nämlich den Verlust den ein einzelner Trade in der Vergangenheit im Schnitt hatte nämlich 3558 €.

zentrader
Mitglied seit 11 Jahre 11 Monate

Habe diesen alten Thread nochmals aktiviert, da das Thema "Monte Carlo Simulation" offensichtlich im Finanzwesen langsam vorankommt, nun auch bei der Kalkulation der wahrscheinlichen Höhe von US-Pensionsansprüchen:
http://www.latimes.com/business/investing/la-plan4retire-story15,1,2355170.story?ctrack=1&cset=true

Interessant auch diese Bemerkung:

"...This powerful tool, known as a Monte Carlo simulation, is little understood in financial-planning circles, but it can have a dramatic impact on how you construct your portfolio..."

Little understood / wenig verstanden - ich denke dies gilt auch für den Einsatz der MCS bei der Systementwicklung.

Ich versuche, dieses (bislang per Hobby gepflegte) Thema nun etwas professioneller anzugehen - neue Infos auf meiner Website.

ciao,
zentrader

YingYang
Mitglied seit 11 Jahre 11 Monate

Das Posting #137 von Zentrader

http://www.terminmarktwelt.de/cgi-bin/nforum.pl?F=47&CP=0&ST=169481&page=5

zeigt Simulationen mit „Zen Monte Carlo Simulator v.5.1“

Dessen Einstellungen überprüfte ich mit einem (von mir erweiterten) Exceltool, das Zentrader 2005 zum Download angeboten hatte: es führt im Prinzip die gleichen System-Simulationen durch wie der Simulator v.5.1.

Die Excel-Simulationen brachte ähnliche Ergebnisse wie das in #137 vorgestellte Programm.

Für die Berechnung des Account-Drawdowns nimmt Zentraders Programm für weitere Auswertungen den niedrigsten Wert einer jeden Simulation (und keinen Draw-Down).

Zusätzlich simulierte ich mit dem maximalen „Simulations-Draw-Down“ eines Laufes. Grund: Wäre man genau vor dem Draw-Down in den Markt eingestiegen, hätte man einen Verlust in Höhe des „maximalen Simulations-Draw-Down“ erzielt

Die unterschiedlichen Ausgangswerte, können zu extrem unterschiedlichen Ergebnissen führen.

Nach meinen Simulationsergebnissen muss ein Trader bei Berechnungen mit „Simulations-Draw-Down“ ein wesentlich größeres Kapitalpolster vorhalten, um gegen Überraschungen gewappnet zu sein.

Bei 10000 Simulationen mit den Einstellungen von #137 gab es folgende Ergebnisse.

Zentrader meine Änderung Max Draw Down -7346,8 -9148,4 Draw-Down_Mittelwert -499,8 -3202.9 Account DD- VAR -3055, 1 -5912,79

Das Bild zeigt die unterschiedlichen Ansatzpunkte zur Draw-Down Auswertung.:
Simulator v.5.1 nimmt den niedigsten Simulations-Wert,
ich verarbeite den größten Draw-Down einer Simulation, der hier zufällig beim niedrigsten Simulations-Wert liegt.

Über Kommentare zum geänderten Simulationsansatz würde ich mich freuen.

Grüße

YingYang

zentrader
Mitglied seit 11 Jahre 11 Monate

@YingYang,

man kann diese Aussage so pauschal nicht treffen.

Der Zen Monte Carlo Simulator v5.1 hat für die Simulationsläufe als Startlinie des Accounts immer die Ausgangsbasis (Gewinn/Verlust) "0". Der sog. Account DD wird bei entsprechendem Mengengerüst dem von Dir verwendeten DD (mit variablem Startpunkt) entsprechen. Das ist der Unterschied von einer MCS mit vielen tausend Simulationsläufen zu einer Auswertung mit historischen Daten (mit nur einem Lauf), wo dieser "Max DD" i.d.R. meist höher als der methodisch von mir gewählte "Max Account DD" sein sollte.

Ein Beispiel für eine MCS Simulation zu Deinem Beispiel (unser Mail-Austausch), wo der Zen MCS den Wert Deiner Excel-Simulation sogar übertrifft ist als Anlage hier beigefügt.

Grund für unterschiedliche Simulationsergebnisse sind i.e.Linie unterschiedliche "Pseudozufallszahlen"-Mechanismen und sonstige Algorithmen, die zur Beeinflussung der Zufallszahlerzeugung herangezogen werden etc.

Wichtig ist es, dass man diesen MCS Stresstest richtig einschätzen kann. Er zeigt einem eine systemimmanente mögliche Abweichung von historischen Ergebnissen, die ok ist (ohne dass ein sog. Systembruch vorliegt) - allerdings beschränkt auf ein Marktszenario unter gleichen Marktbedingungen wie bei den historischen Daten! (auch wichtig: es ist immer eine Schätzgrösse und nur eine Komponente für das notwendige Tradingkapital, da da durch andere Bedingungen wie z.B: Margins, Intraday-Schwankungen etc. immer noch ein Aufschlag kalkuliert werden muss).

Möchte man die Systemtauglichkeit jedoch auch unter geänderten Marktbedingungen testen, kommt die sog. Datensimulation ins Spiel. Hiermit sowie mit zusätzlichen Systemtests auf Basis simulierter Daten kann die Eignung des Systems auch unter anderen Bedingungen getestet werden. Der Zen Monte Carlo Simulator bietet hier eine Unterstützung zur Generierung künstlicher Daten über diverse Methoden und Parameter, die sonst am Markt schwerlich zu finden ist.

ciao,
zentrader

YingYang
Mitglied seit 11 Jahre 11 Monate

@Zentrader

Ein Draw-Down ist nach meinem Verständnis immer negativ, weil er einen Verlust bedeutet: Es wird von einem Hochpunkt zu einem Tiefpunkt gemessen.

In #44 sieht man für den Accout-Draw-Down Min einen Wert von +450, das bedeutet im System einen Gewinn!! Das hatte mich stutzig gemacht.

Dein System misst nicht den maximalen DD sondern den niedrigsten Wert der Equity-Kurve bei einer Simulation.

Unter 10000 Messungen von Equity Simulationen-war einmal der niedrigste Wert 450 Euro. Das ist kein Draw-Down!

Der "Account-Drawdown-Mittelwert" bedeutet bei Dir: Der Mittelwert der niedrigsten 10000 Equity-Werte lag bei -472. Das bedeutet nicht, dass der Mittelwert der tatsächlichen DD -472 war! Den kann man in meinem Beispiel ablesen, er um den Faktor 5 größer.

Die Größenordnungen der Mittelwertangaben unterscheiden sich so stark, dass man beim besten Willen nicht von ähnlichen Ergebnissen sprechen kann.

Gruß

YingYang

zentrader
Mitglied seit 11 Jahre 11 Monate

@ YingYang [#45]

Wie schon erklärt, habe ich mich damals entschieden, alle Simulationsläufe bei "0" beginnen zu lassen und für die Tiefstände den Kunstbegriff "Account DD" gewählt. Mag sein, dass ich dies eventuell in einer zukünftigen Version ändere, um solche Verwirrungen zu vermeiden...

Einen grossen Nutzen wird dies aber "unter dem Strich" für die Risikoabschätzung nicht ergeben (siehe Beispiel und Erläuterungen in #44), da der wesentliche Risikowert (der bei mir sog. "max Account DD") sich bei entspr. Mengengerüst nicht gross von Deinem "max. DD" unterscheiden wird. Das kann er ja auch nicht, da es der Simulation per Zufallskomponente "egal" ist, ob die längste DD-Strecke beim ersten Trade oder eben mittendrin in der Simulationsperiode beginnt.

ciao,
Zentrader

YingYang
Mitglied seit 11 Jahre 11 Monate

Hier mal eine andere Simulation.

http://www.spiegel.de/wissenschaft/mensch/0,1518,675530,00.html

Vielleicht kann man damit wetten? Oder lieber doch nicht??

Gruß

YingYang

zentrader
Mitglied seit 11 Jahre 11 Monate

@ YingYang [#45]

vielen Dank nochmals für den Gedankenaustausch.

Ich habe Deine "konstruktive" Kritik so umgesetzt, dass ich in der neuen Version (Zen Monte Carlo Simulator v5.11) eine alternative Berechnungsmethode optional ermögliche, um den dynamischen max DD während der Simulation unabhängig vom Startpunkt des Accounts abzubilden (Option "maxDD Kompatibilität").

Ein mögl. Simulationsergebnis für unser Beispiel (#43, #44) ist als Bild angehängt.

ciao,
zentrader

YingYang
Mitglied seit 11 Jahre 11 Monate

@Zentrader,

die Zahlen entsprechen meinen Zahlen.

Das ist gut für die neue Version (Zen Monte Carlo Simulator v5.11)

Die Zahl Pi kann man mit und ohne Simulation berechnen. Ohne Simulation sind die Ergebnisse genauer.

Kann man Deine Zahlen ebenso ohne Simulation berechnen?

Gruß

YingYang

zentrader
Mitglied seit 11 Jahre 11 Monate

@ YingYang [#49]

die Berechnung der MCS verwendet neben den jeweiligen Systemdaten (aus den historischen Tests) den sog. "Pseudozufallszahlen"-Algorithmus meiner Programmierumgebung (PowerBasic/Win v8.04: http://www.powerbasic.com ) sowie einen eigenen Algorithmus und erzeugt dadurch die Entscheidung bzgl. der Trades.

Ich kann diese sicherlich nur so (also mittels Simulation) berechnen... :-)

ciao,
zentrader

YingYang
Mitglied seit 11 Jahre 11 Monate

@Zentrader,

da wäre ich mir nicht so sicher. Einige Zahlen der Tabelle oben sind mit einfacher Statistik ohne Simulation zu berechnen. :)

Gruß

YingYang

Rückrufservice
Beschreiben Sie bitte Ihr Anliegen, damit wir uns auf den Rückruf vorbereiten können.
Ja, ich habe die Datenschutzerklärung zur Kenntnis genommen und willige ein, dass die von mir angegebenen Daten inklusive der Kontaktdaten zwecks Bearbeitung der Anfrage und für den Fall von Anschlussfragen elektronisch erhoben und gespeichert werden. Meine Daten werden dabei nur streng zweckgebunden zur Bearbeitung meiner Anfrage genutzt und nicht ohne Einwilligung weitergegeben. Diese Einwilligung kann jederzeit mit Wirkung für die Zukunft widerrufen werden.
Fragen?

Sie haben Fragen zu ZMP Live? Unser Team steht gerne hilfsbereit zu Ihrer Verfügung. Senden Sie uns gerne eine Nachricht:

Es gilt unsere Datenschutzerklärung

Jetzt registrieren

Jetzt registrieren und ZMP Live+ 14 Tage kostenlos testen!
  • Dauerhaft kostenfrei
  • Keine Zahlungsinformationen erforderlich