¿Cómo se obtienen los parámetros Open, Low, High, Close en MQL5? - página 5

 
Igor Makanu:

puede clasificar CNewbar, o buscar en el foro NewBar


Tiene una llamada de iTime en su clase. Me aconsejaron que me olvidara de ello). Además, ¿dónde está la garantía de que no hace el mismo trabajo que CopyRates? Lo llamas en cada garrapata. De todos modos, llamo a CopyRates en cada tic y se cierra el tema.

 
Artyom Trishkin:

Sí, en cada tictac comprobamos la hora:

Y en pocas palabras:

sólo escribir de rodillas - para mostrar la idea, no la exactitud de la escritura

No tiene sentido calcular una nueva barra si el cálculo mismo implica CopyRates o su contraparte. Los mismos gastos serán.

Llamaré a cada garrapata. Uy.

 
Igor Makanu:

puede clasificar CNewbar, o buscar en el foro NewBar

ZS: ¡artículo completo!https://www.mql5.com/ru/articles/159



OK, lo de siempre... oops, oops, oops... y ni una sola línea de código ))))

He citado mi ejemplo para mostrar que no siempre es conveniente (y rara vez es necesario) obtener una matriz de OHLC consecutiva. En los problemas prácticos, a menudo se necesita obtener una selección de valores de OHLC de diferentes barras (los indicadores no se tienen en cuenta)

¡Bien, no te pongas enfermo!

Oh, vamos. Las personas gordas suelen ser cálidas. Por eso también puedes utilizar estas comparaciones. A quién le importa si necesita OHLC... Igor dijo que debías usar fractales, así que úsalos...

 
Реter Konow:

Tienes la llamada de iTime en tu clase. Me aconsejaron que me olvidara de ello). Además, ¿dónde está la garantía de que a su vez no hace el mismo trabajo que CopyRates? Lo llamas en cada garrapata. En definitiva, llamaré a CopyRates en cada tick y asunto cerrado.

Esto es más largo que llamar a CopyTime() o iTime() una vez por tic.

CopyRates() se llama sólo cuando se necesita obtener todos los valores de la barra a la vez - en el momento de la definición de la nueva barra.

 
Реter Konow:
No tiene sentido calcular una nueva barra si el cálculo mismo implica CopyRates o su contraparte. Los mismos gastos serán.

Llamaré a cada garrapata. Balnearios.

Respuesta: se equivoca.

 
Artyom Trishkin:

Esto es más largo que llamar a CopyTime() o iTime() una vez por tic.

Llame a CopyRates() sólo cuando necesite obtener todos los valores de las barras a la vez - en el momento de definir una nueva barra.

Bien. Así que hay que olvidar la configuración para olvidarse de las funciones de iXXX).

 
Реter Konow:

Bien. Así que debes olvidarte de las funciones iXXX)).

Por supuesto. No todo es útil lo que se dice. Y puedo decir semejantes tonterías :)))

Pero aquí - por razones de velocidad: CopyRates() es útil cuando necesitas obtener varios valores de una barra simultáneamente (tu caso). Es más lento que CopyTime() o iTime(), pero si llama a CopyOpen(), CopyHigh(), CopyLow() y CopyClose() + (CopyTime() si es necesario), entonces será más lento que la únicallamada CopyRates(), que devolverá todos los valores requeridos a la vez.

Conclusión: en cada tick trabajamos con CopyTime() o iTime() para determinar una nueva barra, y en el momento de aparición de una nueva barra llamamos una vez a CopyRates().

Y no hay que tener en cuenta las declaraciones religiosas, que no se confirman con nada más que la creencia. Puedes comprobar tú mismo qué sería más rápido para tu caso de definir una nueva barra - CopyTime() o iTime() - función recientemente implementada en MQL5, que facilita la escritura de código multiplataforma (hay una mentira - ya que MQL4 también contiene funciones CopyXXX, pero la portación de código MQL4 en MQL5 es más fácil - no necesitas rehacer las funciones iXXX)

 
Реter Konow:
De lo contrario, ¿cómo sabrías que la hora de apertura del bar actual ha cambiado?
//+------------------------------------------------------------------+
//|                                                       NewBar.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlDateTime time;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{

   EventSetMillisecondTimer(100);
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   EventKillTimer();   
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{

   
}

//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
{
   TimeGMT(time);   
   //TimeLocal(time);

   if(NewMinute())
   {
     Print("Я новая минута");
   }		
}

//####################################################################

//Получить новое время
int zero = 0;
bool NewMinute()
{
  int minute = time.min; //time.sec; time.hour;  time.day; 
  if(zero != minute)
  {    
    zero = minute;
    return(true);
  }
  else return(false); 
}
 
Реter Konow:

Tienes la llamada de iTime en tu clase. Me aconsejaron que me olvidara de ello). Además, ¿dónde está la garantía de que a su vez no hace el mismo trabajo que CopyRates? Lo llamas en cada garrapata. De todos modos, llamo a CopyRates en cada tic y se cierra el tema.

¿Siempre te limitas a escribir y no intentas leer? ¡Te he dado un enlace a un artículo completo sobre el Nuevo Bar! Los artículos son revisados - revisados por personas de una competencia diferente a la de los que escriben constantemente en el foro ;)

ZS: Si dejas de escribir y te pones a leer, como el artículo de mi enlace, puedes encontrar otra forma (SERIES_LASTBAR_DATE ) de no usar los iXXX() - te dije que no los usaras ))) - ¿Quién iba a informar de los fallos y errores, que los desarrolladores lanzaron de mala calidad )))))

 
Igor Makanu:

¿Siempre te limitas a escribir y no intentas leer? ¡Te he dado un enlace a un artículo completo sobre el Nuevo Bar! Los artículos son revisados - revisados por personas de una competencia diferente a la de los que escriben constantemente en el foro ;)

ZS: Si dejas de escribir y te pones a leer, como el artículo de mi enlace, puedes encontrar otra forma ( SERIES_LASTBAR_DATE ) de no usar los iXXX() - te dije que no los usaras ))) - que contaría los fallos y errores que los desarrolladores publicaron en ))))) de mala calidad

Había algunos problemas con SERIES_LASTBAR_DATE. Se discutió aquí hace mucho tiempo. Quizá se haya arreglado.

Razón de la queja: