Errores, fallos, preguntas - página 1720

 
Karputov Vladimir:

El error está aquí (espacio entre comillas):


Es cierto. Ya funciona. Gracias. :-)
 
Elarchivo Bases\BCS-MetaTrader5\ticks\Si-12.16\201610.tkctiene un tamaño de 6 Gb. Este no debería ser el caso.
 
fxsaber:
El archivo Bases\BCS-MetaTrader5\ticks\Si-12.16\201610.tkc tiene un tamaño de 6 Gb. Este no debería ser el caso.

Probablemente en el mes 10 la estructura de los datos de los ticks ha cambiado (quizás se ha introducido mucha información adicional). O tal vez sólo sea que el símbolo se ha convertido en una actividad comercial.

En este momento, al solicitar con un script de este tipo:

//+------------------------------------------------------------------+
//|                                                    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");
  }
//+------------------------------------------------------------------+

en el servidor "Open-Broker" el tamaño de los ticks (y en el mes 10 no es definitivo, los ticks siguen cargándose)

Tamaño de la base de datos de garrapatas

2016.10.05 07:34:05.886 Terminal        MetaTrader 5 x64 build 1434 started (MetaQuotes Software Corp.)
2016.10.05 07:34:05.888 Terminal        Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 3800 / 8077 Mb, HDD: 57955 / 233310 Mb, GMT+02:00
2016.10.05 07:34:05.888 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
Archivos adjuntos:
CopyTicks.mq5  2 kb
 
Karputov Vladimir:

Probablemente en el mes 10 la estructura de los datos de los ticks ha cambiado (quizás se ha introducido mucha información adicional). O tal vez es sólo que el símbolo se ha convertido en un comercio activo.Ahora, cuando se le pregunta por tal secuencia de comandos:

en el servidor "Open-Broker" el tamaño de los ticks (y en el mes 10 no es definitivo, los ticks siguen cargándose)

Guión

#define  TOSTRING(A) #A + " = " + (string)(A) + " "

void OnStart()
{
  MqlTick Ticks[];
  
  const int Amount = CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, D'2016.10.01' * 1000, 1000000000);
  
  if (Amount > 0)
    Print(TOSTRING((Amount * sizeof(MqlTick)) >> 20) + "Mb " + TOSTRING(Ticks[0].time) + TOSTRING(Ticks[Amount - 1].time));
}

Resultado (ejecutándolo en otros símbolos da el mismo resultado) en un terminal vacío (un gráfico sin Asesores Expertos e indicadores)

2016.10.05 08:16:56.824 Scripts script Test (Si-12.16,M1) removed
2016.10.05 08:16:56.821 MemoryException 52000000072 bytes not available
2016.10.05 08:16:56.816 Scripts script Test (Si-12.16,M1) loaded successfully
2016.10.05 08:10:10.408 Terminal        RAM: 81 Mb reserved, 491 Mb committed

 
Karputov Vladimir:

Probablemente en el mes 10 la estructura de los datos de los ticks ha cambiado (quizás se ha introducido mucha información adicional). O tal vez sólo sea que el símbolo se ha convertido en una actividad comercial.

En este momento, al consultar con un script de este tipo:

en el servidor "Open-Broker" el tamaño de los ticks (y en el mes 10 no es definitivo, los ticks siguen cargándose)

No tuve suficiente paciencia - en el tamaño de archivo 201610.tkc de 7,5 Gb decidió interrumpir la descarga de garrapatas.
 

Si se trata de un archivo, habrá un error incluso después de reiniciar.

Si se solicitan 1000 ticks a partir del 1 de octubre, el archivo tkc correspondiente seguirá creciendo después de cada arranque. En resumen, el bicho está jodido.

 
Karputov Vladimir:
No tuve suficiente paciencia - con un tamaño de archivo 201610.tkc de 7,5 Gb decidí interrumpir la descarga de ticks.

¡Bicho! Los indicadores muestran toda la información de octubre. Y el archivo crece sin cesar.

Necesito una actualización crítica de la construcción, porque es imposible trabajar - el disco está obstruido, por no hablar del tráfico.

 

hola a todos

¿Quién se ha encontrado con el siguiente extraño error?

mi Asesor Experto está tratando de abrir un comercio enWDOX16 por ejemplo, obtiene respuesta = 0

al mismo tiempo escribe que la operación se ha realizado con éxito:Resultado = 0 símbolo WDOX16 volumen 1.0 acción 1 tp 3264.5 sl 3239.5 tipo 0 precio 3250.0 La operación se ha realizado con éxito

Pero todavía no se abre nada en ninguna parte. ?


 
fxsaber:

Guión

Resultado (ejecutándolo en otros símbolos da el mismo resultado) en un terminal vacío (un gráfico sin EAs e indicadores)

¿Siempre pide un millón de garrapatas? Son 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.

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;
        }
     }
  }


y da este resultado.

2016.10.05 10:31:51.249 CalcTick (Si-12.16,M1)  Month 1: 122413 ticks, 6 Mb
2016.10.05 10:31:51.249 CalcTick (Si-12.16,M1)  Month 2: 78627 ticks, 3 Mb
2016.10.05 10:31:51.252 CalcTick (Si-12.16,M1)  Month 3: 758652 ticks, 37 Mb
2016.10.05 10:31:51.253 CalcTick (Si-12.16,M1)  Month 4: 388578 ticks, 19 Mb
2016.10.05 10:31:51.254 CalcTick (Si-12.16,M1)  Month 5: 181053 ticks, 8 Mb
2016.10.05 10:31:51.255 CalcTick (Si-12.16,M1)  Month 6: 408080 ticks, 20 Mb
2016.10.05 10:31:51.257 CalcTick (Si-12.16,M1)  Month 7: 458366 ticks, 22 Mb
2016.10.05 10:31:51.260 CalcTick (Si-12.16,M1)  Month 8: 867396 ticks, 43 Mb
2016.10.05 10:31:51.297 CalcTick (Si-12.16,M1)  Month 9: 10973162 ticks, 544 Mb
2016.10.05 10:31:51.301 CalcTick (Si-12.16,M1)  Month 10: 1555625 ticks, 77 Mb


Así es como se ve en el disco


 
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.

No, sólo en este caso. Si estoy solicitando un trillón de ticks, y en realidad son menos de 20 millones, ¿por qué intentar asignar memoria para un trillón?

Un billón es con un margen. Pero eso no dice ni un poco que pida tanto. Sólo dice "dame TODOS los ticks desde la fecha especificada".

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.

Tú haces experimentos en Otkritie, yo tengo BCS. Tu captura de pantalla no tiene nada en común con la mía y con la de Karputov (misma Apertura) - ambas tienen mucho más octubre-tkc. Y cada vez es más grande.