English Русский 中文 Español 日本語 Português
Strategy Tester: Modellierungsmodi beim Testen von Handelsstrategien

Strategy Tester: Modellierungsmodi beim Testen von Handelsstrategien

MetaTrader 4Tester | 5 November 2015, 13:44
1 569 0
MetaQuotes
MetaQuotes

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.

Achtung: wenn die kleineren Zeitrahmen, die die erforschende Periode nicht abdecken, nicht vorhanden sind, ist das Tick-für-Tick-Testen nicht nötig. Die Tick-für-Tick-Modellierung ist ausschließlich für das Testen anhand der Daten von kleineren Zeitrahmen vorgesehen!

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.



Im Modus "Jeder Tick" wurde die folgende Sequenz generiert:


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

Besonderheiten und Einschränkungen beim Testen von Handelstrategien in MetaTrader 4 Besonderheiten und Einschränkungen beim Testen von Handelstrategien in MetaTrader 4
Dieser Artikel erläutert Besonderheiten und Einschränkungen beim Testen von Handelsstrategien in MetaTrader 4...
Ereignisse im МetaТrader 4 Ereignisse im МetaТrader 4
In diesem Artikel geht es darum, wie man solche Ereignisse wie Eröffnung, Schließung und Modifizierung von Orders im Terminal МetaТrader 4 verfolgen kann. Der Artikel setzt Grundkenntnisse über das Terminal und Programmieren in MQL4 voraus.
Der Fehler 146 ("Trade-Context ist besetzt") und was man dagegen tun kann Der Fehler 146 ("Trade-Context ist besetzt") und was man dagegen tun kann
Der Artikel ist dem konfliktfreien Handel von mehreren Experten an einem Terminal MT 4 gewidmet und baut auf einen Benutzer, der grundlegende Arbeitsfähigkeiten und Programierungserfahrung mit dem Terminal MQL4 hat.
MagicNumber – "magischer" Identifikator der Order MagicNumber – "magischer" Identifikator der Order
In diesem Artikel geht es um einen konfliktfreien Handel mehrerer Experten in einem МТ 4 Terminal. Er bringt dem Experten bei, nur "eigene" Order zu steuern, ohne "fremde" (die von Hand oder von anderen Experten eröffneten) Positionen zu modifizieren und zu schließen. Die Zielgruppe des Artikels bilden die Nutzer, die bereits Grundkenntnisse über das Terminal und Programmieren in MQL4 haben.