Découvrez la nouvelle fonctionnalité de gestion des événements multidevises dans MetaTrader 5, intégrée dans la fonction améliorée OnTick(string symbol).
Avantages :
- Véritable mode multidevises sur vos comptes démo et réels.
- Réglages simples et accessibles.
- Personnalisation de la liste des événements pour OnTick(string symbol) : possibilité de configurer NewTick et/ou NewBar.
- Liste des symboles configurable (tous les symboles de Market Watch ou des symboles spécifiques).
- Gestion des événements en temps réel lors de l'utilisation des symboles de Market Watch.
- Pas besoin de comprendre tous les détails de fonctionnement, tout le code est dans le fichier inclus.
- Utilisable dans le Testeur de Stratégies.
Voici à quoi ressemble le modèle de l'Expert Advisor :
//+------------------------------------------------------------------+ //| OnTick(string symbol).mq5 | //| Copyright 2010, Lizar | //| https://www.mql5.com/ru/users/Lizar | //+------------------------------------------------------------------+ #define VERSION "1.00 Build 1 (01 Fab 2011)" #property copyright "Copyright 2010, Lizar" #property link "https://www.mql5.com/ru/users/Lizar" #property version VERSION #property description "Modèle de l'Expert Advisor" #property description "avec gestion des événements multidevises OnTick(string symbol)" //+------------------------------------------------------------------+ //| PARAMÈTRES DE MODE MULTIDEVISES | //| OnTick(string symbol) event handler | //| 1.1 Liste des symboles nécessaires aux événements : | #define SYMBOLS_TRADING "EURUSD","GBPUSD","USDJPY","USDCHF" //| 1.2 Pour tous les symboles de Market Watch, utilisez : | //#define SYMBOLS_TRADING "MARKET_WATCH" //| Note : Choisissez uniquement une méthode parmi 1.1 ou 1.2. | //| 2. Type d'événement pour OnTick(string symbol) : | #define CHART_EVENT_SYMBOL CHARTEVENT_TICK //| Note : le type d'événement doit correspondre à l'énumération ENUM_CHART_EVENT_SYMBOL. | //| 3. Fichier à inclure : | #include <OnTick(string symbol).mqh> //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Fonction d'initialisation de l'expert | //+------------------------------------------------------------------+ int OnInit() { //--- Ajoutez votre code ici... return(0); } //+------------------------------------------------------------------+ //| Fonction multidevises | //+------------------------------------------------------------------+ void OnTick(string symbol) { //--- Ajoutez votre code ici... Print("Nouvel événement sur le symbole : ",symbol); } //+------------------------------------------------------------------+ //| Fonction OnChartEvent | //+------------------------------------------------------------------+ void OnChartEvent(const int id, // id de l'événement const long& lparam, // paramètre de l'événement de type long const double& dparam, // paramètre de l'événement de type double const string& sparam) // paramètre de l'événement de type string { //--- Ajoutez votre code ici... } //+------------------------------------------------------------------+ //| Fonction de désinitialisation de l'expert | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Ajoutez votre code ici... } //+------------------------------ fin -------------------------------+
Quelques fonctionnalités :
1. Réglages
Tous les réglages peuvent être configurés à l'aide des directives #define. Pour le bon fonctionnement de la fonction OnTick(string symbol), vous devez spécifier seulement deux paramètres : SYMBOLS_TRADING et CHART_EVENT_SYMBOL. Le premier (SYMBOLS_TRADING) définit la liste des symboles utilisés pour les événements. Le second (CHART_EVENT_SYMBOL) définit les types d'événements pour tous les symboles.
La SYMBOLS_TRADING contient la liste des symboles, par exemple :
#define SYMBOLS_TRADING "EURUSD","GBPUSD","USDJPY","USDCHF"La liste doit être préparée sous forme de chaînes, séparées par des virgules. Elle se termine par une nouvelle ligne.
La SYMBOLS_TRADING peut également être définie comme suit :
#define SYMBOLS_TRADING "MARKET_WATCH"Cette méthode signifie que tous les symboles de Market Watch seront utilisés. Cela peut être utilisé pour changer la liste des symboles à la volée.
2. Fichier à inclure.
Le #include OnTick(string symbol).mqh est nécessaire, ce fichier contient l'implémentation de la fonction OnTick(string symbol). Il offre une manière simple d'utiliser toute la fonction OnTick(string symbol). Certaines fonctions standard doivent être déclarées dans le code de l'Expert Advisor, même si elles sont vides.
3. Testeur de Stratégies.
Comme vous le savez, OnChartEvent n'est pas supporté dans le Testeur de Stratégies. Pour résoudre ce problème, des variables globales sont utilisées pour gérer les événements. Cela n'est utilisé que dans le Testeur de Stratégies, alors que dans tous les autres cas (comptes réels/démo), les événements sont traités via OnChartEvent.
Dans le Testeur de Stratégies, OnTick(string symbol) fonctionnera sur les ticks du symbole spécifié dans les réglages du Testeur de Stratégies. En d'autres termes, cela fonctionne comme OnTick(), mais est également appelé lorsque de nouveaux ticks arrivent sur les symboles sélectionnés. Pour que cela fonctionne avec le Testeur de Stratégies, SYMBOLS_TRADING doit être spécifié comme une liste de symboles.
4. "Espions".
Utilise les "espions" (agents-indicateurs). Le fichier Spy Control panel MCM.ex5 doit être situé dans le dossier \MQL5\Indicators\.
5. Les fichiers de l'archive doivent être extraits dans le dossier \MQL5. Voici les fichiers nécessaires :
- /MQL5/Experts/OnTick(string symbol).mq5 - Exemple de l'Expert Advisor, code source du modèle ;
- /MQL5/Experts/OnTick(string symbol).ex5 - Fichier compilé de l'Expert Advisor ;
- /MQL5/Indicators/Spy Control panel MCM.mq5 - Agent-indicateur, code source ;
- /MQL5/Indicators/Spy Control panel MCM.ex5 - Agent-indicateur, fichier compilé ;
- /MQL5/Include/OnTick(string symbol).mqh - fichier d'inclusion avec toutes les fonctions nécessaires pour l'implémentation de la fonction OnTick(string symbol).
Articles connexes
- Générer des Signaux de Trading avec MQL5 Wizard : Étoiles du Matin/du Soir et RSI
- Utiliser MQL5 Wizard pour Créer un Expert Advisor Basé sur les Modèles de Chandeliers Englobants et MFI
- Développez un Expert Advisor avec MQL5 : Signaux de Trading 3 Corbeaux Noirs / 3 Soldats Blancs + RSI
- Générez des Signaux de Trading avec MQL5 Wizard : Dark Cloud Cover et Piercing Line
- AOCCI : Un Expert pour MetaTrader 5