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
Vues:
266
Note:
(35)
Publié:
Mise à jour:
\MQL5\Scripts\
stoken.mq5 (24.04 KB) afficher
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Script comportant une classe permettant de résoudre des expressions mathématiques et logiques fournies sous forme de chaîne de caractères.

Le script contient deux classes : cTokenBase et cToken, qui est un membre de la classe cTokenBase. Les classes ne sont pas placées dans un fichier séparé, car leur utilisation pratique nécessite d'apporter certaines modifications à la classe cTokenBase (voir ci-dessous).

Toutes les fonctions mathématiques du langage MQL5 sont prises en charge : abs, arccos, arcsin, arctan, ceil, cos, exp, floor, log, log10, max, min, mod, pow, rand, round, sin, sqrt, tan.

Les opérations arithmétiques et logiques sont prises en charge : ;/, %, *, +, -, >, <, >=, <=, ==, !=, &&, ||.

Les arguments d'une expression peuvent être des nombres, y compris ceux avec un séparateur décimal (un point), des variables utilisateur et des tableaux utilisateur. En cas d'utilisation de variables utilisateur et de tableaux utilisateur, il est nécessaire d'ajouter des fonctions permettant d'obtenir les valeurs de ces variables et tableaux.

Les fonctions permettant d’obtenir les valeurs des variables et des tableaux personnalisés sont ajoutées à la classe cTokenBase ; c’est d’ailleurs dans ce but que la division en deux classes a été effectuée : la classe cToken est utilisée telle quelle, tandis que la classe cTokenBase contient les fonctions permettant d’obtenir les valeurs des variables et des tableaux.

Les noms des variables et des tableaux sont composés de lettres (la casse n’a pas d’importance, tout comme celle de l’expression dans son ensemble) ; les éléments des tableaux sont désignés par un nombre entre crochets, par exemple : e[0], e[1], f[0], f[1].

Exemple :

Opérations arithmétiques

Résultat des opérations arithmétiques

Procédure de modification de la classe cTokenBase

1. Enregistrer le nom d’une variable ou d’un tableau. L’enregistrement s’effectue dans la fonction UsersVariables(). Cette fonction attribue des valeurs aux variables UserVariables et UserArrays ; les valeurs sont des chaînes de caractères représentant des listes de variables séparées par le séparateur « ; ».

      void UsersVariables()
      {
         UserVariables="a;b;c;d"; // liste des variables utilisateur
         UserArrays="e;f";       // liste des tableaux personnalisés  
      } 

2. Dans la fonction UserFunc(string FuncName), ajouter l'appel d'une fonction spécifique avec l'argument correspondant.

      string UserFunc(string FuncName)
      {
         if(FuncName=="a")return(a()); 
         if(FuncName=="b")return(b());
         if(FuncName=="c")return(c());
         if(FuncName=="d")return(d());
         Alert(« Fonction pour la variable »+FuncName+« non définie »);
         return("0");
      }

3. Écrire des fonctions pour chacune des variables utilisateur :

      string a()
      {
         return("1");
      }
      string b()
      {
         return("2");
      }
      string c()
      {
         return("3");
      }
      string d()
      {
         return("4");
      } 

4. Dans la fonction UserArray(string ArrName, int aIndex), ajoutez l'appel d'une fonction spécifique avec le premier argument correspondant (la variable ArrName).

La variable aIndex déterminera l'index de l'élément du tableau utilisateur.

      string UserArray(string ArrName,int aIndex)
       {
         if(ArrName=="e")return(e(aIndex));
         if(ArrName=="f")return(f(aIndex));
         Alert(« Fonction pour un tableau »+ArrName+« non définie »);
         return("0");
      }

5. Écrire des fonctions pour chacun des tableaux personnalisés :

      string e(int Index)
      {
         string v[]={"1","2","3","4","5","6","7","8","9"};
         return(v[Index]);
      }
      string f(int Index)
      {
         string v[]={"10","20","30","40","50","60","70","80","90"};
         return(v[Index]);
      }

Mode d’emploi de la classe

1. Déclarez une variable externe dans laquelle l'utilisateur saisira une expression.

input string Expression=« Saisissez une expression »;

2. Dans la section générale du module, déclarer une variable de type pointeur vers la classe :

cToken token;

3. Initialiser la classe à l'aide de l'expression spécifiée dans la variable Expression.

   token.Init(Expression);

4. Appeler la méthode SolveExpression() si nécessaire

double Value=token.SolveExpression();

La classe peut être utilisée pour résoudre plusieurs expressions ; pour chacune d'entre elles, on déclare un pointeur vers la classe.

cToken token1;
cToken token2;
cToken token3;
cToken token4;

Dans ce cas, toutes les instances de la classe utiliseront les mêmes variables utilisateur et les mêmes tableaux de la classe cTokenBase.

La classe peut être adaptée pour utiliser d’autres fonctions.


Ajout de nouvelles fonctions à la classe cToken

  1. Enregistrer une nouvelle fonction. L'enregistrement s'effectue dans la fonction Init() dans la variable « as » (de la même manière que pour l'enregistrement des variables et des tableaux personnalisés).
  2. Ajouter le code de calcul de la nouvelle fonction dans la fonction SolveFunc(string Func, string & aRes[]). Les arguments nécessaires au calcul de la fonction se trouveront dans le tableau aRes[]. Les fonctions peuvent avoir un nombre quelconque d’arguments.

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

downloadhistory.mq5 downloadhistory.mq5

Le script récupère l'historique disponible pour le symbole actuel.

Rainbow Multiple Moving Average (RMMA) MT5 Rainbow Multiple Moving Average (RMMA) MT5

L'indicateur MetaTrader Rainbow Multiple Moving Average (RMMA) est un indicateur très simple mais visuellement informatif basé sur la moyenne mobile standard. Il dessine 66 lignes de moyenne mobile aux couleurs de l'arc-en-ciel, du type et du prix de votre choix, directement dans la fenêtre principale du graphique. Cet indicateur est disponible pour les versions MT4 et MT5 de la plateforme de trading.

Classe CDownLoadHistory Classe CDownLoadHistory

Sert à organiser le téléchargement de l'historique dans les programmes sur MQL5.

Telegram To MT5 Copier Telegram To MT5 Copier

TelegramToMT5 est un Expert Advisor de MetaTrader 5 qui fait le lien entre Telegram et MT5 en affichant les messages de vos canaux, groupes et chats privés Telegram directement sur vos graphiques de trading. Il suffit de créer un bot Telegram, de l'ajouter aux canaux/groupes souhaités et de laisser l'EA afficher tous les messages sous forme de commentaires sur votre graphique en temps réel.