Probando 'CopyTicks' - página 6

 
Karputov Vladimir:
Son diferentes en MetaQuotes-Demo - porque, una vez más, el ejemplo debe ser lo más simple posible. Mis banderas son las mismas en MetaQuotes-Demo hoy.

Resultado de su indicador de hoy, servidor Meta-Quotes demo. Las banderas a través de SymbolInfoTick vienen nulas.

 
zimbabve15:

Resultado de su indicador de hoy, servidor Meta-Quotes demo. Los indicadores a través de SymbolInfoTick vienen con nulos.

Han pasado 10 minutos y no he visto ningún desajuste entre las banderas recibidas a través de CopyTicks y SymbolInfoTick en EURUSD en MetaQoutes-Demo.
 
Karputov Vladimir:
Han pasado 10 minutos y nunca he visto un desajuste entre las banderas de los ticks recibidos vía CopyTicks y SymbolInfoTick en EURUSD en MetaQoutes-Demo.

a los 16,53 desajustes terminó cuando el pico de actividad había pasado

 
Karputov Vladimir:
Han pasado 10 minutos, pero nunca he visto en MetaQoutes-Demo, en EURUSD, que las banderas de los ticks recibidos a través de CopyTicks y SymbolInfoTick no coincidan.

Lo mismo de nuevo en un movimiento fuerte

 
Karputov Vladimir:
Me tomó 10 minutos y no he visto ningún desajuste entre las banderas de los ticks recibidos a través de CopyTicks y SymbolInfoTick en EURUSD en MetaQoutes-Demo.

Propongo el siguiente código para las pruebas:

#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.44"
#property description "Indicator for comparing the three modes of receiving ticks"
#property description "Индикатор для сравнения трёх режимов получения тиков"
#property indicator_plots 0
#property indicator_chart_window
int count=1; //считаем пришедшие тики в OnCalculate
int depth_save_tick=10; // количество тиков для записи
//с приходом каждого тика в OnCalculate будем писать в массив структуру тика через функцию SymbolInfoTick depth_save_tick раз
MqlTick SymbolInfoTick_array_depth_save_tick[10]; 
//с приходом каждого тика в OnCalculate будем получать в массив структуру последнего тика через функцию CopyTicks 
MqlTick CopyTick_array_one_tick[];
//с приходом каждого тика в OnCalculate будем писать в массив структуру тика через функцию CopyTicks depth_save_tick раз
MqlTick  CopyTick_array_depth_save_tick[10]; 
//когда придет depth_save_tick тиков  запишем их одним запросом через CopyTicks
MqlTick CopyTick_array[]; 

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   MqlTick last_tick;
   SymbolInfoTick(Symbol(),last_tick);
   if(count%depth_save_tick==0)
     {
      int copied=CopyTicks(_Symbol,CopyTick_array,COPY_TICKS_ALL,0,depth_save_tick);
      Comment("");
     }
   else
     {
      SymbolInfoTick_array_depth_save_tick[count-1]=last_tick;
      CopyTicks(_Symbol,CopyTick_array_one_tick,COPY_TICKS_ALL,0,1);
      CopyTick_array_depth_save_tick[count-1]=CopyTick_array_one_tick[0];
     }
   count++;
   return(rates_total);
  }

La idea: su indicador comparará los valores recibidos a través de SymbolInfoTick y CopyTicks con una profundidad de 1 tick, es decir, los últimos valores que vienen del servidor. En el indicador, en el procedimientoOnCalculate guardaremos el primer y el segundo valor en arrays con cada llegada de un nuevo tick. La salida contendrá dos matrices de ticks, obtenidos por métodos diferentes. Fijemos la profundidad de grabación en 10. Después de alcanzar esta profundidad hagamos una peticiónCopyTicks para los mismos 10 ticks y comparemos estas tres matrices, y así probar el trabajo de su idea con el ejemplo más simple, y ver cómo funciona CopyTicks con una profundidad de historia de más de 1 tick.

Como parece, tu idea del "ejemplo simple con un archivo" funciona y el indicador muestra correctamente los valores de los ticks a través de SymbolInfoTick y CopyTicks con una profundidad de 1 tick (no he considerado todavía los movimientos fuertes, como escribí ayer, donde se recibieron 0 banderas, esperaremos hasta la apertura de América hoy). Pero en cuanto empezamos a comparar estos historiales, el panorama con las banderas y otros valores en la estructura de la garrapata se vuelve poco claro. La imagen muestra exactamente lo que es. Además, el tiempo en garrapatas obtenido con los tres métodos coincide, es decir, las garrapatas son las mismas, pero tienen diferente relleno. Servidor MetaQuotes-Demo

Y no tuve que esperar a los EE.UU., de nuevo en un fuerte movimiento:

He conseguido escribir los datos de los ticks en el movimiento, están en el archivo adjunto, los ceros vienen a través de SymbolInfoTick se puede ver claramente, puedo dar capturas de pantalla comparar su indicador de tiempo de alarma y los ceros en el archivo. Servidor MetaQuotes-Demo

Archivos adjuntos:
 

¿Cómo termina este thriller?

Lo he leído todo y no hay final.

 
Nemoys:

¿Cómo termina este thriller?

Lo he leído todo y no hay final.

El Servicio de Atención al Cliente respondió:

Buenas tardes. Sus peticiones están en marcha. Responderemos en cada una de ellas cuando el problema se haya resuelto.

Parece que se ha prometido una actualización para principios de marzo, así que estamos esperando.

 

¿El tiempo y la secuencia de los ticks son coherentes con los datos de la bolsa o con los datos del servidor de operaciones del metatrader?

Por ejemplo, ¿podría ser que una determinada oferta en la bolsa naciera en el milisegundo 100 y muriera en el 101, pero en el historial de metatrader esta oferta no aparece o tiene un tiempo de nacimiento/muerte no igual al 100/101?

 
Anton Zverev:

¿Coinciden el tiempo y la secuencia de los ticks con los datos de la bolsa o con los datos del servidor de operaciones del metatrader?

Por ejemplo, ¿puede ser que una determinada oferta en la bolsa haya nacido en el milisegundo 100 y haya muerto en el 101, pero en el historial de metatrader esta oferta no aparezca, o con un tiempo de nacimiento/muerte no igual a 100/101?

Todas las marcas son absolutamente exactas, sin omisiones ni otros errores.

La base de ticks es la misma para todos los procesos de MetaTrader 5: servidores, terminales, probadores, etc.

 
MetaQuotes Software Corp.:

Todas las marcas son absolutamente exactas, sin omisiones ni otros errores.

La base de ticks es la misma para todos los procesos de MetaTrader 5: servidores, terminales, probadores, etc.

Resulta que si descargo el historial de garrapatas del sitio de intercambio y de los cinco, será una coincidencia completa con una precisión de ms?

¿Las garrapatas en el probador son para la Demo de FORTS o para la real?