Historia de la garrapata - página 18

 
Alexander:

¿Se está reproduciendo ahora?

No lo tenemos, lo intentamos según su descripción.

Después del "tratamiento":

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Historia de las garrapatas

Karputov Vladimir, 2015.10.21 09:24

...

Ahora estoy probando la "cura": voy a borrar completamente los historiales de las carpetas "history" y "ticks" del servidor MetaQuotes-Demo.


El historial de profundidad de 500 ticks se da casi instantáneamente, y el historial general de barras se intercambia. El tamaño de los archivos de garrapatas es de 200-400 Kb para 10 meses.

 

Y quería conseguir garrapatas en el probador, da igual lo que sea :)

void OnTick()
  {
//---
 MqlTick ExTicks[];
 CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,D'2015.10.16 23:59',1);

 

Vea cómo funcionan los ticks en la compilación 1194, donde se han añadido milisegundos y banderas.

En el probador, los ticks no se dan hasta que completemos la integración completa de los ticks en el probador de estrategias de negociación en la próxima versión.

 
MetaTrader 5 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Home (X86 based PC), IE 11.00, UAC, Intel Atom  Z3740 @ 1.33GHz, RAM: 218 / 1931 Mb, HDD: 20039 / 50235 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU (ping: 139.57 ms)

Probar la localización de ticks cuando la conexión a Internet está desconectada. El indicador de prueba a continuación:

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version    "1.1"
#property indicator_chart_window
#property indicator_plots 0
//--- input parameter
input int   InpShowTicks=50;    // клубина истории тиков
//--- parameters
MqlTick     arr_mql_tick[];      // массив структур хранящий тики
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   Print(__FUNCTION__);
   Comment("");
   ResetLastError();
//--- новый размер массива структур тиков
   if(ArrayResize(arr_mql_tick,InpShowTicks)==-1)
     {
      Print("Error OnInit #1",GetLastError());
      return(INIT_FAILED);
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   static int count;
   string text  =IntegerToString(count)+"; ";
   int copied=CopyTicks(_Symbol,arr_mql_tick,COPY_TICKS_INFO,0,InpShowTicks);
   text+="Запрошено "+IntegerToString(InpShowTicks)+" тиков, скачано "+IntegerToString(copied);
   Comment(text);
   count++;
   return(rates_total);
  }
//+------------------------------------------------------------------+

El algoritmo es el siguiente:

Poner en marcha el indicador. Espere hasta que el número de ticks descargados sea igual a la cantidad solicitada.

Desconéctese de Internet (el terminal debe emitir un pitido). Al mismo tiempo:

  1. prueba #1, "cuenta" =40,
  2. prueba #2, "cuenta" =47,
  3. prueba #3, "cuenta" =12.

Encienda el internet.

El indicador intenta descargar ticks, con una solicitud de 50, pero se descargan 21-23. Esto dura hasta que el "recuento" es mayor que 100.

La repetibilidad es buena, comprobada más de tres veces.

Archivos adjuntos:
test.mq5  3 kb
 
Karputov Vladimir:

Probar la paginación de garrapatas cuando se interrumpe la conexión a Internet. El indicador probado es el siguiente:


Tenga en cuenta que la solicitud de ticks en el indicador funciona de forma ligeramente diferente a la solicitud de ticks en el Asesor Experto.

El indicador no tiene derecho a frenar, por lo que el indicador recibe el número de ticks disponibles para la solicitud de una vez.

El Asesor Experto trabaja en su propio flujo, por lo que puede esperar un poco. Para el Asesor Experto se hacen varios intentos de intercambio de ticks por solicitud.

 
Slawa:

Tenga en cuenta que las solicitudes de ticks en un indicador funcionan de forma ligeramente diferente a las solicitudes de ticks en un Asesor Experto.

El indicador no tiene derecho a frenar, por lo que el indicador recibe el número de ticks disponibles para la solicitud de una vez.

El Asesor Experto está trabajando en su propio hilo, así que puede esperar un poco. Se hacen varios intentos para que el Asesor Experto intercambie ticks por consulta.

Esto es comprensible. Pero, ¿cuánto tiempo tarda en acumularse? En el ejemplo anterior, la petición es de 50 ticks. Si no hay ticks que cargar inmediatamente, tardará 30 segundos.

Se pone peor. Doy una solicitud de 500 ticks - los ticks se reponen casi al instante (creo que es sólo porque solicité esta cantidad antes) y luego doy una solicitud de 5000 ticks - ya han pasado cuatro minutos, pero sólo se han cargado 2000 ticks de 5000 y la cantidad no aumenta.

 
Renat Fatkhullin:

Vea cómo funcionan los ticks en la compilación 1194, donde se han añadido milisegundos y banderas.

En el probador, los ticks no se dan hasta que completemos la integración completa de los ticks en el probador de estrategias de negociación en la próxima versión.

¿Habrá cambios similares para MT4?
 

Lo comprobé en otro ordenador por la noche:

MetaTrader 5 x64 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 1129 / 3981 Mb, HDD: 75614 / 234136 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU2 (ping: 59.54 ms)

Precargado 200000000 ticks con un script - ticks cargados en unos 6 segundos. No pude ver ninguna diferencia:

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

Historia de las garrapatas

Karputov Vladimir, 2015.10.22 15:07

... Doy una petición de 500 ticks - los ticks se cargan casi al instante (creo que se debe sólo al hecho de haber pedido previamente tal número), y luego doy una petición de 5000 - han pasado cuatro minutos, y se cargan algo menos de 2000 de 5000 y este número no crece.

 
No en MT4, lamentablemente.
 
MetaTrader 5 build 1196 started (MetaQuotes Software Corp.)
authorized on MetaQuotes-Demo through Access Point EU1 (ping: 296.87 ms)

El campo flags de la estructura MqlTicks suele contener valores de "24" (modo de visualización "todos los ticks"):

1

- ¿qué significa este valor?

Archivos adjuntos:
Razón de la queja: