Close, Time и iCLose - доступ заканчивается на 32768-м баре, как получить всю историю цен?

 
Основная задача - нужно получить доступ к истории цен, закачанных по нужным валютам в MT4 с 04.01.1999 г.
Для этого я беру в цикле варианты Close[i] и iClose(NULL, 0, i), где i - целое (int i).

extern int CalcBars = 100000;
 
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
{
   double dClose;
 
   for (int i = 0; i < CalcBars; i++)
   {
      dClose = iClose(NULL, 0, i);
 
      if (dClose <= 0)
      {
         Print("На ", i, "-м баре значение Close <= 0; = ", dClose, "; Time = ", TimeToStr(iTime(NULL, 0, i)));
         //continue;
         return (0);
      }
      
      Print("i = ", i, "; Close = ", dClose, "; Time = ", TimeToStr(iTime(NULL, 0, i)));
   }
   return(0);
}
//+------------------------------------------------------------------+
В итоге, не смотря на то, что int описан в справке как "длинное целое число размером 4 байта", доступ к данным в Close, Time и iClose прерывается на 32768-м баре, т.е. двухбайтовым знаковым индексом. Значения из Close/iClose на более ранних индексах возвращаются равные 0, а время равно 1970.01.01 00:00.

Вопрос к разработчикам по первоначальной задаче - как программно получить доступ ко всей истории цен, закачанных в архиве котировок?
Как вариант можно, конечно, сделать экспорт в .csv файл и разбирать его на "запчасти", но здесь нужно руками делать экспорт по нужной валюте всех таймфреймов. Возможно ли решить задачу без экспорта котировок во внешние файлы?
 
Опять же, полистал историю поиска, и в топике 'О максимальном количестве баров в истории и в окне' нашёл такой ответ:

stringo

10.04.2006 12:09

Ограничение есть. Это - максимальное положительное целое число, которое помещается в 31 двоичный разряд.
-----

Но честно говоря, 32768 - это не предел числа в 31 бит.
В итоге хотелось бы знать, как перебрать в MQL коде всю историю закачанных цен нужной валютной пары.

 
Keep it simple

В настройках терминала: Tools-> Options-> Charts-> Max bars in chart= CalcBars

Удачи
 
Нашёл в настройках программы, закладка Графики, там можно поставить последний параметр Макс. баров в окне хоть в 570000, тогда все котировки нормально отдаются через iClose.

 
Digger писал (а):
Keep it simple

В настройках терминала: Tools-> Options-> Charts-> Max bars in chart= CalcBars

Удачи


Спасибо :)