Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Telegram !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Bibliothèque

News Filter for the Strategy Tester (DST-corrected calendar export) - bibliothèque pour 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:
| French English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Vues:
23
Note:
(3)
Publié:
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
LE PROBLÈME

La plupart des filtres d’actualités consultent le calendrier économique MQL5 (CalendarValueHistory). Ce calendrier n’existe pas dans le Strategy Tester, de sorte que ces filtres ne font rien, sans le signaler, lors des backtests : l’EA négocie directement lors de la publication des chiffres de l’emploi (NFP), de l’IPC ou des décisions de taux, et le backtest ne correspond plus au comportement en conditions réelles. Lors d’un de mes tests, un ordre en attente sur la paire XAUUSD a été exécuté 5 minutes avant la publication de l’IPC américain et le stop loss a été déclenché avec un slippage de 45 USD : une seule transaction a entraîné une perte 6,5 fois supérieure au risque prévu.

Un deuxième problème, moins connu : le terminal convertit les heures historiques du calendrier en fonction du décalage horaire ACTUEL du serveur. En cas d’exportation en été sur un courtier en GMT+2 / GMT+3, chaque événement hivernal apparaît avec une heure de retard (NFP à 16 h 30 au lieu de 15 h 30, heure du serveur). Un filtre basé sur ces horaires bloque l’heure erronée pendant la moitié de l’année.

LA SOLUTION – TROIS FICHIERS

NewsCalendarExport.mq5 (script) – exporte les événements vers Terminal\Common\Files\NewsCalendar.csv et recalcule chaque événement en fonction du décalage horaire du serveur correspondant à sa propre date. À la fin, il effectue une auto-vérification : l’heure la plus fréquente des événements liés au dollar américain doit être identique en hiver comme en été.

NewsFilter.mqh (classe CNewsFilter) – un filtre unique pour le trading en direct et les backtests. En temps réel, il lit le calendrier économique (interrogé au maximum une fois par minute) ; dans le Strategy Tester, il lit le fichier CSV. Seules les devises du symbole sont utilisées (EURUSD : EUR + USD, XAUUSD : USD, CFD sur indices cotés en USD : USD).

NewsFilter_Example.mq5 – un EA minimaliste qui affiche un message lorsque la fenêtre d’actualité commence et se termine, et qui colore les fenêtres bloquées sur le graphique, afin que vous puissiez voir le filtre fonctionner en mode visuel du testeur.

MODE D'EMPLOI

Copiez NewsFilter.mqh dans MQL5\Include, NewsCalendarExport.mq5 dans MQL5\Scripts et NewsFilter_Example.mq5 dans MQL5\Experts. Compilez le script et l’exemple (le fichier .mqh est compilé en même temps).

Lancez NewsCalendarExport une fois, sur n’importe quel graphique d’un terminal connecté. Dans l’onglet Experts, vous devriez voir : « OK : même heure en hiver et en été ».

Dans votre EA, ajoutez le code suivant :

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

int OnInit()
{
news.Init(_Symbol, 30, 30); // bloquer 30 minutes avant et après chaque événement
return(INIT_SUCCEEDED);
}

void OnTick()
{
if(news.IsBlocked())
return; // aucune nouvelle entrée pendant les actualités
// ... votre logique d'entrée ...
}
Effectuez un backtest comme d'habitude. Le journal indique le nombre d'événements chargés pour le symbole.

Données d'entrée du script

Exporter les événements à partir de : date de début de l'exportation.

Exporter également les événements programmés dans N jours : inclut les événements à venir.

Devises : liste séparée par des virgules (par défaut : USD, EUR, GBP, JPY, CAD, AUD, NZD, CHF).

Importance : impact élevé uniquement, ou impact moyen + élevé.

Règle d'heure d'été du serveur du courtier : règle américaine (par défaut, serveur = New York + 7 h, la plupart des courtiers GMT+2/+3), règle européenne ou pas d'heure d'été.

Nom du fichier : stocké dans Terminal\Common\Files.

CNewsFilter::Init(symbole, minutesAvant, minutesAprès, mediumToo = false, fichierCSV = "NewsCalendar.csv")

REMARQUES ET LIMITATIONS

Testé sur FTMO (GMT+2 / GMT+3, règle de l'heure d'été américaine) et sur IC Markets UE. Exemple de résultat : 5 645 événements exportés, dont 1 897 décalés d’une heure ; avant la correction, l’heure la plus fréquente pour l’USD était 16 h 30 en hiver et 15 h 30 en été ; après la correction, elle est de 15 h 30 pour les deux saisons.

Si l’autocontrôle indique toujours des horaires différents pour l’hiver et l’été, essayez une autre « règle d’heure d’été du serveur du courtier ».

L'historique du calendrier MQL5 est limité et dépend du terminal ; sur mon terminal, il commence en 2020, les backtests plus anciens ne contiendront donc aucun événement.

Seules les devises du symbole sont utilisées ; pour les indices et les matières premières, c’est donc la devise de cotation qui détermine les événements applicables.

Les agents distants et cloud ne peuvent pas lire le dossier Common\Files : optimisez votre code avec des agents locaux.

Certaines devises ont très peu d’événements à fort impact dans le calendrier MQL5 (l’AUD, par exemple). Utilisez « Impact moyen + fort » pour celles-ci.

Le filtre indique uniquement à votre EA quand NE PAS ouvrir de nouvelles positions. La gestion des positions déjà ouvertes incombe à votre EA.

Relancez le script de temps à autre pour inclure les nouveaux événements.

BESOIN D’AIDE POUR L’INTÉGRER ?

Si vous n’êtes pas programmeur et que vous souhaitez intégrer ce filtre d’actualités à votre EA existant, ou si vous avez besoin de règles de gestion des risques personnalisées adaptées aux évaluations de votre société de trading pour compte propre, contactez-moi directement via mon profil de freelance MQL5. Je me ferai un plaisir de le programmer pour vous !

Version 1.00 - première version (exemple d’EA 1.01 : affiche les fenêtres d’actualités bloquées sur le graphique). Fenêtres bloquées par le filtre, affichées en mode visuel du Strategy Tester Vérification automatique du script : même heure de l'événement en USD en hiver et en été après l'ajustement lié au passage à l'heure d'été Journal du Strategy Tester : ouverture et fermeture de fenêtres d'actualités

Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/77617

Risk Lot Panel Risk Lot Panel

On-chart panel that turns a risk setting into a lot size and shows what the broker's volume step and minimum lot do to that risk. Display only - it never places, modifies or closes an order.

BacktestOverfitting: probability of backtest overfitting (PBO) of an optimization BacktestOverfitting: probability of backtest overfitting (PBO) of an optimization

Probability of Backtest Overfitting (PBO) of an MT5 optimization by combinatorially symmetric cross-validation. Every pass sends its daily results as a frame, and the PBO is computed when the optimization ends.

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

Panneau de trading pédagogique pour un compte de couverture MT5, avec gestion de la taille des risques, protection contre les spreads, blocage permanent des pertes journalières, seuil de rentabilité et stops suiveurs.

ICT Model Tracker - Sweep, MSS and FVG Setups with Honest Statistics ICT Model Tracker - Sweep, MSS and FVG Setups with Honest Statistics

Detects the ICT model on closed bars (killzone liquidity sweep, MSS with displacement or inverted FVG, retrace entry with SL and TP) and follows every setup to its result with worst-case statistics. It never trades and never repaints; EA-ready buffers.