Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
176
Rating:
(9)
Veröffentlicht:
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Dies ist eine erweiterte Version des Skripts CalendarForDates.mq5, das im Algotrading-Buch vorgestellt wird.

Über Eingabevariablen können Sie einen Ländercode, einen aktuellen Code und einen Zeitbereich angeben, um die gewünschten Datensätze zu filtern. Wenn Sie die Eingabevariablen leer lassen, kann ein kompletter Kalender angefordert werden (wenn der Kalender zum ersten Mal nach dem Start des Terminals angefordert wird, kann es eine Weile dauern, bis er seine Basis heruntergeladen hat oder sogar einen Timeout verursachen und keine Ergebnisse liefern - dann führen Sie das Skript bitte noch einmal aus).

Als Ergebnis erhalten Sie eine CSV-Datei mit Kalendereinträgen mit den wichtigsten Feldern (es werden nicht alle Felder exportiert - passen Sie den Quellcode ruhig an Ihre Bedürfnisse an).

Optional kann man eine *.cal-Datei (archivierte Kopie des Kalenders für eine bestimmte Zeit) eingeben, die mit dem ebenfalls im Buch vorgestellten Indikator CalendarMonitorCached.mq5 erstellt wurde, der nun zugunsten seiner erweiterten Version CalendarMonitorCachedTZ.mq5 veraltet ist (empfohlen und erforderlich für die neue Funktion, die im Folgenden beschrieben wird).

MetaTrader Wirtschaftskalender in CSV


Das interessanteste Feature: Das Skript demonstriert die Verwendung von TimeServerDST.mqh zur Anpassung der Zeitstempel historischer Ereignisse an die Zeitzonenänderungen des Servers in der Vergangenheit, die sich dauerhaft in den Zeitstempeln der Kerzen widerspiegeln. Dieser Modus wird durch die Einstellung des Eingangs FixCachedTimesBySymbolHistory auf true aktiviert.

Durch das Speichern von Ereignissen in CSV-Dateien mit und ohne Korrektur lassen sich die Auswirkungen der Zeitkorrektur auf den Verlauf leicht vergleichen.

Um diese Funktion richtig zu nutzen, wird empfohlen, das Skript auf XAUUSD- oder EURUSD-H1-Charts auszuführen. Bei der programmatischen Verwendung sollten diese Symbole an die Funktionen von TimeServerDST übergeben werden.

Derselbe Ansatz wird im Indikator CalendarMonitorCachedTZ.mq5 verwendet, um zeitkorrigierte Kalenderereignisse in archivierte Cal-Dateien zu exportieren, die aus dem Tester geladen werden können, um genaue Backtests und Optimierungen von Nachrichtenrobotern zu gewährleisten.

Der Datumsbereich, in dem die Zeitkorrekturen durchgeführt werden, ist auf die maximale Anzahl von Balken auf dem Diagramm für den Zeitrahmen H1 begrenzt. Dies ist die Besonderheit der empirischen Methode, die in TimeServerDST.mqh verwendet wird.

Betrachten wir einen bestimmten Ereignistyp, vorzugsweise mit großen Auswirkungen auf den Markt, wie z.B. die Veröffentlichung der US Nonfarm Payrolls (NFP).

Auf einem europäischen Server mit Zeitplan für die Sommerzeit (MQ Demo) tritt es im Winter um 14:30 Uhr und im Sommer um 15:30 Uhr ein. Auf dem Screenshot unten sehen Sie 2 Versionen des kompletten Kalenderverlaufs, die in CSV-Dateien exportiert wurden, mit dem spezifischen Sommerdatum 2023.08.04 im Blick. Beide Exporte wurden am 8. November (Winter, Standardzeit) durchgeführt, so dass der GMT+2-Offset standardmäßig für alle Ereignisse angewendet wurde, einschließlich des Sommers 2023 (und auch für alle anderen Jahreszeiten und Jahre). Ohne Korrektur (siehe rechts) sind die exportierten Zeiten für die NFPs im Sommer 14:30. Dies ist nicht korrekt.

Wirtschaftskalender Ereignisse mit korrigierten Zeitstempeln

Nach der empirischen automatischen Erkennung der Zeitzone des Servers, die während des Sommers in Kraft war, führt die Bibliothek einen Kalenderexport mit Zeitkorrektur durch (links dargestellt). Infolgedessen werden die Sommer-NFPs auf 15:30 Uhr verschoben, wie es sein sollte. Sie können einen Blick auf das Diagramm für diesen Zeitraum werfen, um sich zu vergewissern, dass die Korrektur korrekt ist.

Nonfarm Payrolls im EURUSD-H1-Diagramm

Dieser spezielle Fall ist nicht so dramatisch, da die nicht korrigierte angekündigte Zeit 14:30 Uhr vor 15:30 Uhr liegt, so dass die Expertenberater wahrscheinlich weiter auf die Nachrichten warten und Geschäfte eröffnen können. Aber wenn die Zeitzone des Servers auf Sommer umgestellt wird, enthalten alle im Kalender eingetragenen Winterereignisse um eine Stunde (!) verzögerte Zeitstempel.

Das Ganze ist noch experimentell. Sie können uns gerne Ihr Feedback schicken.

Weitere Untersuchungen zu den Auswirkungen von Zeitkorrekturen auf den Nachrichtenhandel sind geplant. Bleiben Sie dran.


Die angehängten mqh-Dateien(CalendarFilter.mqh, CalendarCache.mqh, QuickSortStructT(Ref).mqh) enthalten Fehlerkorrekturen und Verbesserungen gegenüber den Originalversionen aus dem Buch.



04.10.2024 - Schreiben/Lesen von Server-Zeitzonen-Offset in cal-Dateien und csv-Dateien hinzugefügt.

10.11.2024 - Option hinzugefügt, um Zeitstempel von Ereignissen in der Historie in Übereinstimmung mit rückwirkenden Zeitzonenänderungen des Servers zu korrigieren.

11.11.2024 - kleine Fehlerbehebung und Verfeinerung in CalendarCache.mqh und CalendarFilter.mqh.

22.11.2024 - kleine Fehlerbehebungen und Verbesserungen in CalendarCache.mqh.


Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/52977

Swap Monitor Swap Monitor

Dieser Dienst prüft periodisch Swaps für vordefinierte Symbole und speichert festgestellte Änderungen in CSV-Dateien zur weiteren Analyse und möglichen Wiedergabe (hier nicht implementiert). Außerdem überwacht er Swap-Änderungen bestehender Positionen und meldet diese.

MT5-BuildYourGridEA MT5-BuildYourGridEA

Dieser Experte ist ein System, das jedem Händler hilft, ein Raster von Aufträgen zu erstellen.

Sample pine script stochastic divergence Sample pine script stochastic divergence

Ein Beispiel für einen in MQL umgewandelten Kiefercode

Push Notification for Opened / Closed Trades (Netting) Push Notification for Opened / Closed Trades (Netting)

Dieser Code bietet eine einfache Funktion zum Senden von Push-Benachrichtigungen an Ihr mobiles Gerät, wenn in MetaTrader 5 ein Handel eröffnet oder geschlossen wird. Sie ist für Netting-Konten gedacht (bei denen nur eine Position pro Symbol erlaubt ist).