CopyTicksRange () no funciona correctamente en MQL5. a - página 6

 
Alexey Viktorov #:

En dos años podrías haber entendido que si una función no funciona como tú quieres, y los desarrolladores lo saben y no lo arreglan, no se llama bug...

Pulgares arriba, programadores educados y geniales.........

Así que, si no arreglas los fallos de los indicadores que vendes durante tres años, aunque lo sepas, ¡no se llama fallo!

Buen enfoque, debe ser muy motivador para que el público compre sus artesanías

 
RusPro #:

INT_MAX = 2147483647


de hecho, ha arrebatado inmediatamente un trozo de memoria INT_MAX* sizeof(double) y luego trabaja como con static

podría haber escrito

double d[INT_MAX]; - que sería lo mismo para ti que

la única diferencia será en el funcionamiento de la función ArraySize() mientras que obtendrá todo el carrete de memoria de una vez

No hay que tomarse todo al pie de la letra, esto es sólo un ejemplo.

¡"Chupa" todo lo que necesites!

 
prostotrader #:

No hay que tomarlo al pie de la letra, es un ejemplo.

"¡Agarra" todo lo que puedas necesitar!

No quise ofender de ninguna manera, lo siento. Es que en este ejemplo se ha cogido el máximo posible:))

 
RusPro #:

resultados en microsegundos.

Ninguna celda de mi tabla mostraba un resultado superior a dos.

 
fxsaber #:

No he conseguido que ninguna celda de la tabla muestre un resultado superior a dos.


¿Cambiaste el código?


Mover todo el código de OnCalculate() a OnInit(), para que sólo se ejecute una vez. No tenía ticks en la salida y OnCalculate sólo se llamaba una vez al inicio

 
RusPro #:

Mover todo el código de OnCalculate() a OnInit() para que sólo se ejecute una vez

Así es como se juega. Curiosamente, todo se vuelve bien en OnCalculate. El compilador parece funcionar bien con las repeticiones.

Para CopyTicks no veo el propósito de utilizar estática.

 
MetaQuotes #:
Corregido, estará en beta hoy.

¿Cuál es la fecha para hoy?)

 
RusPro #:

¿Cuál es la fecha de hoy? :)

Actualice sóloterminal64.exe a b3042. no actualice aúnMetaEditor64.exe.

 
RusPro #:

¿Cuál es la fecha de hoy?)

Las versiones beta se publican a diario en MetaQuotes-Demo, pero no siempre están disponibles al consultar el menú de ayuda, ya que damos prioridad a las pruebas en nuestro servidor de demostración.

 
int m1,min1;
datetime start,end;
MqlTick  arr_ticks[];
MqlDateTime       now1;

void OnTick()
{
   TimeTradeServer(now1);
   if(min1 != now1.min)
   {
      if(m1==0){start=TimeTradeServer();}
      m1+=1;
      if(m1==4)
      {
         end = TimeTradeServer();
         ZeroMemory(arr_ticks);
         int len1 = CopyTicksRange(_Symbol,arr_ticks,COPY_TICKS_INFO,start,end);
         Print(__FUNCTION__," start: ", start," end: ",end," len: ",len1);
         ArrayPrint(arr_ticks);
         m1=0;
      }//old 3 min
   
   
   min1 = now1.min;
   }//New Minute

}//end OnTick

La descripción deCopyTicksRange () indica que el operador cuenta el tiempo en milisegundos,

la idea surgió para recoger en una matriz Ticks en minutos, pero por alguna razón funciona:

Razón de la queja: