Ошибки, баги, вопросы - страница 1721

 
Alexey Da:

А вы всегда милилард тиков запрашиваете? Это ж 49 гигабайт только на массив. Тики по Si-12.16  с января месяца до сего момента 15789962 штук.

Небольшой скрипт, на основе вашего, считает кол-во тиков по месяцам.


и дает такой результат


Вот как это выглядит на диске


Без разницы сколько заказывать. Даже при заказе 20000 тиков (двадцать тысяч) файл за 10 месяц измеряется в гигибайтах.

Скрипт, при запросе 20000

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

 

давал неимоверный рост файла за 10 месяц - размер измерялся в Гигабайтах.


При выключенном терминале я удадил тиковый файл за 10 месяц (размер примерно 7,5 Гб). 

Затем я  запустил Ваш скрипт

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

всё оказалось в норме, гигантомании в размерах не отмечено - очень странно.

потом снова свой скрипт (во входных параметрах 20000). Всё стабилизировалось - но файл ещё утром разрастался до неимоверных размеров! Сам видел и проводил эксперимент! 


По поводу сколько миллиардов тиков запрашывать - хоть триллион - больше того, что есть, терминал не выдаст.

 
Karputov Vladimir:

Всё стабилизировалось - но файл ещё утром разрастался до неимоверных размеров! Сам видел и проводил эксперимент!

Разница с текущим моментом в том, что тогда эксперимент проводился при закрытом рынке.
 

Сейчас запустил скрипт.

Результат

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 

Все работает, как надо. Честь и хвала за формат сжатия в 72/5 ~ 15 раз.

Надо разбираться, почему на закрытом рынке такой поганый баг появляется.

Кстати, Alexey Da, почему у Вас 201610.tkc больше, чем у меня? 

 
fxsaber:

Сейчас запустил скрипт.

Результат

Все работает, как надо. Честь и хвала за формат сжатия в 72/5 ~ 15 раз.

Надо разбираться, почему на закрытом рынке такой поганый баг появляется.

Кстати, Alexey Da, почему у Вас 201610.tkc больше, чем у меня? 

Скрин с открытия.

На BCS размер сходен с вашим.

Но не один в один.

В через какой аксесс подключены? У меня


 

fxsaber:

Надо разбираться, почему на закрытом рынке такой поганый баг появляется.

Karputov Vladimir и fxsaber

Огромная просьба. Сформируйте тикет в сервисдеск с наиболее полным описанием, логами, скриншотами и указанием времени.

 
Alexey Da:

Скрин с открытия.

На BCS размер сходен с вашим.

Но не один в один.

Заметил, что 201609.tkc в Открытии 36Мб, а в БКС - 32. Но история же одна и та же! Почему так?

Ну и даже если в сентябре были обновления сервера, то в октябре - точно нет. Почему октябрьский Открытие больше?

В через какой аксесс подключены? У меня 

Все время

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

Karputov Vladimir и fxsaber

Огромная просьба. Сформируйте тикет в сервисдеск с наиболее полным описанием, логами, скриншотами и указанием времени.

К сожалению, логи потер. Поэтому предоставить инфу не могу.

Единственное, точно помню, что во время бага первые тики, что выдавал скрипт были 2016.10.04 09:45.

А когда все заработало, как надо, - стал выдавать 2016.10.03 09:45.

Как раз единственные строчки, что сохранились

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 

Верхняя - баг проявлялся вовсю.

Нижняя - баг затихорился. 

 
Alexey Da:

Karputov Vladimir и fxsaber

Огромная просьба. Сформируйте тикет в сервисдеск с наиболее полным описанием, логами, скриншотами и указанием времени.

Внутренняя заявка .../view/1580221
 

В MT4 очень удобно, что в Навигатор->Избранное показываются программы вместе с их путем нахождения.

Например, fxsaber\Test.

А вот в MT5 такого удобства нет. Прошу добавить. 

 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопрос по режиму заполнения".
Причина обращения: