Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
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
Bibliotheken

News Filter for the Strategy Tester (DST-corrected calendar export) - Bibliothek für den MetaTrader 5

Cristian Ciunae
Cristian Ciunae
Trader for 8 years & MQL5 Developer. Specializing in Prop Firm Risk Management.
My Core Focus: I build MQL5 tools and Expert Advisors designed for the realities of live trading: strict drawdown limits, hidden swap/commission costs, and news slippage.
What I Do:
| German English Русский 中文 Español 日本語 Português 한국어 Français Italiano Türkçe
Ansichten:
16
Rating:
(3)
Veröffentlicht:
\MQL5\Include\
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
DAS PROBLEM

Die meisten Nachrichtenfilter greifen auf den MQL5-Wirtschaftskalender (CalendarValueHistory) zurück. Da dieser Kalender im Strategietester nicht vorhanden ist, bleiben diese Filter bei Backtests stillschweigend inaktiv: Der EA handelt direkt bei der Veröffentlichung von NFP-, CPI- oder Zinsentscheidungen, und der Backtest entspricht nicht mehr dem Live-Verhalten. In einem meiner Tests wurde eine Pending-Order auf XAUUSD 5 Minuten vor der Veröffentlichung des US-CPI ausgeführt, und der Stop-Loss wurde mit einem Slippage von 45 USD ausgelöst – ein einzelner Trade verlor das 6,5-Fache des geplanten Risikos.

Ein zweites, weniger bekanntes Problem: Das Terminal rechnet historische Kalenderzeiten mit dem AKTUELLEN Server-Offset um. Beim Export im Sommer bei einem Broker mit GMT+2 / GMT+3 erscheinen alle Winterereignisse eine Stunde zu spät (NFP um 16:30 Uhr statt um 15:30 Uhr Serverzeit). Ein auf diesen Zeiten basierender Filter blockiert die falsche Uhrzeit für die Hälfte des Jahres.

DIE LÖSUNG – DREI DATEIEN

NewsCalendarExport.mq5 (Skript) – exportiert die Ereignisse in „Terminal\Common\Files\NewsCalendar.csv“ und berechnet jedes Ereignis unter Berücksichtigung des Server-Offsets des jeweiligen Datums neu. Am Ende führt es eine Selbstprüfung durch: Die häufigste Uhrzeit von USD-Ereignissen muss im Winter und im Sommer identisch sein.

NewsFilter.mqh (Klasse CNewsFilter) – ein Filter sowohl für den Live-Handel als auch für Backtests. Im Live-Handel liest es den Wirtschaftskalender aus (maximal einmal pro Minute abgefragt); im Strategietester liest es die CSV-Datei ein. Es werden nur die Währungen des Symbols verwendet (EURUSD: EUR + USD, XAUUSD: USD, in USD notierte Index-CFDs: USD).

NewsFilter_Example.mq5 – ein minimalistischer EA, der anzeigt, wann ein Nachrichtenfenster beginnt und endet, und die gesperrten Fenster im Chart einblendet, sodass Sie die Funktionsweise des Filters im visuellen Modus des Testers sehen können.

ANWENDUNG

Kopieren Sie „NewsFilter.mqh“ in den Ordner „MQL5\Include“, „NewsCalendarExport.mq5“ in den Ordner „MQL5\Scripts“ und „NewsFilter_Example.mq5“ in den Ordner „MQL5\Experts“. Kompilieren Sie das Skript und das Beispiel (die .mqh-Datei wird dabei mitkompiliert).

Führen Sie NewsCalendarExport einmal auf einem beliebigen Chart eines verbundenen Terminals aus. Auf der Registerkarte „Experten“ sollte Folgendes angezeigt werden: „OK: gleiche Zeit im Winter und Sommer“.

Fügen Sie in Ihrem EA den folgenden Code ein:

C++
#include <NewsFilter.mqh>
CNewsFilter news;

int OnInit()
{
news.Init(_Symbol, 30, 30); // Block von 30 Minuten vor und nach jedem Ereignis
return(INIT_SUCCEEDED);
}

void OnTick()
{
if(news.IsBlocked())
return; // keine neuen Einträge während der Nachrichten
// ... deine Eintragslogik ...
}
Backtest wie gewohnt. Das Journal zeigt an, wie viele Ereignisse für das Symbol geladen wurden.

SKRIPT-EINGABEN

Ereignisse exportieren ab: Startdatum des Exports.

Exportiere auch geplante Ereignisse N Tage im Voraus: umfasst bevorstehende Ereignisse.

Währungen: durch Kommas getrennte Liste (Standard: USD, EUR, GBP, JPY, CAD, AUD, NZD, CHF).

Bedeutung: nur hohe Auswirkung oder mittlere + hohe Auswirkung.

DST-Regel des Broker-Servers: US-Regel (Standard, Server = New York + 7h, die meisten Broker mit GMT+2/+3), EU-Regel oder keine Sommerzeit.

Dateiname: wird unter „Terminal\Common\Files“ gespeichert.

CNewsFilter::Init(symbol, minutesBefore, minutesAfter, mediumToo = false, csvFile = "NewsCalendar.csv")

HINWEISE UND EINSCHRÄNKUNGEN

Getestet bei FTMO (GMT+2 / GMT+3, US-Sommerzeitregel) und bei IC Markets EU. Beispielausgabe: 5645 Ereignisse exportiert, davon 1897 um eine Stunde verschoben; vor der Korrektur war die häufigste USD-Zeit 16:30 Uhr im Winter und 15:30 Uhr im Sommer, nach der Korrektur 15:30 Uhr in beiden Jahreszeiten.

Sollte die Selbstprüfung weiterhin unterschiedliche Winter- und Sommerzeiten anzeigen, probieren Sie eine andere „Broker-Server-Sommerzeitregel“ aus.

Der MQL5-Kalenderverlauf ist begrenzt und hängt vom Terminal ab; auf meinem Terminal beginnt er im Jahr 2020, sodass ältere Backtests keine Ereignisse enthalten.

Es werden nur die Währungen des Symbols verwendet; bei Indizes und Rohstoffen entscheidet daher die Notierungswährung, welche Ereignisse gelten.

Remote- und Cloud-Agenten können „Common\Files“ nicht lesen – optimieren Sie daher mit lokalen Agenten.

Einige Währungen weisen im MQL5-Kalender nur sehr wenige Ereignisse mit hoher Auswirkung auf (z. B. AUD). Verwenden Sie für diese die Einstellung „Mittlere + hohe Auswirkung“.

Der Filter teilt Ihrem EA lediglich mit, wann er KEINE neuen Trades eröffnen soll. Die Verwaltung bereits offener Positionen obliegt Ihrem EA.

Führen Sie das Skript von Zeit zu Zeit erneut aus, um neue Ereignisse einzubeziehen.

BENÖTIGEN SIE HILFE BEI DER INTEGRATION?

Wenn Sie kein Programmierer sind und diesen Nachrichtenfilter in Ihren bestehenden EA integrieren möchten oder wenn Sie maßgeschneiderte Risikomanagementregeln benötigen, die auf die Bewertungen Ihrer Prop-Firma zugeschnitten sind, kontaktieren Sie mich direkt über mein MQL5-Freelancer-Profil. Ich programmiere das gerne für Sie!

Version 1.00 – erste Veröffentlichung (Beispiel-EA 1.01: zeichnet die gesperrten Nachrichtenfenster auf dem Chart ein). Vom Filter blockierte Fenster, dargestellt im visuellen Modus des Strategietesters Selbstprüfung des Skripts: gleiche USD-Ereigniszeit im Winter und im Sommer nach der Umstellung auf Sommerzeit Strategy Tester-Tagebuch: Öffnen und Schließen von Nachrichtenfenstern

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

CSetupLedger: a per-setup win rate ledger for Expert Advisors CSetupLedger: a per-setup win rate ledger for Expert Advisors

Bewertet jede Setup-Art in Ihrem EA anhand eines eigenen Datensatzes, anstatt sie in einer einzigen Kapitalkurve zusammenzufassen. Erzeugt sich bei der Initialisierung anhand der Handelshistorie des Kontos neu, sodass ein Neustart den Datensatz nicht löschen kann. Zeigt neben der rohen Gewinnquote eine untere Grenze des Wilson-Scores an, damit eine Glückssträhne von drei Trades nicht mehr wie ein Vorteil erscheint.

Session Candle Counter: candles numbered from the cash open, DST aware Session Candle Counter: candles numbered from the cash open, DST aware

Die Nummerierung erfolgt für jede Kerze des aktuellen Handelstages, beginnend mit der Eröffnung an den Börsen in Frankfurt, London, New York oder Tokio. Der Anker wird von der Ortszeit der Börse in die Serverzeit des Brokers umgerechnet, wobei die Sommerzeit automatisch berücksichtigt wird, sodass die erste Kerze nach der Eröffnung sowohl im Sommer als auch im Winter immer die Nummer eins ist.

Safe Risk Manager EA - Daily Loss, Break-Even and Trailing Stop Safe Risk Manager EA - Daily Loss, Break-Even and Trailing Stop

Lernorientiertes MT5-Handelsfenster für Hedging-Konten mit Risikobegrenzung, Spread-Schutz, einer dauerhaften Sperre bei täglichen Verlusten sowie Break-even- und Trailing-Stops.

Trade Reporter Lite - Telegram trade notifications Trade Reporter Lite - Telegram trade notifications

Veröffentlicht die von Ihrem MT5 eröffneten und geschlossenen Positionen in einem Telegram-Chat: Richtung, Symbol, Einstieg, Stop und Ziel in Pips, Lots sowie bei Schließung das Ergebnis, Pips, R-Multiplikator und Haltedauer. Warteschlange für Wiederholungsversuche, Neustart-sicher, führt selbst keine Trades durch. Kostenloser Handelsbenachrichtigungsdienst für MT5 über Telegram und Discord