Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Twitter !
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

Calendar-Based Backtesting: an Event-Driven Trading EA - bibliothèque pour MetaTrader 5

Vues:
68
Note:
(4)
Publié:
\MQL5\Include\
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Le code est truffé de commentaires pour une meilleure compréhension. Cette description explique l'idée principale et les façons d'utiliser/réutiliser le code.

Ce cadre se compose de trois éléments clés :

1. CalendarRetriever.mq5 (Script) - Ce script récupère les actualités économiques passées et les enregistre dans des fichiers du dossier "Common" de votre terminal. Ces fichiers seront lus ultérieurement par le conseiller expert au cours du backtesting. Le script nécessite deux paramètres d'entrée:

  • Date de début - La date à partir de laquelle les actualités passées doivent être récupérées.
  • Date de fin - La dernière date à partir de laquelle les événements doivent être stockés.

Après avoir exécuté ce script, il générera un dossier "Calendar" dans le répertoire "Common" du terminal et les fichiers texte suivants seront alors créés:

  • Countries.txt - Contient des informations sur chaque MQLCalendarCountry
  • Events.txt - Stocke les détails de l'événement tels que le nom, l'impact et l'identifiant du pays.
  • News.bin - Contient les valeurs historiques des événements d'actualité, y compris les horodatages.

    2. CalendarFile.mq (fichier inclus) - Ce fichier fournit un moyen structuré de traiter les données d'actualité dans le conseiller expert. Il contient deux classes principales:

    • CalendarFileWriter - Utilisée en interne par le script pour stocker les données d'actualité.
    • CalendarFileReader - Utilisé dans le conseiller expert pour lire et traiter les données d'actualité. Il comprend des fonctions pour charger les données d'événement et suivre les nouvelles à venir dans la fonction OnTick.
    3. NewsBacktest.mq5 (Expert Advisor) - Cet EA utilise les données stockées pour simuler des conditions d'actualités en temps réel dans le testeur de stratégie. Il lit les données d'actualités enregistrées à l'aide des fonctions Load et exécute les transactions en conséquence.

    Comment utiliser le cadre :

    1. Exécutez le script CalendarRetriever : Sélectionnez le symbole que vous souhaitez backtester et exécutez le script CalendarRetriever.mq5, avec les dates de début et de fin spécifiées.

    2. Le Conseiller Expert

      • L'EA utilise la classe CalendarFileReader pour charger les données à l'aide de ces fonctions :
        • LoadEvents() - Charge les détails de l'événement.
        • LoadCountries() - Charge les informations sur les pays.
        • LoadValues() - Charge les valeurs historiques des actualités.
      • Il traite ensuite les événements d'actualité dans la fonction OnTick pour déterminer quand un événement d'actualité se produit. Utilisez Propagate() pour prédire, Track() pour réagir.
      • La fonction CalendarFileReader.Propagate() définit l'indice suivant en fonction du prochain événement à venir ; elle doit être appelée à chaque tic-tac.
      • La fonction CalendarFileReader.Track() renvoie un message vrai lorsqu'un événement d'actualité est passé et fixe le dernier indice à cet événement particulier. Elle est également appelée dans la fonction OnTick(), mais le résultat doit être vérifié.
    3. Backtest de la stratégie Ouvrez le testeur de stratégie dans MetaTrader 5, sélectionnez NewsBacktest.mq5 et exécutez le backtest en mode visuel.

    Comment l'adapter à vos propres stratégies basées sur les nouvelles :

    Ce cadre est conçu pour être flexible, permettant aux traders de développer leurs propres stratégies autour des événements d'actualité économique. Voici quelques façons de le modifier :

    • Ajustez la logique de filtrage des événements dans OnTick() pour réagir à des types de nouvelles spécifiques (par exemple, ne trader qu'après la publication du NFP ou de l'IPC).
    • Modifier la logique d'exécution des ordres pour mettre en œuvre différentes stratégies, telles que l'atténuation du mouvement initial au lieu du trading de rupture.
    • Utiliser des indicateurs supplémentaires parallèlement aux événements d'actualité pour affiner les signaux d'entrée.
    • Modifier le délai d'expiration des ordres en attente en fonction du niveau d'impact de l'événement.

    Cette solution rend le backtesting des stratégies basées sur les actualités aussi réaliste que possible dans les limites de MetaTrader 5. En récupérant d'abord les données historiques des actualités, puis en simulant leur impact sur le marché, les traders peuvent obtenir des informations précieuses sur la manière dont leurs stratégies se comporteraient dans des conditions réelles.

    Pour une meilleure compréhension, jetez un coup d'œil à ma vidéo sur le sujet :




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

    Indicateur d'équilibre de tendance TrendEQ Indicateur d'équilibre de tendance TrendEQ

    TrendEQ analyse dynamiquement les tendances du marché en combinant l'élan et la volatilité. En mesurant le momentum par rapport aux tendances du marché, TrendEQ fournit une mesure fiable de la force et de la direction de la tendance.

    Panneau de contrôle du mode multidevise "Panneau de contrôle MCM" Panneau de contrôle du mode multidevise "Panneau de contrôle MCM"

    Nous proposons une variante du véritable panneau de contrôle en mode multidevise dans le terminal MetaTrader 5 pour les indicateurs multidevises et les Expert Advisors.

    PANNEAU GRAS PANNEAU GRAS

    Le panneau pour la participation au concours "Le meilleur panneau de contrôle graphique en MQL5". La caractéristique distinctive du panneau est la possibilité de créer une stratégie de trading en mode visuel.

    Tableau de bord concurrentiel Tableau de bord concurrentiel

    Simplification de la négociation manuelle et de la gestion des positions