¿Cuándo sale la nueva versión de MT5 y dónde se puede encontrar lo que se espera de ella? - página 26

 

¿Existe un programa informático para determinar la profundidad del historial de ticking?

Probé esto:

void OnStart()
  {
MqlTick ExTicks[];  
datetime tm=StringToTime("1971.01.01 00:00:00");
//--- вывод результата
ulong m=tm*1000; 
int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,m);
Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
 
  }

todo el tiempo obtiene 2.000 ticks. La ayuda dice que si no se especifica el tiempo, no se transmiten más de 2000 garrapatas. El tiempo se especifica en milisegundos y los segundos se multiplican por 1000.

Además, la ayuda especifica que se trata de ticks para la sesión actual. Entonces, ¿resulta que no se puede acceder a los datos históricos?

 
forexman77:

¿Existe un programa informático para determinar la profundidad del historial de ticking?

Probé esto:

todo el tiempo obtiene 2.000 ticks. La ayuda dice que si no se especifica el tiempo, no se transmiten más de 2000 garrapatas. El tiempo se especifica en milisegundos y los segundos se multiplican por 1000.

Además, la ayuda especifica que se trata de ticks para la sesión actual. Entonces, ¿resulta que no se puede acceder a los datos históricos?

¿Quieres conseguir todas las garrapatas? :)

Primero, comprueba si tu ordenador puede soportar tantos ticks (si tu ordenador se quema, no es culpa mía):

//+------------------------------------------------------------------+
//|                                                CopyTicks_1_02.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.031"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int  ticks=200000000000;  // количество запрашиваемых тиков
input datetime start=D'1971.01.01 23:59'; // с какой даты запрашивать тики
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- запросим тики
   int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,(ulong)start*1000,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
   if(copied>1)
     {
      Print("Тик: ",ExTicks[0].time," bid: ",ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
      Print("Тик: ",ExTicks[copied-1].time," bid: ",ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");

      //datetime Start =D'2015.10.16 23:59';   // время наступления 2015 года
      //datetime End   =D'2015.10.19 00:02';   // время наступления 2015 года
      //for(int i=0;i<copied-1;i++)
      //   if(ExTicks[i].time>Start && ExTicks[i].time<End)
      //      Print("Тик: ",ExTicks[i].time," bid: ",ExTicks[i].bid," ask: ",ExTicks[i].ask," last: ",ExTicks[i].last," [i]");
     }
   Print("Size ",((long)copied*sizeof(MqlTick))>>20," Mb");
  }
//+------------------------------------------------------------------+
Archivos adjuntos:
 
Karputov Vladimir:

¿Quieres conseguir todos los tics? :)

En primer lugar, comprueba si tu ordenador puede soportar tantos ticks (si tu ordenador se quema, no es culpa mía):

Sí, necesito saber a partir de qué fecha hay datos (es decir, a partir de qué fecha se puede hacer una prueba con ticks reales).

¿Y cuánto no es un problema para que el ordenador lo consulte? Agotarse es una exageración, ¿más bien congelarse?

 
forexman77:

Sí, necesito saber a partir de qué fecha hay datos (es decir, a partir de qué fecha se puede ejecutar la prueba en ticks reales).

¿Y cuánto no es un problema para que el ordenador lo consulte? Debes estar exagerando, ¿es más probable que se congele?

En lugar de "20000000000000" ponga "20000" y una fecha, cualquier fecha en 1971. Dicho esto, es muy probable que tengas que ejecutar el script más de una vez. El caso es que la primera petición inicializará todo el historial descargado (porque ordenaste el historial desde 1971), y si el script no responde durante mucho tiempo, dará los datos que estén disponibles, pero la descarga irá a más. Por lo tanto, la segunda solicitud puede mostrar una historia más profunda.
 
forexman77:

¿Existe un programa informático para determinar la profundidad del historial de ticking?

Probé esto:

todo el tiempo obtiene 2.000 ticks. La ayuda dice que si no se especifica el tiempo, no se transmiten más de 2000 ticks. El tiempo se especifica en milisegundos y los segundos se multiplican por 1000.

Además, la ayuda especifica que se trata de ticks para la sesión actual. Entonces, ¿resulta que no se puede acceder a los datos históricos?

No se pueden obtener todos los ticks del símbolo, si son más de INT_MAX, porque el valor de retorno

de la función CopyTicks es un número entero. Por lo tanto, hay que conseguirlos por partes.

 
prostotrader:

No se pueden obtener todos los ticks por carácter si son mayores que INT_MAX, porque el valor de retorno

de la función CopyTicks es un número entero. Por lo tanto, hay que conseguirlos por partes.

Sin embargo, es posible obtener la fecha de inicio de los ticks solicitando sólo 20000 (veinte mil) ticks - lo principal es especificar la fecha de inicio, que garantiza, que en esta fecha no había todavía ticks y 1971 es el mejor ajuste para ello.
 
Karputov Vladimir:
Sin embargo, es posible averiguar la fecha de inicio de los ticks solicitando sólo 20000 (veinte mil) ticks - lo principal es especificar la fecha de inicio, lo que garantiza que en esa fecha no había todavía ticks, y 1971 es la mejor manera de hacerlo.

Solicitado un montón de datos, se ha empezado a frenar muy fuerte:

2016.08.21 22:24:03.918 CopyTicks (EURUSD,H1)   Size 2826 Mb
2016.08.21 22:24:03.918 CopyTicks (EURUSD,H1)   Тик: 2016.05.25 16:54:25 bid: 1.11497 ask: 1.11505 last: 0.0 [56999999]
2016.08.21 22:24:03.918 CopyTicks (EURUSD,H1)   Тик: 2016.01.13 09:45:44 bid: 1.08206 ask: 1.08236 last: 0.0 [0]
2016.08.21 22:24:03.903 CopyTicks (EURUSD,H1)   Получено тиков: 57000000 код ошибки: 0

Para mi tarea, 100 ticks son suficientes. ¡Gracias de todos modos!

2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Size 0 Mb
2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Тик: 2016.01.13 09:46:01 bid: 1.08206 ask: 1.08236 last: 1.08215 [99]
2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Тик: 2016.01.13 09:45:44 bid: 1.08206 ask: 1.08236 last: 0.0 [0]
2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Получено тиков: 100 код ошибки: 0
 
Renat Fatkhullin:
Sí, pronto estarán disponibles los gráficos personalizados y las fuentes de datos propias.

Hola Renat, ¿hay alguna actualización sobre estas características? (lo siento si está en otro sitio no lo he encontrado).

Hola Renat, ¿hay alguna actualización sobre estas características? (lo siento si está en otro sitio no lo he encontrado).

Razón de la queja: