Die Ticks werden benötigt für das Testen und Optimieren von Expert Advisor, weil diese die Tick-Daten nutzen. Das Backtesten kann mit echten Ticks durchgeführt werden, die vom Broker bereitgestellt werden oder basierend auf Minutendaten.
Das Testen und Optimieren basierend auf realen Ticks, kommt echten Handelsbedingungen am nächsten. Anstelle generierter Ticks, basierend auf Minutendaten ist es möglich echte Tickdaten vom Broker zu nutzen. Diese Ticks kommen von den Märkten oder Liquiditätsprovidern.
Beim Testen mit realen Tickdaten, kann der Spread innerhalb einer Minutenkerze wechseln, bei benerierten Ticks ist der Spread fixiert.
Wenn die Markttiefe für ein Symbol angezeigt wird, werden die Kerzen strikt nach dem letzt ausgeführten Preis aufgebaut. Ansonsten nimmt der Tester zuerst den letzten Preis der Kerze oder den Bid-Preis. Der OnTick Even wird bei jedem Tick ausgelöst.
Bitte beachten Sie, dass die Handelsoperationen immer mit Bid- und Ask-Preisen ausgeführt werden. Zum Beispiel, wenn ein Expert Advisor mit den Eröffnungspreisen arbeitet und ein Signal durch den letzten Preis erhält, wird ein Trade zum entsprechenden Bid- oder Ask-Preis ausgelöst. Im "Jeder Tick"-Modus, werden Kerzen anhand der Bid-Preise erstellt, Order jedoch immer zum entsprechenden Bid- oder Ask-Preis ausgeführt. Der Ask-Preis wird berechnet als Bid-Preis plus Spread der entsprechenden Kerze.
Wenn die Historie eines Symbols eine Minutenkerze ohne Tick-Daten hat, generiert der Tester Ticks automatisch im "Jeder Tick"-Modus. Dies erlaubt das Testen des EAs auf einer gewissen Periode, auch wenn die Tick-Daten des Browsers fehlerhaft sind. Wenn eine Symbol-Historie keine Minuten-Daten hat, jedoch Tick-Daten zur Verfügung stehen, wird diese ignoriert. Die Minuten-Daten werden als verlässlich angesehen.
Tick-Daten sind größer als Minuten-Daten. Der Download kann daher länger dauern vor dem ersten Test. Die Tick-Daten werden in TKC-Dateien gespeichert in \bases\[trade server name]\ticks\[symbol name]\.
Tests und Optimierungen sind nur möglich mit lokalen und Remote Agenten. Die Nutzung des MQL5 Cloud Network ist aktuell aufgrund der Datenmenge nicht möglich. |
Der Strategietester generiert Tick-Daten basierend auf den zwischengespeicherten ein-minütigen Integer-Daten. Das bedeutet, dass der Tester die benötigten Historien-Daten aus der Plattform kopiert und diese in das Integer-Format umwandelt um die Berechnungen zu beschleunigen.
Der Strategietester bietet mehrere Tick-Generierungsmodi an. Der genaueste Modus "Jeder Tick" ("Every Tick") ist unten beschrieben. |
Die Tick-Generierung ist für jede Kerze mit unterschiedlichem Volumen anders:
Ticks werden nicht generiert für Kerzen mit einem Tick-Volumen von eins, der einzelne Tick wird mit dem Schlusspreis der Kerze gleichgesetzt:
Auch für Kerzen mit zwei Ticks werden keine Ticks generiert. Zuerst wird ein Tick für die Eröffnung der Kerze und dann einer für die Schließung der Kerze festgeschrieben:
Für Kerzen mit 3 oder mehr Ticks gibt es verschiedene Methoden Ticks zu generieren, in Abhängigkeit der Anzahl.
Vier verschiedene Schemata sind möglich für Kerzen mit drei oder mehr Ticks:
Progress Optionen |
Image |
|
---|---|---|
Der Preis bewegt sich in eine Richtung und kehrt zum Eröffnungspreis-Level zurück. Damit hat eine Kerze nur ein Hoch (den höchsten Preis) und ein Tief (den niedrigsten Preis). |
||
Der Preis bewegt sich in eine Richtung, kehrt um und bricht durch das Eröffnungspreis-Level. In diesem Fall hat die Kerze entweder nur ein Hoch oder nur ein Tief, aber Eröffnungspreis und Schlusspreis sind nicht identisch. |
||
Der Preis bewegt sich in eine Richtung, aber erreicht nicht den Eröffnungspreis beim Umkehren. |
||
Der Preis bewegt sich mehrere Punkte in nur eine Richtung. In diesem Fall hat die Kerze kein Hoch oder Tief. |
Ticks werden anhand von Referenzpunkten generiert. Die Anzahl dieser Punkte kann das Tick-Volumen nicht überschreiten und kann nicht größer als 11 sein, wobei der Eröffnungskurs außer Acht gelassen wird.
Referenzpunkte werden geteilt in 3 Teile: Einmal für den Eröffnungsschatten, die Entfernung zwischen High und Low und der Schlussschatten.
Je nach Anzahl der Ticks, sind die folgenden Varianten der Verteilung der Referenzpunkte möglich:
Anzahl an Referenzpunkten |
Eröffnungsschatten |
Entfernung von Hoch und Tief |
Schlussschatten |
---|---|---|---|
11 |
3 |
5 |
3 |
10 |
2 |
6 |
2 |
9 |
2 |
5 |
2 |
8 |
2 |
4 |
2 |
7 |
2 |
3 |
2 |
6 |
1 |
4 |
1 |
5 |
1 |
3 |
1 |
4 |
1 |
2 |
1 |
3 |
1 |
1 |
1 |
|
Referenzpunkte werden berechnet aus der Anzahl an Punkten vom Eröffnungspreis. Die ideale Verteilung von Punkten (3-5-3) wird wie folgt berechnet:
Bull Candlestick
Berechnung von Punkten |
Image |
---|---|
|
Bear Candlestick
Berechnung von Punkten |
Image |
---|---|
|
Wenn die Kerze eine Doji ist (Close = Open), werden die vorherigen Kerzen analysiert. Wenn die vorherige Kerze steigend war, wird diese als fallend angenommen und umgekehrt.
Wenn ein Schatten mit drei Referenzpunkten generiert wird und die Integer-Werte von 3/4 und 1/2 der Schattengröße gleich sind (dies passiert, wenn der Unterschied zwischen Open und Low oder Open und High nicht größer ist als 2 Punkte, also die Distanz für einen Schritt vor- und rückwärts identisch ist), dann wird der Schatten wie folgt generiert:
Bull Candlestick
Berechnung von Punkten |
Image |
---|---|
|
Bear Candlestick
Berechnung von Punkten |
Image |
---|---|
|
Ein Schlussschatten wird auf die gleiche Weise generiert. |
Wenn ein Schatten generiert wird aus zwei Punkten, wird die Generierung wie folgt durchgeführt:
Bull Candlestick
Berechnung von Punkten |
Image |
---|---|
|
Bear Candlestick
Berechnung von Punkten |
Image |
---|---|
|
Ein Schlussschatten wird auf die gleiche Weise generiert. |
Die Kerzenentfernung wird durch Wellen in Zyklen generiert. Wenn Prev = Low (vorheriger Preis gleich Tief), wird der folgende Zyklus genutzt:
Wenn Prev = High (vorheriger Preis gleich Hoch), wird der folgende Zyklus genutzt:
Wobei:
N1 und N2 sind Referenzpunkte in einem Zyklus;
Prev ist der vorherige Preis;
Step ist die Schrittgröße. Der Schritt wird wie folgt berechnet: (H - L - 1)/(Anzahl an Zyklen) + 1;
Anzahl an Zyklen (Anzahl an Referenzpunkten in der Entfernung + 1)/2.
Ticks, die zwischen Referenzpunkten liegen werden nach der folgenden Regel generiert:
Der Tick-Generierungsmodus kann in den Strategietester Einstellungen ausgewählt werden. Die folgenden Optionen sind verfügbar:
In diesem Modus, werden alle Ticks generiert - OHLC und dazwischenliegende Ticks. Die Prozedur zur Generierung dieser Ticks ist oben beschrieben.
In diesem Modus werden nur OHLC Ticks von Ein-Minuten Kerzen generiert. Wenn das Tick-Volumen einer Kerze größer als vier ist, dann werden nur die OHLC Preise generiert. Wenn das Tick-Volumen kleiner als vier ist, dann werden die obigen Regeln für Kerzenformationen angewendet.
Wenn Sie diesen Modus auswählen, heißt das nicht, dass der Test oder die Optimierung auf dem M1 Zeitrahmen durchgeführt wird. Wenn Sie bspw. den H1 Zeitrahmen auswählen im "OHLC M1" Modus, werden die Preise generiert aus den Minutenkerzen und den entsprechenden OHLC Werten. In diesem Fall wird die OnTick() Funktion eines Expert Advisors viermal in einer Minute ausgeführt - bei der Eröffnung, Schließung, beim Hoch und beim Tief einer Minutenkerze, auch wenn der Test im H1 durchgeführt wird. |
Außerdem existieren in den historischen Daten nur OHLC Preise. Somit wird nur die Zeit des Eintreffens der OHLC Ticks generiert und die Datenwerte selbst aus der Historie genommen.
In diesem Modus, werden OHLC Preise des für das Testen ausgewählten Zeitrahmens ausgewählt. Die Expert Advisor Funktion OnTick() wird nur zum Beginn einer Bar ausgeführt (Eröffnungspreis) Bei der Auswahl dieses Features, werden Stop Level und Pending Orders möglicherweise zu einem anderen Kurs ausgeführt als dem angegebenen, insbesondere beim Test höherer Zeitrahmen. Dies erlaubt Ihnen jedoch eine schnelle Einschätzung eines Expert Advisors.
Ausnahmen sind die Zeiteinheiten W1 und MN1, bei der jeweils Tageskerzen generiert werden. |
Es gibt Limitierungen im "Open Prices Only" Modus:
Der Modus "Jeder Tick" ist der genaueste, aber auch der langsamste Modus. Für ein schnelle, aber ungenaue Tests/Optimierungen ist der "Open Prices Only" Modus zu testen. |
Dieser Modus erlaubt die Nutzung des Strategietesters für mathematische Berechnungen. Dieser Modus benötigt keine historischen Daten über Symbole und muss daher auch keine Ticks generieren. Im getesteten Expert Advisor, werden nur OnInit(), OnTester() und OnDeinit() sequentiell aufgerufen.
In diesem Modus wird das benutzerdefinierte Optimierungskriterium genutzt. Alle Felder in den Tester-Einstellungen werden inaktiv außer für den Optimierungsmodus und die Expert Advisor Auswahl.
Mathematische Berechnungen sind sinnvoll für die Berechnung von Extrempunkten mathematischer Funktionen dessen Werte von der OnTester() zurückgegeben werden sollten. Die Optimierung in diesem Fall sucht die höchsten Werte dieser Funktion. Mit einer großen Anzahl an Kombinationen an Eingabeparametern für eine mathematische Funktion ist es empfohlen den "Genetischen Algorithmus" zu nutzen. Dies erlaubt es die Berechnung signifikant zu beschleunigen.