Diskussion zum Artikel "MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 21): Testen mit Wirtschaftskalenderdaten"

 

Neuer Artikel MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 21): Testen mit Wirtschaftskalenderdaten :

Die Daten des Wirtschaftskalenders sind standardmäßig nicht für das Testen mit Expert Advisors im Strategy Tester verfügbar. Wir sehen uns an, wie Datenbanken helfen können, diese Einschränkung zu umgehen. In diesem Artikel untersuchen wir, wie SQLite-Datenbanken verwendet werden können, um Wirtschaftskalender-Nachrichten zu archivieren, sodass assistentengestützte Expert Advisors diese nutzen können, um Handelssignale zu generieren.

Wirtschaftsdaten können die Quelle eines Handelsvorteils oder eines Vorteils in einem Handelssystem sein, da sie sich mehr an den „Fundamentaldaten“ von Wertpapieren orientieren, im Gegensatz zu den „technischen Daten“, die in Form von traditionellen Indikatoren, nutzerdefinierten Indikatoren und anderen Preisaktionsinstrumenten vorherrschen. Diese „Fundamentaldaten“ können die Form von Inflationsraten, Zinssätzen der Zentralbanken, Arbeitslosenquoten, Produktivitätsdaten und einer Reihe anderer Nachrichten haben, die sich in der Regel stark auf die Wertpapierkurse auswirken, was sich in ihrer Volatilität bei jeder Veröffentlichung zeigt. Am bekanntesten dürfte die Beschäftigung außerhalb der Landwirtschaft (Non-Farm-Payrolls) sein, die fast jeden ersten Freitag im Monat veröffentlicht werden. Darüber hinaus gibt es sicherlich noch andere wichtige Nachrichtenpunkte, die nicht das nötige Rampenlicht erhalten und daher von den meisten Händlern übersehen werden, weshalb das Testen von Strategien, die auf diesen Wirtschaftsnachrichtenpunkten basieren, dazu beitragen könnte, einige dieser Punkte aufzudecken und somit dem angehenden Händler einen Vorteil zu verschaffen. 


Die Datenbank SQLite kann innerhalb der MetaEditor-IDE erstellt werden, und da es sich dabei um Datenspeicher handelt, sollten wir auf dem Papier in der Lage sein, diese als Datenquelle für einen Expert Advisor zu verwenden, sodass sie als Indikatorpuffer fungieren. Darüber hinaus können sie die Wirtschaftsdaten lokal speichern, was Offline-Tests und auch die Verwendung für den Fall ermöglicht, dass die Nachrichtendatenquelle aus unbekannten Gründen beschädigt wird, was ein ständiges Risiko darstellt, da einige (oder zwangsläufig die meisten) Datenpunkte veralten. In diesem Artikel untersuchen wir, wie SQLite-Datenbanken verwendet werden können, um Wirtschaftskalender-Nachrichten zu archivieren, sodass assistentengestützte Expert Advisors diese nutzen können, um Handelssignale zu generieren.

Autor: Stephen Njuki

 

Das Caching des eingebauten Wirtschaftskalenders zum Testen und Optimieren von EAs wurde im Algotrading-Buch beschrieben.

Ihre Implementierung des Lesens von Ereignissen (CSignalEconData::Read) ist ineffizient und kaum praktikabel.

PS. Um mit SQLite aus dem Tester heraus zu arbeiten, sollte man die Datenbank im gemeinsamen Ordner anlegen/verschieben und mit dem DATABASE_OPEN_COMMON Flag öffnen.

MQL5 Book: Advanced language tools / Economic calendar / Transferring calendar database to tester
MQL5 Book: Advanced language tools / Economic calendar / Transferring calendar database to tester
  • www.mql5.com
The calendar is available for MQL programs only online, and therefore testing news trading strategies poses some difficulties. One of the solutions...
 
Stanislav Korotky #:

Ihre Implementierung des Lesens von Ereignissen (CSignalEconData::Read) ist ineffizient und kaum nützlich.

Was verbirgt sich hinter dieser Formulierung? Wie wird die Effizienz gemessen?

 
Aleksey Vyazmikin #:

Was verbirgt sich hinter dieser Formulierung? Wie wird die Effizienz gemessen?

Die Suche nach einem bestimmten Zeitpunkt wird durch eine einfache Schleife über das gesamte Array von Ereignissen bei jedem Aufruf realisiert, was die CPU in geometrischer Progression belastet. Außerdem werden bei jeder Iteration StringToTime und StringToDouble aufgerufen.

Bei einem Test mit einem Jahr oder mehr mit Tausenden von Wirtschaftsereignissen wird dies die Leistung erheblich verlangsamen, ganz zu schweigen von der Optimierung.

 
Stanislav Korotky #:

Die Suche nach einer bestimmten Datumszeit wird bei jedem Aufruf durch eine direkte Schleife über das gesamte Array der Ereignisse realisiert, was den Prozessor exponentiell belastet. Darüber hinaus werden bei jeder Iteration StringToTime und StringToDouble aufgerufen.

Wenn man ein Jahr oder mehr mit Tausenden von Wirtschaftsereignissen testet, verlangsamt sich dies erheblich, ganz zu schweigen von der Optimierung.

Vielen Dank für die Klarstellung.