Strategy Tester: Modellierungsmodi beim Testen von Handelsstrategien
Einleitung
Viele Programme der technischen Analyse lassen Handelsstrategien anhand historischer Daten testen. In den meisten Fällen wird anhand bereits vollendeter Daten getestet; es wird nicht versucht, Bewegungen innerhalb des Preisbalkens zu modellieren. Das ist schnell, aber nicht präzise genug.
Es ist wichtig, eine adäquate Modellierungsmethode der Entwicklung von Preisbalken auszusuchen, um eine Handelsstrategie qualitativ testen zu können. Eine ideale Situation, wenn man für das präziseste Testen über die ganze Historie, Tick-für-Tick, verfügt, existiert leider kaum. Einem normalen Händler fällt sehr schwer, eine Tickhistorie für mehrere Jahre für seine Analyse zu finden.
Um dieses Problem zu lösen, kann man als Bezugspunkte die Daten kürzerer Perioden mit der Modellierung der Preisveränderung zwischen ihnen verwenden.
Modellierungsmethoden von Preisbalken
Im Kundenterminal MetaTrader 4 werden drei Modellierungsmethoden der Balkenentwicklung verwendet:
- Jeder Tick (die präziseste Methode, die auf allen verfügbaren kleineren Zeitrahmen basiert)
- Kontrollpunkte (eine sehr grobe Methode, die auf dem nächstliegenden kleineren Zeitrahmen basiert, die Ergebnisse kann man unberücksichtigt lassen)
- Eröffnungspreise (eine schnelle Methode anhand vollendeter Balken, ausschließlich für Expert Advisors mit einer präzisen Kontrolle der Balkeneröffnung)
Vor dem Testen werden Zwischenticks generiert, die Ergebnisse werden in eine Datei gespeichert (z.B.: /tester/history/eurusd_1440_1.fxt).
Bei jedem Klick auf "Start" generiert der Tester erneut eine Datei mit
der Prüfsequenz von Ticks. Die Fxt-Dateien kann man als Offline-Charts
im Terminal über File -> Open offline ganz einfach öffnen.
Modellierungsbeispiele
Fangen wir mit der einfachsten Modellierungsmethode an, die auf der Modellierung eines Stundencharts beruht. Schauen wir den rot markierten Stundenbalken an (5. September 2007, 10:00):
Eröffnungspreise
Einige Händler wollen nicht von den Besonderheiten der Modellierung innerhalb des Balkens abhängig sein und schreiben Expert Advisors, die auf bereits vollendeten Balken handeln. Dass der Balken vollendet ist, kann man erkennen, wenn der nächste erscheint. Gerade für diese Expert Advisors ist der Modellierungsmodus vorgesehen, der auf Eröffnungspreisen beruht.
In diesem Modus wird zuerst die Eröffnung des Balkens modelliert (Open = High = Low = Close, Volume=1), so kann der Expert Advisor ganz genau identifizieren, wann der vorhergehende Balken vollendet ist. Gerade auf diesem entstehenden Balken wird der Expert Advisor getestet. In der nächsten Etappe wird der vollendete Balken geliefert, aber nicht getestet!
Kontrollpunkte (der nächstliegende kleinere Zeitrahmen)
Die Modellierungsmethode anhand Kontrollpunkte ist für eine grobe Einschätzung der Expert Advisors vorgesehen, die innerhalb des Balkens handeln. Für diese Methode werden die historischen Daten des nächstliegenden kleineren Zeitrahmens benötigt. In einigen Fällen decken die vorhandenen Daten des kleineren Zeitrahmens den Zeitraum des zu testenden Zeitrahmens nicht ganz ab. Wenn die Daten des kleineren Zeitrahmens fehlen, wird die Entwicklung des Balkens anhand vorgegebener Wellenvorlagen generiert, wie dies in der letzten dritten Version des Kundenterminals MetaTrader3 der Fall war.Wenn die historischen Daten des kleineren Zeitrahmens erscheinen, dann werden diese interpoliert. Die tatsächlich existierenden Preise OHLC des kleineren Zeitrahmens gelten als Kontrollpunkte. In den meisten Fällen können die Ergebnisse des Expertentests anhand der Methode der Kontrollpunkte nur als geschätzte Ergebnisse und nicht als endgültige betrachtet werden. Sie stellen eine Zwischeneinschätzung dar. Auf dem Chart unten sieht man, wie sich der Stundenbalken 2007.09.05 10:00 nach der Methode der Kontrollpunkte entwickelte.
Jeder Tick (alle verfügbaren kleineren Zeitrahmen)
Dieser Modus lässt die Preisentwicklung innerhalb des Balkens
besonders exakt modellieren. Im Vergleich zur Methode der
Kontrollpunkte werden in der Jeder-Tick-Methode nicht nur die Daten des
nächstliegenden kleineren Zeitrahmens generiert, sondern auch die aller
verfügbaren kleineren Zeitrahmens. Wenn für einen Zeitraum Daten mehr
als eines Zeitrahmens vorliegen, werden die Daten des kleinsten
Zeitrahmens generiert. Genauso wie in der anderen Methode werden die
Kontrollpunkte anhand der OHLC-Daten des kleinsten verfügbaren
Zeitrahmens generiert. Um die Preisbewegung zwischen den Kontrollpunkten
zu generieren, wird diese anhand von vorgegebenen Schablonen
interpoliert. Deswegen ist es sehr wünschenswert, die Minutendaten zu
haben, die den ganzen Zeitraum des Tests abdecken. Es kann passieren,
dass mehrere gleiche Ticks einer nach dem anderen generiert werden. In
diesem Fall werden doppelte Kotierungen ausgefiltert, das Volumen der
letzten Kotierung wird gespeichert.
Es ist wichtig zu berücksichtigen, dass das Volumen der Daten, die Tick für Tick generiert wurden, sehr groß sein kann. Dies kann sich auf die Ressourcen des Betriebssystem sowie die Testgeschwindigkeit auswirken.
Anwendung des Zeitraums bei der Modellierung
Man kann den Zeitraum nutzen, nicht nur um einen Expert Advisor zu
testen, sondern auch um eine testierende Balkensequenz zu generieren.
Häufig braucht man nicht die ganzen historischen Daten zu generieren,
vor allem bei der Tick-für-Tick-Modellierung, wo das Volumen ungenutzter
Daten riesig sein kann. Wenn bei der Generierung die Option "Zeitraum"
genutzt wurde, werden die Balken, die die Grenzen des Zeitraums
überschreiten, nicht generiert, sondern einfach in die Ausgabesequenz
überschrieben. Die Daten werden aus der Sequenz nicht ausgeschlossen,
damit man die Indikatoren innerhalb der ganzen erhaltenen Historie
richtig berechnen könnte. Bemerkenswert ist, dass die ersten 100 Balken
auch nicht generiert werden. Diese Begrenzung ist unabhängig vom
eingestellten Zeitraum.
Mit dem M1-Zeitrahmen referenzieren
Um die Genauigkeit der Modellierung innerhalb des Balkens zu prüfen, schauen wir den Minutenchart vom 5. September 2007 von 10:00 bis 11:00 an.
Da das durchschnittliche Tickvolumen jedes Balkens in diesem Zeitraum
unter fünf liegt, wurde die Sequenz mit dem minimalen Einsatz von
Interpolation generiert. Fast alle Preise sind tatsächlich existierende
OHLC.
Wenn man zwei Charts - den Stunden- und den Minutenchart sogar ohne
Maßstabeinstellung einfach aufeinander legt (auf dem generierten
Stundenchart sind die Schlusskurse mit der grünen Linie markiert),
fallen sie fast identisch zusammen:
Fazit
Wenn man über die zusätzlichen Zeitrahmen kürzerer Perioden verfügt, die die erforschende Periode hundertprozentig abdecken, bekommt man die zuverlässigsten Testergebnisse. Dies bedeutet, dass ein qualitatives Testen zur Suche nach detaillierten historischen Daten wird...
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/1511
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.