Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 1218
- Ranking:
- Publicado:
- 2014.01.14 12:57
- Actualizado:
- 2016.11.22 07:33
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Descripcion:
La clase СIsNewBar es necesaria para la eficiente labor de los EA's que hacen cálculos en el momento en que aparece la barra nueva.
La función IsNewBar() se utiliza generalmente para ese tipo de cosas, en lugar de una clase. Pero tal función contiene una variable estática y por lo tanto no podemos usar varias llamadas de esta función. Para poder reutilizar dicha función repetidamente en el código de EA, sería mucho más fácil que fuera un miembro de la clase. En este caso se ha logrado mediante IsNewBar.mqh.
El código de la lobrería debería incluirse en el contenido del archivo a nivel mundial utilizando la directiva #include :
#include <IsNewBar.mqh>
Entonces, el número requerido de la variable de la clase СIsNewBar debe ser declarado en el bloque OnTick() del EA:
static CIsNewBar NB1,NB2;
Después de eso podemos hacer llamadas a las funciones del IsNewBar()
bool IsNewBar(string symbol, // símbolo de la moneda ENUM_TIMEFRAMES timeframe)// tabla de cálculo de timeframe
en el código del EA:
if(NB1.IsNewBar(Symbol(),PERIOD_D1)) // comprobación de un nueva barra { /* Aquí es una señal 1 de trading recibiendo código del bloque */ }
Aquí está el posible ejemplo del código que incluye la clase СIsNewBar dentro de la función OnTick():
//+------------------------------------------------------------------+ //| Función tick del EA | //+------------------------------------------------------------------+ void OnTick() { //---- double iClose1[1],iClose2[1]; //---- declaración de variables estáticas static bool Recount1=true,Recount2=true; static CIsNewBar NB1,NB2; //+----------------------------------------------+ //| Detectando señales de entrada en el mercado | //+----------------------------------------------+ if(NB1.IsNewBar(Symbol(),PERIOD_D1) || Recount1) // comprobación de una nueva barra { Recount1=false; //---- copiar los datos recién aparecidos en las matrices if(CopyClose(Symbol(),PERIOD_D1,1,1,iClose1)<=0) {Recount1=true; return;} /* Aquí es una señal 1 de trading recibiendo código del bloque */ } if(NB2.IsNewBar(Symbol(),PERIOD_H4) || Recount2) // comprobación de una nueva barra { Recount2=falso; //---- copiar los datos recién aparecidos en las matrices if(CopyClose(Symbol(),PERIOD_H4,1,1,iClose2)<=0) {Recount2=true; return;} /* Aquí es una señal 2 de trading recibiendo código del bloque */ }
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/768

El indicador muestra el poder de la tendencia y la dirección.

El indicador especifica la volatilidad de los mercados como una desviación estándar.

El indicador de señales de entrada al mercado utilizando fractales.

Oscilador MACD ergódico implementado en forma de un histograma en color.