Rejoignez notre page de fans

Gestionnaire d'événements multidevises OnTick(string symbol) - expert pour MetaTrader 5
- Vues:
- 14
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
Description :
Ceci est une autre version de la façon dont vous pouvez organiser un mode multidevise complet dans MetaTrader 5. Il s'agit d'un gestionnaire de tick ala standard OnTick(string symbol).
Avantages :
- Véritable multidevise sur la démo et le réel.
- Paramètres simples.
- Vous pouvez configurer les événements à recevoir dans OnTick(string symbol) : NewTick et/ou NewBar.
- Vous pouvez configurer la réception des événements pour les instruments de la fenêtre "Market Watch" ou pour votre liste de symboles.
- Lorsque vous travaillez avec des symboles à partir de la fenêtre "Market Watch", vous pouvez contrôler à la volée quels symboles doivent recevoir des événements dans OnTick(string symbol).
- Il n'est pas nécessaire d'expliquer comment cela fonctionne. Tout le code est placé dans un fichier include, il n'est pas gênant lorsque vous écrivez votre propre code.
- Il fonctionne dans le testeur.
Le modèle EA ressemble à ceci :
//+------------------------------------------------------------------+ //|OnTick(string symbol).mq5 | //|Copyright 2010, Lizar | //| https://www.mql5.com/fr/users/Lizar | //+------------------------------------------------------------------+ #define VERSION "1.00 Build 1 (01 Fab 2011)" #property copyright "Copyright 2010, Lizar" #property link "https://www.mql5.com/fr/users/Lizar" #property version VERSION #property description "Un modèle d'expert lorsqu'il est utilisé". #property description "du gestionnaire multidevises OnTick(string symbol)". //+------------------------------------------------------------------+ //| PARAMÈTRES DU MODE MULTIDEVISE| //| pour le gestionnaire d'événement OnTick(string symbol) | //|| //| 1.1 Liste des symboles pour lesquels des événements doivent être reçus : //| 1.2 Liste des symboles pour lesquels des événements doivent être reçus : //| 1.3 Liste des symboles pour lesquels des événements peuvent être reçus #define SYMBOLS_TRADING "EURUSD","GBPUSD","USDJPY","USDCHF" //| 1.2 Recevoir des événements pour tous les symboles de la fenêtre "Market Watch" : | //#define SYMBOLS_TRADING "MARKET_WATCH" //| Note : vous devez sélectionner soit le point 1.1, soit le point 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.| //|| Un fichier plug-in contenant toutes les fonctionnalités : //| 3. #include <OnTick(string symbol).mqh> //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Fonction d'initialisation de l'expert| //| Cette fonction doit être présente dans le code de l'expert, || //| même s'il est vide| //+------------------------------------------------------------------+ int OnInit() { //--- Voici votre code... return(0); } //+------------------------------------------------------------------+ //| Fonction expert multi tic-tac| //| Cette fonction remplace la fonction standard OnTick() | //+------------------------------------------------------------------+ void OnTick(string symbol) { //--- Voici votre code... Print("Nouvel événement par symbole : ",symbol); } //+------------------------------------------------------------------+ //| Fonction ChartEvent| //| Cette fonction doit être présente dans le code de l'expert, || //| même s'il est vide| //+------------------------------------------------------------------+ void OnChartEvent(const int id, // identifiant de l'événement const long& lparam, // paramètre d'événement de type long const double& dparam, // paramètre d'événement de type double const string& sparam) // paramètre d'événement de type chaîne de caractères { //--- Voici votre code... } //+------------------------------------------------------------------+ //| Fonction de désinitialisation de l'expert| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Voici votre code... } //+------------------------------ end -------------------------------+
Quelques fonctionnalités :
- Paramètres.
Tous les paramètres sont définis à l'aide des directives de préprocesseur #define. Pour que OnTick(string symbol) fonctionne correctement , seuls deux paramètres doivent être définis : SYMBOLS_TRADING et CHART_EVENT_SYMBOL. Le paramètre SYMBOLS_TRADING définit les symboles pour lesquels les événements seront reçus. Le paramètre CHART_EVENT_SYMBOL spécifie les types d'événements pour tous les symboles.
Le paramètreSYMBOLS_TRADING peut être défini sous la forme d'une liste de symboles, par exemple :
#define SYMBOLS_TRADING "EURUSD","GBPUSD","USDJPY","USDCHF"
La liste doit se présenter sous la forme de constantes de chaîne séparées par des virgules. La liste se termine à la fin de la ligne et ne peut être reportée à la ligne suivante.
Soit SYMBOLS_TRADING peut être défini comme suit :
#define SYMBOLS_TRADING "MARKET_WATCH"
Cela signifie que vous allez utiliser les symboles de la fenêtre Market Watch au lieu d'une liste. Cette méthode est pratique car pendant le travail de l'Expert Advisor vous pouvez changer les symboles à la volée pour lesquels les événements seront reçus dans OnTick(string symbol). Pour ce faire, il suffit d'ajouter ou de supprimer des instruments de trading dans la fenêtre "Market Watch".
Le type d'événement CHART_EVENT_SYMBOL est spécifié par un drapeau ou une combinaison de drapeaux de l'énumération ENUM_CHART_EVENT_SYMBOL. Pour en savoir plus sur cette énumération , cliquez ici. Exemples de définition du type d'événement :
//--- Exemple 1. Les événements sont reçus à chaque tic-tac : #define CHART_EVENT_SYMBOL CHARTEVENT_TICK //--- Exemple 2. Les événements pour les personnages arrivent toutes les minutes et toutes les heures : #define CHART_EVENT_SYMBOL CHARTEVENT_NEWBAR_H1|CHARTEVENT_NEWBAR_M1
2. Fichier inclus.
La directive #include avec le fichier OnTick(string symbol).mqh, qui contient toutes les fonctionnalités de la fonction OnTick(string symbol), doit être placée après les paramètres et avant les autres gestionnaires d'événements standard. Le fichier est organisé de manière à ce que tout le code de service pour OnTick(string symbol) soit hors de vue. Par conséquent, la présence de certaines fonctions standard dans le modèle ci-dessus est considérée comme obligatoire.
3. Testeur.
Comme vous le savez, au moment de la publication, le testeur ne prend pas en charge le gestionnaire d'événements OnChartEvent. Afin de rendre possible le test des Expert Advisors, le code inclut le passage des événements à travers les variables globales du terminal. Ceci est fait exclusivement pour le testeur de stratégie, dans les stratégies réelles et de démonstration les événements sont passés par OnChartEvent. Bien sûr, ces ajouts ont rendu le code moins beau, mais vous pouvez maintenant utiliser le testeur.
Une nuance. Dans le testeur, OnTick(string symbol) fonctionne sur les ticks du symbole, qui est défini dans les paramètres du testeur. En général, cela fonctionne presque comme OnTick(), sauf que les événements pour chaque tick sont reçus par les instruments de trading sélectionnés. Pour fonctionner dans le testeur, les symboles dans le paramètre SYMBOLS_TRADING doivent être définis comme une liste.
4. Espions.
Des indicateurs espions sont utilisés. Par conséquent, la présence du panneau de contrôle MCM.ex5 dans le catalogue \MQL5\Indicateurs\ est importante. Le fichier ci-joint contient une nouvelle version du panneau de contrôle MCM.mq5. La transmission d'événements via des variables globales y a été ajoutée pour le testeur.
5. L'archive ci-jointe doit être décompressée dans le répertoire \MQL5. Les fichiers seront placés comme suit :
- /mql5/experts/OnTick(string symbol).mq5 - exemple d'expert, source du modèle ;
- /mql5/experts/OnTick(string symbol).ex5 - exemple de conseiller expert, fichier exécutable ;
- /mql5/indicators/Spy Control panel MCM.mq5 - indicateur - agent, fichier source ;
- /mql5/indicators/Spy Control panel MCM.ex5 - indicateur - agent, fichier exécutable ;
- /mql5/include/OnTick(string symbol).mqh - fichier include contenant toutes les fonctionnalités de OnTick(string symbol).
Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/280

Un zigzag non paramétrique basé sur les modèles de Clyde Lee.

Indicateur Round Levels MetaTrader - un indicateur MT4/MT5 qui peut afficher des niveaux ronds et des zones proches de ceux-ci en fonction de votre configuration. Il peut être utile pour trader sur les zones psychologiques naturelles de support et de résistance. Il peut également émettre des alertes lorsque le prix se trouve dans une zone de support ou de résistance.

Expert Advisor pour effectuer des actions de trading de base à partir du clavier.

L'indicateur MetaTrader Recent High/Low Alert affiche deux bandes de niveaux maximum et minimum sur les bougies N récentes. Par défaut, la bande maximale est affichée avec une ligne bleue ; la bande minimale est affichée avec une ligne jaune. En outre, il peut invoquer une alerte popup, envoyer une alerte par email, ou émettre une alerte de notification lorsque le prix actuel (Bid) dépasse le niveau récent High ou Low. Toutes les alertes peuvent être désactivées. Si vous utilisez la fonction d'alerte par email, n'oubliez pas de définir les paramètres de l'email dans la fenêtre d'options de votre plateforme MetaTrader. Il en va de même pour les notifications push. L'indicateur est disponible pour MT4 et MT5.