Errores, fallos, preguntas - página 1721

 
Alexey Da:

¿Siempre pide un millón de garrapatas? Eso supone 49 gigabytes sólo por matriz. Los ticks en Si-12.16 desde enero hasta ahora son 15789962.

Un pequeño script, basado en el tuyo, cuenta el número de ticks por mes.


y da este resultado.


Así es como se ve en el disco.


No importa cuántos pedir. Incluso para pedir 20000 ticks (veinte mil) el archivo del mes 10 se mide en gigabytes.

El guión, al solicitar 20.000

//+------------------------------------------------------------------+
//|                                                    CopyTicks.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.01"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int  ticks=200000000;  // количество запрашиваемых тиков
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- запросим тики
   int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,0,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,"]");
     }
   Print("Size ",((long)copied*sizeof(MqlTick))>>20, " Mb");
  }
//+------------------------------------------------------------------+

dio un increíble crecimiento de archivos para el mes 10 - el tamaño se midió en Gigabytes.


Con el terminal apagado he borrado el archivo de garrapatas del mes 10 (de un tamaño aproximado de 7,5 GB).

Luego ejecuté tu script

void OnStart()
  {
   MqlTick Ticks[];
   int Amount=CopyTicks(_Symbol,Ticks,COPY_TICKS_ALL,D'2016.01.01'*1000,ulong(100000000));
   MqlDateTime str;
   TimeToStruct((Ticks[0].time_msc-Ticks[0].time_msc%1000)/1000,str);
   char m=(char)str.mon;
   long n=StringToTime(StringFormat("01.%d.2016",m+1))*1000;
   int pos=0;
   for(int i=0;i<Amount;i++)
     {
      if(Ticks[i].time_msc>=n || i==Amount-1)
        {
         PrintFormat("Month %d: %d ticks, %d Mb",m,i-1-pos,(sizeof(MqlTick)*(i-1-pos))>>20);
         m++;
         n=StringToTime(StringFormat("01.%d.2016",m+1))*1000;
         pos=i;
        }
     }
  }

todo ha salido bien, no hay gigantomanía en el tamaño - muy extraño.

Después he vuelto a ejecutar tu script (parámetros de entrada 20000). Todo se estabilizó, pero el archivo seguía creciendo hasta tamaños inimaginables por la mañana. Yo mismo lo vi e hice el experimento.


En cuanto al número de miles de millones de ticks -incluso un billón- el terminal no dará más de lo que tiene.

 
Karputov Vladimir:

Todo se estabilizó, pero el archivo seguía creciendo hasta alcanzar un tamaño increíble por la mañana. Yo mismo lo vi y realicé el experimento.

La diferencia con el momento actual es que entonces el experimento se realizó en un mercado cerrado.
 

Ahora ejecutando el script.

El resultado es

2016.10.05 11:05:03.374 Test (Si-12.16,M5)      (Amount*sizeof(MqlTick))>>20 = 72 Mb Ticks[0].time = 2016.10.03 09:45:02 Ticks[Amount-1].time = 2016.10.05 11:05:55 

Todo funciona como debería. Honor y alabanza para el formato de compresión 72/5 ~15 veces.

Hay que averiguar por qué aparece un bicho tan mierda en un mercado cerrado.

Por ciertoAlexey Da, ¿por qué tu 201610.tkc es más grande que el mío?

 
fxsaber:

Ahora ejecutando el script.

El resultado es

Todo funciona como debería. Honor y alabanza para el formato de compresión 72/5 ~15 veces.

Hay que averiguar por qué aparece un bicho tan malo en un mercado cerrado.

Por ciertoAlexey Da, ¿por qué tienes el 201610.tkc más grande que el mío?

Captura de pantalla de apertura.

En BCS el tamaño es similar al tuyo.

Pero no del mismo tamaño.

¿A qué accesos está conectado? Tengo


 

fxsaber:

Hay que averiguar por qué aparece un bicho tan malo en un mercado cerrado.

Karputov Vladimir yfxsaber

El sistema no ha sido probado y puede comprobar su rendimiento y fiabilidad. Por favor, forme un ticket a servicedesk con la descripción más completa, registros, capturas de pantalla y marca de tiempo.

 
Alexey Da:

Captura de pantalla de la inauguración.

En BCS el tamaño es similar al tuyo.

Pero no del mismo tamaño.

Me he dado cuenta de que 201609.tkc tiene 36Mb en Apertura y 32Mb en BCS. Pero la historia es la misma. ¿Por qué?

Bueno, y aunque haya habido actualizaciones del servidor en septiembre, definitivamente no las hubo en octubre. ¿Por qué la apertura de octubre es mayor?

¿A través de qué accesos está conectado? Lo he hecho.

Todo el tiempo.

authorized on BCS-MetaTrader5 through Access Server #1 (ping: 49.30 ms)
 
Alexey Da:

Karputov Vladimir yfxsaber

Por favor, envíenos una solicitud. Formar un ticket a servicedesk con la descripción más completa, registros, capturas de pantalla y la indicación del tiempo.

Por desgracia, los registros se han perdido. Por lo tanto, no puedo proporcionar ninguna información.

Lo único que recuerdo con seguridad es que en el momento del fallo los primeros ticks que produjo el script fueron 2016.10.04 09:45.

Y cuando todo está funcionando como debe ser - comenzó a dar 2016.10.03 09:45.

Exactamente las únicas líneas que han sobrevivido

NE      0       08:43:43.928    Test (Si-12.16,M1)      (Amount*sizeof(MqlTick))>>20 = 0 Mb Ticks[0].time = 2016.10.04 09:45:04 Ticks[Amount-1].time = 2016.10.04 10:02:38 
JP      0       11:03:37.815    Test (Si-12.16,M5)      (Amount*sizeof(MqlTick))>>20 = 0 Mb Ticks[0].time = 2016.10.03 09:45:02 Ticks[Amount-1].time = 2016.10.03 10:02:18 

Arriba - el bicho aparecía con toda su fuerza.

Más abajo - el bicho fue silenciado.

 
Alexey Da:

Karputov Vladimir yfxsaber

Por favor, envíenos una solicitud. Formar un ticket a servicedesk con la descripción más completa, registros, capturas de pantalla y la indicación del tiempo.

Solicitud interna .../view/1580221
 

En MT4 es muy conveniente que el Navegador->Favoritos muestre los programas junto con su ruta de búsqueda.

Por ejemplo, fxsaber\Test.

En MT5 no es tan conveniente. Por favor, añade.

 
Los comentarios que no son relevantes para este tema se han trasladado a "Pregunta sobre el modo de rellenar los espacios en blanco".