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

Gestionnaire d'événements multidevises OnTick(string symbol) - expert pour MetaTrader 5

Konstantin Gruzdev
Konstantin Gruzdev
Research Engineer. Been programming since 1982. Since 2001, I write software for companies operating in the stock and currency markets. With MetaTrader been working since 2006. Since 2010 an active participant MQL5.Community.
My main creative contribution to the MQL5-coding and the community:
| French English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Vues:
239
Note:
(45)
Publié:
Mise à jour:
onmultitick.zip (24.14 KB)
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Description :

Il s'agit d'une autre version permettant de mettre en place un mode multidevises complet dans MetaTrader 5. Elle est conçue sous la forme d'un gestionnaire de ticks standard OnTick(string symbol).

Avantages :

  • Véritable multidevise sur les comptes démo et réels.
  • Configuration simple.
  • Possibilité de choisir les événements à recevoir dans OnTick(string symbol) : NewTick et/ou NewBar.
  • Possibilité de configurer la réception d'événements pour les instruments de la fenêtre « Aperçu du marché » ou pour votre liste de symboles.
  • Lorsque vous travaillez avec des symboles issus de la fenêtre « Aperçu du marché », vous pouvez gérer « à la volée » les symboles pour lesquels vous souhaitez recevoir des événements dans OnTick(string symbol).
  • Pas besoin de comprendre en détail comment cela fonctionne. Tout le code est placé dans un fichier inclus, il ne vous gêne pas lorsque vous écrivez le vôtre.
  • Fonctionne dans le testeur.

Le modèle d'expert se présente comme suit :

//+------------------------------------------------------------------+
//|                                        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 « Modèle d'experts à utiliser »
#property description « le processeur multidevises OnTick(string symbol) »

//+------------------------------------------------------------------+
//|                PARAMÈTRES DU MODE MULTIDEVISES                  |
//|          pour le gestionnaire d'événements OnTick(string symbol)           |
//|                                                                  |
//| 1.1 Liste des caractères pour lesquels il faut recevoir des événements :     |
#define  SYMBOLS_TRADING    "EURUSD","GBPUSD","USDJPY","USDCHF"
//| 1.2 Recevoir les événements concernant tous les symboles de la fenêtre « Aperçu du marché » :    |
//#define  SYMBOLS_TRADING    "MARKET_WATCH"
//|     Remarque : il faut choisir 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 
//|     Remarque : le type d'événement doit correspondre à l'énumération  |
//|                 ENUM_CHART_EVENT_SYMBOL.                         |
//|                                                                  |
//| 3.  Fichier à inclure contenant l'ensemble des fonctionnalités :                 |
#include <OnTick(string symbol).mqh>
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'expert                                   |
//| Cette fonction doit impérativement figurer dans le code de l'expert,   |
//| même si elle est vide                                             |
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Votre code ici...  
   return(0);
  }
  
//+------------------------------------------------------------------+
//| Fonction multi-tick avancée                                       |
//| Cette fonction remplace la fonction standard OnTick()                          |
//+------------------------------------------------------------------+
void OnTick(string symbol)
  {
   //--- Votre code ici...
   Print(« Nouvel événement par symbole : »,symbol);
  }
  
//+------------------------------------------------------------------+
//| Fonction ChartEvent                                              |
//| Cette fonction doit impérativement figurer dans le code de l'expert,   |
//| même si elle 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
  {
   //--- Votre code ici...  
  }
  
//+------------------------------------------------------------------+
//| Fonction de désinitialisation de l'expert                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   //--- Votre code ici...  
  }

//+------------------------------ fin -------------------------------+

Quelques particularités :

  1. Paramètres.
Tous les réglages s'effectuent à l'aide des directives du préprocesseur #define. Pour que la fonction OnTick(string symbol) fonctionne correctement, il suffit de définir deux paramètres : SYMBOLS_TRADING et CHART_EVENT_SYMBOL. Le paramètre SYMBOLS_TRADING définit les symboles pour lesquels des événements seront reçus. Le paramètre CHART_EVENT_SYMBOL définit les types d'événements pour tous les symboles.

SYMBOLS_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 être formatée sous forme de constantes de chaîne séparées par des virgules. Elle se termine par un retour à la ligne et ne peut pas être reportée sur la ligne suivante.

Sinon, SYMBOLS_TRADING peut être défini ainsi :

#define  SYMBOLS_TRADING    "MARKET_WATCH"

Cette méthode signifie que vous comptez utiliser, à la place d’une liste, les symboles de la fenêtre « Aperçu du marché ». Cette méthode est pratique car, pendant le fonctionnement de l’expert, il est possible de modifier « à la volée » les symboles pour lesquels des événements seront transmis à OnTick(string symbol). Pour cela, il suffit d’ajouter ou de supprimer des instruments de trading dans la fenêtre « Aperçu du marché ».

Le type d’événement CHART_EVENT_SYMBOL est défini par un indicateur ou une combinaison d’indicateurs issus de l’énumération ENUM_CHART_EVENT_SYMBOL. Pour en savoir plus sur cette énumération, cliquez ici. Exemples de configuration du type d’événement :

//--- Exemple 1. Les événements arrivent à chaque tick :
#define  CHART_EVENT_SYMBOL CHARTEVENT_TICK 
//--- Exemple 2. Les événements relatifs aux symboles sont transmis toutes les minutes et toutes les heures :
#define  CHART_EVENT_SYMBOL CHARTEVENT_NEWBAR_H1|CHARTEVENT_NEWBAR_M1

2. Fichier inclus.

La directive #include renvoyant au fichier OnTick(string symbol).mqh, qui contient l’ensemble des 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 conçu de manière à dissimuler tout le code de gestion de la fonction OnTick(string symbol). À cet égard, la présence de certaines fonctions standard dans le modèle ci-dessus est indiquée comme obligatoire.

3. Letesteur.

Comme on le sait, à la date de publication, le testeur ne prend pas en charge le fonctionnement du gestionnaire d’événements OnChartEvent. Afin de permettre le test des experts, le transfert d’événements via les variables globales du terminal a été intégré au code. Cette modification a été apportée exclusivement pour le testeur de stratégies ; en mode réel et en mode démo, les événements sont transmis via OnChartEvent. Bien sûr, ces ajouts ont rendu le code moins élégant, mais cela permet désormais d’utiliser le testeur.

Une petite précision : dans le testeur , la fonction `OnTick(string symbol)` fonctionne sur les ticks du symbole défini dans les paramètres du testeur. En résumé, cela fonctionne presque comme OnTick(), à la différence près que les événements sont transmis à chaque tick pour les instruments de trading sélectionnés. Pour que cela fonctionne dans le testeur, les symboles doivent être définis sous forme de listedans le paramètre SYMBOLS_TRADING.

4. Les espions.

Les indicateurs-espions sont utilisés. C’est pourquoi la présence, dans le répertoire \MQL5\Indicators\, de l’espion Spy Control panel MCM.ex5 est importante. Le fichier joint contient une nouvelle version de Spy Control panel MCM.mq5. Dans celle-ci, la transmission des événements via des variables globales 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, code source du modèle ;
    • /mql5/experts/OnTick(string symbol).ex5 - exemple d'expert, fichier exécutable ;
    • /mql5/indicators/Spy Control panel MCM.mq5 - indicateur - agent, code source ;
    • /mql5/indicators/Spy Control panel MCM.ex5 - indicateur-agent, fichier exécutable ;
    • /mql5/include/OnTick(string symbol).mqh - fichier d'inclusion contenant l'ensemble des fonctionnalités de OnTick(string symbol).

Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/280

Motifs « Zig Zag » non paramétriques, à la manière de Clyde Lee Motifs « Zig Zag » non paramétriques, à la manière de Clyde Lee

Zigzag non paramétrique inspiré des motifs de Clyde Lee.

Round Levels MT5 Round Levels MT5

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.

eKeyboardTrader eKeyboardTrader

Un outil permettant d'effectuer les principales opérations de trading à l'aide du clavier.

Recent High/Low Alert MT5 Recent High/Low Alert MT5

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.