Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Visualizaciones:
894
Ranking:
(35)
Publicado:
2014.01.14 14:36
Actualizado:
2016.11.22 07:33
\MQL5\Scripts\
stoken.mq5 (22.71 KB) ver
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Descripcion:

El script contiene una clase, que puede utilizarse para resolver expresiones matemáticas y lógicas, definidas como string.

El script tiene dos clases: cTokenBase y cToken (miembro de CTokenBase). La clase cTokenBase debe configurarse antes de su uso (véase abajo).

Se soportan las siguientes funciones matemáticas MQL5: abs, arccos, arcsin, arctan, ceil, cos, exp, floor, log, log10, max, min, mod, pow, rand, round, sin, sqrt, tan.

Operaciones lógicas y matemáticas:  /, %, *, +, -, >, <, >=, <=, ==, !=, &&, ||.

La expresión puede contener números, incluyendo doble número, las variables de usuario y matrices de usuario. Si utilizas variables y matrices del usuario, tienes que añadir las funciones, que devuelve los valores de estas variables y matrices. Las funciones se deben agregar a la clase cTokenBase.

Las variables y matrices de usuario se nombran con letras (esto no es importante), los elementos de la matriz se definen como sigue: e [0], e [1], f [0], f [1].

Ejemplos:

Expresiones demo del sToken demo


resultados demos del sToken


Cómo configurar la clase de cTokenBase

Es necesario registrar el nombre de las variables y matrices de usuario. It must be done in the UsersVariables() function. La lista de variables y matrices de usuario contienen los nombres, separados por ";".

      void UsersVariables()
     {
         UserVariables="a;b;c;d"; // lista de variables de usuarios
         UserArrays="e;f";       // lista de matrices de usuarios
      } 

2. Tienes que añadir una llamada de la función correspondiente a la función UserFunc(string FuncName):

      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("Function for "+FuncName+" la variable sin definir");
         return("0");
      }

3. Añadir funciones para todas las variables del usuario:

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

4. Añadir una llamada de la función correspondiente (dependiente de NomArr) en la función UserArray (string NomArr, int aIndex). El índice del elemento de la matriz está especificado en la variable aIndex.

      string UserArray(string ArrName,int aIndex){
         if(ArrName=="e")return(e(aIndex));
         if(ArrName=="f")return(f(aIndex));
         Alert("Function for "+ArrName+" matriz sin definir");
         return("0");
      }

5. Añadir funciones para cada uno de las matrices:

      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]);
      }

Uso de la clase

1. Declarar una variable de entrada externa para la expresión:

input string Expression="entrar la expresión aquí";

2. Declarar una variable de clase cToken a nivel general:

cToken token;

3. Inicializar la clase con la expresión.

   token.Init(Expression);

4. Llamar al método SolveExpression()

double Value=token.SolveExpression();

La clase puede utilizarse para resolver varias expresiones, sólo tiene que utilizar las diversas instancias de la clase cToken:

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

En este caso todas las instancias de clase utilizarán las mismas variables y matrices de usuario (declarados en la clase de cTokenBase)

Puedes agregar tus funciones.


Añadir nuevas funciones a la clase cToken

  1. Registrar una nueva función. Debe hacerse en la función Init() .
  2. Agregue el código de cálculo a la función SolveFunc (string Func, cadena &amp; aRes[]). Los argumentos de la función se encuentran en la matriz aRes[]. El número de argumentos no es limitado.

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/303

Clase CDownLoadHistory Clase CDownLoadHistory

La clase CDownLoadHistory proporciona los métodos de descarga de datos históricos.

Demo_FileMove Demo_FileMove

El script muestra un ejemplo del uso de la función FileMove()

downloadhistory.mq5 downloadhistory.mq5

El script de descargas de datos históricos (para el actual símbolo), disponibles en el servidor de trade.

The20sv0.20 The20sv0.20

Indicador de señal de tendencia de semáforo