Testing Handelsstrategien Die Idee der automatisierten Handel ist ansprechend durch die Tatsache, dass die Trading Roboter kann non-stop für 24 Stunden am Tag, sieben Tage die Woche zu arbeiten. Der Roboter wird nicht müde, zweifelhaft oder ängstlich, es ist völlig frei von psychischen Problemen. Es ist ausreichend genug, um die Vorschriften für den Handel deutlich zu formalisieren und setzen sie in den Algorithmen und der Roboter bereit, unermüdlich zu arbeiten. Aber zuerst müssen Sie sicherstellen, dass die folgenden zwei wichtige Voraussetzungen erfüllt sind: Der Expert Advisor führt Handelsgeschäft in Übereinstimmung mit den Regeln des Handelssystems; Die Handelsstrategie, in der EA implementiert, veranschaulicht, einen Gewinn aus der Geschichte. Funktionseinschränkungen in der Strategy Tester Es gibt Betrieb Einschränkungen für einige Funktionen in Strategy Tester des Client-Terminals. Die Print () und Printformat () Funktionen Der Alert () MessageBox (), Playsound (), SendFTP, Sendmail (), SendNotification (), WebRequest () Funktionen Tick-Generation-Modi Ein Expert Advisor ist ein Programm, in MQL5 geschrieben, der sich jedes Mal als Reaktion auf ein externes Ereignis ausgeführt wird. Der EA hat eine entsprechende Funktion (Event-Handler) für jeden vordefinierten Ereignis. Die NewTick Event (Preisänderung) ist das wichtigste Ereignis für die EA, und deshalb müssen wir einen Tick Sequenz, um den EA testen zu generieren. Es gibt 3 Arten der Zeckengeneration in der Strategy Tester von MetaTrader 5 Client-Terminal implementiert: Jeder Tick 1 Minute OHLC (OHLC Preisen mit Minuten-Balken) Nur offene Preise Die grundlegende und die detailliertesten ist die jedem Tick-Modus, die anderen beiden Modi sind die Vereinfachungen des Grund ein und wird im Vergleich zu der Jeder Tick-Modus beschrieben werden. Berücksichtigen Sie alle drei Modi, um die Unterschiede zwischen ihnen zu verstehen. Jeder Tick Die historischen Quotes Daten für Finanzinstrumente aus dem Trading-Server auf die MetaTrader 5 Client-Terminal in Form von gepackten Minute Bars übertragen. Detaillierte Informationen über das Auftreten von Anfragen und den Bau der erforderlichen Zeitrahmen kann von der Organisations Data Access Kapitel MQL5 Referenz erhalten werden. Die minimale Element der Preisentwicklung ist die Minute, Bar, von der aus Sie können Informationen über die vier Werte des Preises zu erhalten: Öffnen - der Preis, zu dem die Minute bar eröffnet wurde; Hoch - das Maximum, das während dieser Minute bar erreicht wurde; Low - die minimale, die während dieser Minute bar erreicht wurde; Close - der Schlusskurs der Bar. Die neue minute bar ist nicht in dem Moment, wenn die neue Minute anfängt (Anzahl der Sekunden gleich 0 wird) geöffnet, aber wenn eine Zecke erfolgt - eine Preisänderung von zumindest einem Punkt. Die Abbildung zeigt die erste Minute bar der neuen Handelswoche, die die Öffnungszeit des 2011.01.10 00:00 h hat. Der Preisunterschied zwischen Freitag und Montag, den wir auf der Karte sehen, ist weit verbreitet, da Währungsschwankungen auch am Wochenende in Reaktion auf eingehende Nachrichten. Für diese Bar, wir wissen nur, dass die Minute bar wurde am 10. Januar 2011 bei 00 Stunden 00 Minuten geöffnet, aber wir wissen nichts über die Sekunden. Es könnte bei 00.00.12 bzw. 00.00.36 (12 oder 36 Sekunden nach dem Start eines neuen Tages) oder in einem anderen Zeitpunkt innerhalb dieser Minute geöffnet wurden. Aber wir wissen, dass die Open Preis von EURUSD wurde auf 1,28940 an der Öffnungszeit des neuen Minute bar. Wir wissen auch nicht, (Genauigkeit von einer Sekunde), wenn wir die Zecke, die dem Schlusskurs des betrachteten Minute bar erhalten. Wir bekannt nur eins - die letzte Schlusskurs der winzigen Bar. Aus diesem minute, der Preis war 1,28958. Die Zeit für das Auftreten von High - und Low-Preisen ist ebenfalls unbekannt, aber wir wissen, dass die Höchst - und Mindestpreise auf der Ebene von 1,28958 und 1,28940 auf. Um die Handelsstrategie zu testen, brauchen wir eine Sequenz von Zecken, auf denen die Arbeit des Expert Advisor simuliert. Damit für jede Minute, Bar, kennen wir die 4 Kontrollpunkte. wo der Preis war definitiv. Wenn ein Strich hat nur 4 Zecken, dann ist dies ausreichend Informationen, um eine Prüfung durchzuführen, aber in der Regel die Zecke Volumen größer als 4 ist. Daher gibt es eine Notwendigkeit, zusätzliche Kontrollpunkte für Zecken, die sich zwischen dem Open, High, Low und Close Preise aufgetreten generieren. Das Prinzip des Jeden häckchen Erzeugungsmodus ist in der Der Algorithmus von Zecken beschrieben ?? Generation innerhalb der Strategy Tester des MetaTrader 5-Terminal eine Figur, von dem wird unten dargestellt. Bei der Prüfung im jedem Tick-Modus wird der onTick () Funktion der EA an jedem Steuerpunkt aufgerufen werden. Jeder Kontrollpunkt ist ein Tick von einem erzeugte Sequenz. Der EA wird die Zeit und den Preis des simulierten Tick zu erhalten, so wie es wäre, wenn Sie online arbeiten. Wichtig: die jedem Tick Prüfmodus ist das genaueste, aber zur gleichen Zeit, die zeitaufwendig. Für einen ersten Test der Mehrheit der Trading-Strategien, ist es in der Regel ausreichend, um eine der beiden anderen Tests Modi verwenden. 1 Minute OHLC Die jedem Tick-Modus ist die genaueste der drei Betriebsarten, aber gleichzeitig ist die niedrigste. Der Lauf der onTick () Handler tritt bei jedem Tick, tick, während Lautstärke kann ziemlich groß sein. Für eine Strategie, bei der die Zecke Folge von Kursbewegungen im ganzen bar, spielt keine Rolle, es ist ein schneller und rauer Simulationsmodus - 1 Minute zu OHLC. In der 1. Minute OHLC-Modus wird die Tick-Sequenz nur von den OHLC Preise der Minuten-Balken gebaut. die Anzahl der erzeugten Kontrollpunkte deutlich verringert - damit so ist die Testzeit. Die Markteinführung des onTick () Funktion wird auf alle Kontrollpunkte, die von den Preisen der OHLC Minuten-Balken gebaut werden durchgeführt. Die Weigerung, zusätzliche Zwischen Ticks zwischen dem Open, High, Low und Close Preisen zu erzeugen, führt zu einer Erscheinung des starren Determinismus in der Entwicklung von Preisen, von dem Moment an, dass der Eröffnungskurs wird bestimmt. Dies macht es möglich, eine Prüfung Gral, die einen schönen Aufwärts Graphen der Testbilanz zeigt erstellen. Grr-al - Ein Beispiel einer solchen Gral in der Code-Basis vorgestellt. Die Figur zeigt eine sehr attraktive Graph dieser EA Tests. Wie war es erhalten? Wir wissen, 4 Preise für eine Minute bar, und wir wissen auch, dass die erste ist die Open Preis, und der letzte ist der Schlusskurs. Wir haben die High und Low Preise zwischen ihnen, und die Reihenfolge ihres Auftretens ist unbekannt, aber es ist bekannt, dass der hohe Preis ist größer als oder gleich dem Öffnen Preis (und den niedrigen Preis von weniger als oder gleich dem Öffnen Preis). Es ist ausreichend, um den Moment der Aufnahme der Freibetrag, und dann analysieren die nächste Häkchen, um zu bestimmen, welchen Preis wir haben im Moment - entweder die hohe oder die niedrige. Wenn der Preis unter dem Eröffnungskurs, dann haben wir einen niedrigen Preis und kaufen Sie diese Option aktivieren, wird der nächste Titel abhaken, die den hohen Preis, zu welchem wir erstatten den Kauf zu schließen und zu verkaufen zu entsprechen. Der nächste Häkchen ist das letzte, das ist das Schließen Preis, und wir schließen den Verkauf auf sie. Wenn nach dem Preis, eine Zecke mit einem Preis höher als der Eröffnungspreis erhalten wir, dann ist die Reihenfolge der Angebote wird umgekehrt. Verarbeiten eine Minute bar in diesem Cheat-Modus, und warten auf den nächsten. Bei der Prüfung solcher EA über die Geschichte, geht alles glatt, aber sobald wir es online zu starten, beginnt die Wahrheit aufgedeckt zu werden - das Gleichgewicht Linie bleibt stabil, aber Köpfe nach unten. Um diesen Trick aufzudecken, müssen wir einfach die EA in jedem Tick-Modus ausführen. Hinweis: Wenn die Testergebnisse des EA in den rauen Testarten (1 Minute OHLC und öffnen Preise nur) scheint zu gut, stellen Sie sicher, um es in der jedem Tick-Modus zu testen. Geöffnet Preise nur In diesem Modus Zecken werden auf der Grundlage der EHTS - Preise der für die Prüfung ausgewählten Zeitrahmen erzeugt. Die onTick () Funktion des Expert Advisor läuft nur am Anfang der Bar an der Open Preis. Aufgrund dieses Merkmals, Stoppniveaus und anhängigen können zu einem Preis, von der angegebenen abweicht (vor allem beim Testen auf höhere Zeitrahmen) auslösen. Stattdessen haben wir die Möglichkeit, schnell zu laufen einen Einstufungstest des Expert Advisor. W1 und MN1 Perioden sind die Ausnahmen in der Öffnungszeiten Preis Nur Ticks Erzeugungsmodus: Zeitrahmen für diese Zecken werden für die OHLC Preise eines jeden Tages nicht OHLC Preise der Woche oder Monat generiert. Angenommen, wir testen einen Expert Advisor auf EURUSD H1 in den Geöffnet Preise Nur Modus. In diesem Fall ist die Gesamtzahl der Zecken (Kontrollpunkte) werden nicht mehr als 4 * Anzahl der Ein-Stunden-Bars innerhalb des getesteten Intervalls. Aber die onTick () Handler wird nur bei der Eröffnung der Ein-Stunden-Bar genannt. Die für eine korrekte Prüfung erforderlichen Kontrollen erfolgen auf den Rest der Zecken (die aus dem EA versteckt sind). Die Berechnung der erforderlichen Sicherheits; Die Ansteuerung des Stop Loss und Take-Profit-Ebene; Die Ansteuerung der Aufträge; Die Entfernung der Ablauf noch nicht erledigten Aufträge. Wenn es keine offenen Positionen oder erledigten Aufträge, die wir nicht brauchen, um diese Kontrollen auf versteckte Zecken durchzuführen, und die Erhöhung der Geschwindigkeit kann ganz erheblich sein. Diese öffnen Preise nur Modus ist für Teststrategien, die Prozess befasst sich nur bei der Eröffnung der Bar und nutzen Sie dafür nicht erledigten Aufträge sowie Stoploss und Takeprofit Aufträge geeignet. Für die Klasse solcher Strategien wird die erforderliche Genauigkeit des Tests beibehalten. Lassen Sie uns die Moving Average Expert Advisor aus dem Standard-Paket als ein Beispiel für ein EA, die in einem beliebigen Modus getestet werden können. Die Logik dieser EA ist in einer Weise, dass alle Entscheidungen werden bei der Eröffnung der Bar gemacht gebaut und Angebote werden sofort durchgeführt, ohne die Verwendung von noch nicht erledigten Aufträge. Führen Sie einen Test des EA auf EURUSD H1 auf einem Intervall von 2010.09.01 bis 2010.12.31, und vergleichen Sie die Graphen. Die Abbildung zeigt das Gleichgewicht Graphen aus dem Prüfbericht für alle drei Modi. Wie Sie sehen können, werden die Grafiken auf unterschiedliche Testarten sind genau die gleichen für die Moving Average EA aus dem Standard-Verpackung. Es gibt einige Einschränkungen auf der Nur Geöffnet Preise Modus: Sie können nicht die zufällige Verzögerung Ausführungsmodus. In der getesteten Expert Advisor, Sie keine Daten zugreifen können der Zeitrahmen niedriger als die für die Prüfung / Optimierung verwendet. Zum Beispiel, wenn Sie Prüfung / Optimierung auf der H1 Periode ausführen, können Sie Daten von H2, H3, H4, etc. aber nicht M30, M20, M10 zugreifen können usw. Darüber hinaus sind die höheren Zeitrahmen, auf die zugegriffen werden muss Faches des Tests sein Zeitrahmen. Zum Beispiel, wenn Sie Tests in M20 ausführen, können Sie nicht die Daten der M30 zugreifen können, aber es ist möglich, H1 zuzugreifen. Diese Begrenzungen sind mit der Unmöglichkeit, Daten niedrigerer oder nicht mehrere Zeitfenster aus den während des Tests / Optimierung erzeugten Balken zu erhalten verbunden. Beschränkungen für den Zugriff auf Daten von anderen Zeitrahmen auch andere Symbole, deren Daten von der Expert Advisor verwendet gelten. In diesem Fall die Begrenzung für jedes Symbol hängt von der ersten Zeitspanne während des Tests / Optimierung abgerufen. Nehmen wir an, während der Prüfung auf EURUSD H1, ein Expert Advisor greift auf Daten des GBPUSD M20. In diesem Fall wird die Expert Advisor in der Lage, die Verwendung von Daten EURUSD H1, H2, etc. sowie GBPUSD M20, H1, H2 etc. Weitere Hinweis: die einzige offene Preismodus hat die schnellste Testzeit, aber es eignet sich nicht für alle Handelsstrategien. Wählen Sie die gewünschte Testmodus basierend auf den Eigenschaften des Handelssystems. Zum Abschluss der Abschnitt über die Zeckengeneration Modi betrachten wir einen visuellen Vergleich der verschiedenen Zeckengeneration Modi für EURUSD, für zwei M15 Bars auf einem Intervall von 2011.01.11 21.00.00 - 2011.01.11 21.30.00. Die Zecken wurden in verschiedene Dateien mit dem WriteTicksFromTester. mq5 EA und das Ende dieser Dateien Namen werden in filenameEveryTick, filenameOHLC und filenameOpenPrice Input-Parameter angegeben gespeichert. Um drei Dateien mit drei Tick-Sequenzen (für jede der folgenden Modi jedem Tick, 1 Minuten zu OHLC und nur öffnen Preise) erhalten, wurde die EA drei Mal in den entsprechenden Modi gestartet, in Einzelläufen. Dann wurden die Daten von diesen drei Dateien auf dem Diagramm unter Verwendung der TicksFromTester. mq5 Anzeige angezeigt. Die Anzeige-Code wird mit diesem Artikel beigefügt. Standardmäßig werden alle Dateioperationen im MQL5 Sprache werden in der Datei Sandbox beim Testen der EA hat nur Zugriff auf ein eigenes Datei Sandbox hergestellt und. Damit der Indikator und dem EA mit Dateien von einem Ordner während der Prüfung zu arbeiten, haben wir die Flagge FILE_COMMON. Ein Beispiel für ein Code aus dem EA: file = Fileopen (Dateiname, FILE_WRITE | FILE_CSV | FILE_COMMON,;); // --- Check Datei-Handle if (Datei == INVALID_HANDLE)
No comments:
Post a Comment