English Русский 中文 Español 日本語 Português
Testen von Strategien mit echten Ticks

Testen von Strategien mit echten Ticks

MetaTrader 5Beispiele | 5 August 2016, 13:53
2 381 0
MetaQuotes
MetaQuotes

Der Artikel liefert die Ergebnisse des Tests einer einfachen Handelsstrategie in drei Modi: "1 Minute OHLC" unter Verwendung von Open, High, Low und Close Preise der Minutenbalken; detaillierte Modellierung im "Jeder Tick" Modus sowie der genaueste Modus "Jeder Tick basierend auf echten Ticks" unter Anwendung von tatsächlichen historischen Daten.

Der Vergleich der Ergebnisse erlaubt uns einerseits die Qualität der verschiedenen Modi zu beurteilen und andererseits hilft es uns den Tester effizienter zu verwenden, um schneller Ergebnisse zu erhalten. Der "1 Minute OHLC" Modus ermöglicht es, schnelle geschätzte Testergebnisse zu erhalten,  der Modus "Jeder Tick" liegt näher an der Realität, während das Testen auf echten Ticks die genaueste aber auch zeitaufwendigste Methode ist. Behalten Sie im Hinterkopf, dass Fehler in der Logik des Handelsroboters die Zahl der Handelsoperationen beeinflussen, was die Testergebnisse der Strategie zweifelhafter erscheinen lässt.

Handelsstrategie

Wir haben eine einfache Handelsstrategie entwickelt, die auf einem Ausbruch aus einer Range während der letzten RangeLength Balken beruht. Die Handelsregeln sind wie folgt: eine Range der höchsten und tiefsten Preise für die letzten N Balken wird bei der Eröffnung eines neuen Balkens berechnet. Der Standardwert des RangeLength Parameter des angehängten EA ist 20 Balken. Er steht für die Breite des Fensters in dem eine Range gebildet wird.

Nach dem ersten Ausbruch aus der Range nach oben oder unten, wird das Sammeln der Statistiken über die eintreffenden Ticks gestartet (Anzahl von Ticks über und unter dem durchbrochenen Rangelevel). Sobald die Anzahl der eintreffenden Ticks TicksForEnter=30 übersteigt (oder gleich ist), wird eine Entscheidung zum Einstieg in den Markt zum aktuellen Preis getroffen. Wenn aus der Range nach oben ausgebrochen wird, sollte die Anzahl der Ticks über dem Ausbruchslevel die Anzahl der Ticks unter dem Level übersteigen. In diesem Fall öffnet der EA eine Long-Position. Der gegenteilige Fall führt zu einer Short-Position.

Eine offene Position wird nach BarsForExit Balken geschlossen. Wie Sie sehen können, sind die Regeln ziemlich einfach. Siehe untenstehenden Screenshot zur Verdeutlichung:

Lassen Sie uns nun betrachten, wie sich die Testergebnisse ändern, wenn einer der drei verschiedenen Tick-Modellierungsmodi zum Einsatz kommen.

Testen

Die Handelsstrategie wurde auf EURUSD H1 im ersten Halbjahr 2016 – von 01.01.2016 bis 30.06.2016 getestet. Alle EA Parameter werden auf Standardwerte gesetzt, denn unser Ziel ist es, einfach die Strategie in den verschiedenen Modellierungsmodi zu testen.

Vergleich der Ergebnisse der verschiedenen Testmodi

Die Testergebnisse der verschiedenen Modi werden in der Tabelle dargestellt. Was einem als erstes ins Auge fällt ist der Unterschied in der Anzahl der Handelsoperationen. Somit sind alle anderen Testergebnisse auch unterschiedlich. Das Testen im Modus "1 Minute OHLC" dauerte 1.57 Sekunden was 23 mal schneller als im "Every tick" Modus ist. So ein Unterschied ist wesentlich, wenn Sie die Eingaben für ein Handelssystem optimieren.

Der Modus "Jeder Tick basierend auf echten Ticks" seinterseits hat sich als noch zeitintensiver herausgestellt - 74 Sekunden verglichen mit 36.7 Sekunden im "Jeder Tick" Modus. Dies kann leicht durch das Fakt erklärt werden, dass mehr als 34 Millionen Ticks modelliert wurden, als die echten Ticks verwendet wurden, was beinahe zweimal so viel ist wie im "Jeder Tick" Modus. Daher wird umso mehr Zeit für einen Durchlauf des Strategietesters benötigt, je mehr Ticks im Test verwendet werden.

Parameter 1 Minute OHLC Jeder Tick Jeder Tick
basierend auf echten Ticks
Ticks 731 466  18 983 485 34 099 141
Net profit 169.46 -466.81 -97.24
Trades 96  158 156
Deals 192  316 312
Equity drawdown % 311.35 (3.38%)  940.18 (9.29%) 625.79 (6.07%)
Balance drawdown 281.25 (3.04%) 882.58 (8.76) 591.99 (5.76%)    
Profitable trades (%) 50 (52.08%)  82 (51.90%) 73 (46.79%)
Average consecutive wins 2 2 2
Testzeit einschließlich Generierung der Ticks 1.6 Sekunden 36.7 Sekunden 74 Sekunden (1 Minute 14 Sekunden)

Die Testberichte der verschiedenen Modellierungsmodi werden unten als animierte GIF-Bilder dargestellt was Ihnen den Vergleich der Parameter ermöglicht.

Der Kontostand- und Equitygraph sind ebenfalls unterschiedlich. Wie wir sehen, ist die einfache Strategie nicht sehr beeindruckend - zunehmenden Perioden folgen DrawDowns und der Testgraph schaut eher aus, wie eine Verkettung von Zufällen. Die Strategie ist zweifellos nicht für echtes Handeln geeignet, da die Ergebnisse ähnlich wie bei einem Münzwurf sind.

Handelssystem basierend auf Ticks

Das Handelssystem, das wir vorgestellt haben, ist stark abhängig von der Modellierungsmethode nämlich der Anzahl von eingehenden Ticks und der Reihenfolge ihres Eintreffens. Beim Testen im "1 Minute OHLC" Modus, haben wir die geringste Anzahl von Ticks was für das Öffnen einer Position möglicherweise nicht ausreicht. Die Modi "Jeder Tick" und "Jeder Tick basierend auf echten Ticks" können eine recht unterschiedliche Reihenfolge beim Eintreffen der Ticks haben. Im Falle des Modus "Jeder Tick" können wir eine monoton steigende oder monoton fallende Folge von Ticks erhalten was einen Markteinstieg praktisch garantiert, sobald die Range durchbrochen wurde. Im Falle von "Jeder Tick basierend auf echten Ticks" wird die Historie der echten Ticks verwendet was zu unerwartetem Verhalten der Preisdynamik führt.

Wir können also sehen, dass Einstiegs- und Ausstiegspunkte auf den Charts unterschiedlich sind, selbst zu Beginn des Testintervalls. Außerdem werden auch einige Trades ausgelassen.

Vier Tickgenerierungsmodi

Der MetaTrader 5 Strategietester ermöglicht das Überprüfen von Handelsstrategien in vier Tick-Modellierungs-Modi, welche im Artikel "Die Grundlagen des Testens in MetaTrader 5" beschrieben sind. Der schnellste und gröbste Modus ist "Nur Öffnungspreise", bei dem Handelsoperationen nur zu Beginn eines neuen Balkens ausgeführt werden können. Innerhalb eines Balkens sind keine Handelsaktionen möglich. Dieser Modus ist am besten geeignet für Strategie die nicht von der Preisbewegung innerhalb von Balken abhängen.

Der "1 Minute OHLC" Modus ist etwas genauer, da er die Modellierung von Open, High, Low und Close Preisen eines jeden Balkens der in der getesteten Preishistorie enthalten ist, verwendet. Das beduetet, dass beim Testen von H1, der EA 240 Mal innerhalb einer Stunde aufgerufen wird: zu Beginn eines jeden 60-Minuten-Balkens, der OnTick() Handler wird 4 Mal aufgerufen (für jeden der OHLC Preise). Dieser Modus ermöglicht bereits die Verwendung von Trailing Stop und Anzeige der Preisdynamik auf anderen TimeFrames und Indikatoren falls notwendig (zum Beispiel wenn die Elder's Triple Screen Strategie getestet wird).

Diese zwei Modi sind gut geeignet für das Testen einer großen Menge von Handelsstrategien, da die meisten Händler Roboter für den Handel bei einem neuen Balken entwickeln. Wenn Sie aber eine genauere und detailliertere Modellierung der eingehenden Ticks benötigen, müssen Sie den Modus "Jeder Tick" verwenden. In diesem Modus wird das Preisverhalten innerhalb jedes Minutenbalkens zusätzlich modelliert. Die Ticks werden gemäß komplexer (aber vordefinierter) Regeln generiert. Der Preismodellierungsmechanismus für diesen Modus wird im Detail im Artikel "Der Algorithmus der Tick Generierung innerhalb des Strategietesters von MetaTrader 5" beschrieben.

Wenn Sie die genaueste Darstellung der historischen Daten im Strategietester brauchen, verwenden Sie den "Jeder Tick basierend auf echten Ticks" Modus. In diesem Modus lädt der Tester die echten Ticks vom Handelsserver des Brokers herunter und verwendet diese für die Anzeige der Preisentwicklung. Für den Fall, dass für bestimmte Zeitintervalle keine Ticks vorliegen, simuliert der Tester den Preis auf die gleiche Weise wie im "Jeder Tick" Modus. Wenn der Broker also alle Historiendaten des gewünschten Symbols hat, können sie das Testen mit echten historischen Daten ohne künstliche Modellierung durchführen. Der Nachteil dieses Modus ist die signifikate Zunahme der Testzeit wie sie in obenstehender Vergleichstabelle gezeigt wurde.

Beginnen Sie die Entwicklung eines Systems im "1 Minute OHLC" Modus

Wie sie sehen können, können Sie nicht an allen Fronten gleichzeitig gewinnen - wenn wir eine Handelsidee schnell überprüfen möchten ohne allzuviel Zeit zu investieren, müssen wir die Genauigkeit durch Verwendung der einfachen Preissimulationsmodi opfern. Wenn die Genauigkeit der Einstiegspunkte und Reihenfolge der Handelssignale kritisch sind, müssen wir die genauen Modi verwenden, was mehr Zeit in Anspruch nimmt.

Vor dem Testen einer Handelsstrategie sollten Sie im Hinterkopf behalten, dass der Preissimulationsmodus den Sie auswählen die Genauigkeit der Ergebnisse ebenso beeinflussen wird wie die aufzuwendende Zeit, um diese Ergebnisse zu erzielen. Wenn Sie eine Handelsstrategie schnell prüfen und beurteilen möchten, verwenden Sie den "1 Minute OHLC" Modus. Das erlaubt Ihnen das Potential des Handelssystems ohne großen Zeitaufwand zu evaluieren.

Nächster Schritt – Debugging und "Jeder Tick" Modus

Wenn die vorläufigen Ergebnisse zufriedenstellend sind, können Sie mit genauere Simulations-Modi fortfahren, das Handelssystem zu debuggen und analysieren. Hier wird das Strategie Debugging im Testmodus praktisch, da Sie hier Haltepunkte festlegen und den Status von Variablen, sowie Ausführung von integrierten Bedingungen überprüfen können. Sie können hier auf unangenehme Überraschungen stoßen, wenn Sie nicht vorher einige Nuancen Ihres Systems betrachtet haben.


Genauigkeit vs Geschwindigkeit

Wie wir aus den Testergebnissen der drei Modi sehen, können und sollten Händler einen Tick-Modellierung Modus wählen, der am besten zu ihren Trading-Strategien passt. Wenn Sie Ihr System auf einem täglichen TimeFrame testen, wird der "Nur Öffnungspreise" Modus wahrscheinlich am besten passen, da die hohe Geschwindigkeit nicht die erzielten Ergebnisse beeinflusst.

Wenn Sie eine Scalping oder Arbitrage Strategie entwickeln oder wenn Ihr Algorithmus auf Indikatoren oder synthetischen Echtzeit-Indikatoren beruht, dann brauchen sie den "Jeder Tick basierend auf echten Ticks" Modus. Das Testen wird viel zeitaufwendiger aber Sie erhalten Ergebnisse, die so nah an der Realität wie möglich liegen. Behalten Sie aber im Hinterkopf, dass sich Geschichte nie wiederholt. Selbst die gründlichst ausgewählten Eingaben können keinen Erfolg garantieren, wenn Sie den EA auf einem Echtkonto ausführen.

Von den genannten Modi sind "1 Minute OHLC" und "Jeder Tick" schneller und weniger genau als "Jeder Tick basierend auf echten Ticks". Wir können also eine Regel formulieren, die Testzeit und Genauigkeit beschreibt:

Je schneller der Test, desto niedriger ist die Genauigkeit der Handelssimulation. Je höher die Genauigkeit der Preisentwicklung, desto mehr Zeit wird benötigt, um einen Test auszuführen.

Handelsserver sammeln echte Tickdaten für viele Jahre und der MetaTrader 5 Strategietester kann diese automatisch im Modus "Jeder Tick basierend auf echten Ticks" herunterladen. Je genauer aber der Test ist, desto mehr Ressourcen werden benötigt. Daher sollten Sie immer ein Gleichgewicht zwischen Genauigkeit und Geschwindigkeit anstreben. 

Nicht alle Strategien erfordern eine detaillierte Modellierung in der Anfangsphase der Entwicklung. Eine bedachte Auswahl der Testmodi spart Ihnen Zeit und sortiert eine große Anzahl unpassender Strategien aus!

Nach dem Lösen der Hauptaufgabe (Entwicklung eines profitablen automatischen Handelssystems) können sie eine Optimierung mit echten Ticks durchführen. Hier kann die Macht des MQL5 Cloud Netzwerks hilfreich sein.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/2612

Beigefügte Dateien |
SimpleBreakOut.mq5 (20.38 KB)
Grafische Interfaces V: Das Combobox Control (Kapitel 3) Grafische Interfaces V: Das Combobox Control (Kapitel 3)
In den ersten zwei Kapiteln des fünften Teils dieser Serie, haben wir Klassen für die Erzeugung einer Scrollbar und einer ListView entwickelt. In diesem Kapitel werden wir über die Erzeugung einer Klasse für eine ComboBox sprechen. Hierbei handelt es sich ebenfalls um ein Komponenten-Control, welches neben anderen Elementen auch Elemente enthält, die wir in den vorherigen Kapiteln des 5. Teils besprochen haben.
Universal Expert Advisor: Einbindung der Standard MetaTrader Module für Signale (Teil 7) Universal Expert Advisor: Einbindung der Standard MetaTrader Module für Signale (Teil 7)
Dieser Teil des Artikels beschreibt die Möglichkeiten der Einbindung der Signal-Module, Teil der Standard-Bibliothek des MetaTraders, durch CStrategy. Der Artikel beschreibt, wie man mit Signalen arbeitet und wie man eigene Strategien auf ihrer Basis erstellt.
LifeHack für Trader: ein back-Test ist gut, und vier – ist besser LifeHack für Trader: ein back-Test ist gut, und vier – ist besser
Vor jedem Trader bei dem ersten einzelnen Test steht eine und derselbe Frage — "Welchen von vier Modus ich verwenden soll?" Jeder des angebotenen Modus hat eigene Vorteile und Besonderheiten, deshalb machen wir es einfacher — wir werden direkt alle Modus durch eine Taste starten! Im Artikel ist es vorgeführt, wie man mit Hilfe Win API und der kleinen Magie gleichzeitig alle vier Graphik des Tests sehen kann.
Womit soll man bei der Erstellung eines Handelsroboters für die Moskauer Börse MOEX anfangen Womit soll man bei der Erstellung eines Handelsroboters für die Moskauer Börse MOEX anfangen
Viele Trader auf der Moskauer Börse möchten ihre Handelsalgorithmen automatisieren, aber wissen nicht, womit anfangen. Die Sprache MQL5 bietet nicht nur den riesigen Satz der Handelsfunktionen an, sondern auch die einsatzbereiten Klassen, die die ersten Schritte in Algotrading maximal erleichtern.