Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1381

 
Alexey Viktorov:

No hay nada sobrenatural en ello. El habitual OBJ_BITMAP_LABEL y en él lo que quieras como recurso. Kanvas también trabaja en OBJ_BITMAP_LABEL.

Pero tu versión es mucho más fácil para un desarrollador novato.

Entiendo su punto de vista, gracias.
 
Alexey Viktorov:

Por favor, aprenda a insertar código en un mensaje.

Y para la pregunta: Lea la documentación sobre CopyTicksRange

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];

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

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = TimeCurrent() - 10000;
ulong to_msc = TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc);
  }
//+------------------------------------------------------------------+
No funciona. Cada vez que se llama a OnTick, el resultado de la variable Ticks es 0.
 
Boris:
No funciona. Cada vez que se llama a OnTick, el resultado de la variable Ticks es 0.

¿Está seguro de que necesita las garrapatas pasadas en la entrada. 10 segundos no es tanto tiempo, puedes esperar y contar los ticks reales y su número.

En general, necesitas 2 variables para el primer segundo y recordar cuántos ticks hubo en 9 segundos y sumarlos, luego contar los ticks del siguiente segundo, restar el primero y sumar el último. Los resultados deben almacenarse en una matriz o en una variable.

 
Valeriy Yastremskiy:

¿Está seguro de que necesita las garrapatas pasadas en la entrada. 10 segundos no es tanto tiempo, puedes esperar y contar los ticks reales y su número.

En general, necesitas 2 variables para el primer segundo y recordar cuántos ticks hubo en 9 segundos y sumarlos, luego contar los ticks del siguiente segundo, restar el primero y sumar el último. Estos resultados se guardan en una matriz o en una variable.

Entonces, ¿esto no se puede hacer a través de las funciones CopyTicks y CopyTicksRange?

Gracias.

 
Boris:
No funciona. Cada vez que se llama a OnTick, el resultado de la variable Ticks es 0.

¡¡¡Lee la documentación!!!

¿O quiere que toda la documentación se copie aquí pieza por pieza?

de_msc

[in] Fecha desde la que se solicitan los ticks. Especificado en milisegundos desde el 01.01.1970. Sino se especifica el parámetro from_msc , los ticks se devuelven desde el principio del historial. Se devuelven los ticks con tiempo >= from_msc.

to_msc

[en] Fecha en la que se solicitan las garrapatas. Especificado en milisegundos desde el 01.01.1970. Se devuelven los ticks con tiempo <= to_msc. Si no se especifica el parámetro to_msc, se dan todos los ticks hasta el final del historial .

 
Valeriy Yastremskiy:

¿Está seguro de que necesita las garrapatas pasadas en la entrada. 10 segundos no es tanto tiempo, puedes esperar y contar los ticks reales y su número.

En general, necesitas 2 variables para el primer segundo y recordar cuántos ticks hubo en 9 segundos y sumarlos, luego contar los ticks del siguiente segundo, restar el primero y sumar el último. Guarda los resultados en un array o en una variable.

¿Por qué dar esos consejos?

 
Boris:

¿Entonces no se puede hacer a través de las funciones CopyTicks y CopyTicksRange?

Gracias.

Sí, puedes hacerlo. Lea la documentación, y luego pregunte lo que no entiende en la documentación. De este modo, llegarás más rápido a la verdad).

 
Alexey Viktorov:

¿Por qué dar esos consejos?

Lo hago yo mismo. Por qué meterse en estructuras cuando puedes arreglar las acciones cortas tú mismo.

 
Valeriy Yastremskiy:

Lo hago yo mismo. Por qué meterse en estructuras cuando puedes arreglar las acciones cortas tú mismo.

Y me rasco la oreja izquierda con el meñique derecho... Puedo enseñarte... ¿Lo necesitas? No enseñes a los demás lo que haces a través de .....................

 
Valeriy Yastremskiy:

Puedes hacerlo. Lea la documentación y luego pregunte lo que no entiende en la documentación. Ese es el camino más rápido hacia la verdad).

Así que... Lea la documentación (de nuevo).

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];
ulong ten_msc =(ulong)TimeCurrent()-10000; // 1 секунда = 1000 милисекунд
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = (ulong)TimeCurrent() - 10000;
ulong to_msc = (ulong)TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc); //(с текущего времени - 10 сек назад)
// либо CopyTicks(_Sybol,Tick_Mql,COPY_TICKS_ALL,from_msc,0); //(все тики от 10 сек назад до настоящего времени)
  }

Pregunta. ¿Qué pasa? No cuenta ni con CopyTicksRange ni con CopyTicks