Mira cómo descargar robots gratis
¡Búscanos en Facebook!
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:
1092
Ranking:
(23)
Publicado:
2014.01.14 12:57
Actualizado:
2016.11.22 07:33
\MQL5\Include\
isnewbar.mqh (1.41 KB) ver
\MQL5\Experts\
¿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

TrendTriggerMod TrendTriggerMod

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

Change Of Volatility Change Of Volatility

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

i-Fractals-sig i-Fractals-sig

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

ColorBlauErgodicMACD ColorBlauErgodicMACD

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