Доступ к большому числу баров из тестера. Как?

 

Сегодня столкнулся с этой проблемой, когда отлаживал советник, подстраивающийся на рынок последнего года на M5.

Пока рынок в пятницу работал, "вживую", все было нормально. Но уже в субботу остается только тестер! В тестере советник работать отказался - мало исторических данных. Отладка показала, что переменная Bars, как и функция iBars в тестере возвращают значение 1000.

Кто подскажет, как этим бороться? Это "фича" тестера или где-то регулируется в настройках?

 
wmlab:Кто подскажет, как этим бороться? Это "фича" тестера или где-то регулируется в настройках?


по видимому здесь нужно побольше баров забить, ну и естественно история должна быть полностью подгружена:

 

Вот мои настройки:

Но эти настройки касаются "живых" графиков! А в графике тестера баров только 1000.

 
wmlab:

Вот мои настройки:

Но эти настройки касаются "живых" графиков! А в графике тестера баров только 1000.

создал эксперт:

extern int N = 25000;
int start(){
   datetime t = Time[N];
   double   C = Close[N];
   Comment("Время N баров назад = ",TimeToStr(t)," , Close[",N,"] = ",DoubleToStr(C,Digits));
return(0);
}

в тестере, в режиме визуализации выводит: Время N баров назад = 1970.01.01 00:00, Close[25000] = 0.00000

тогда нужно самостоятельно из .hst данные брать, вот https://www.mql5.com/en/code/9231

 

Вопрос остается в силе. Набросал тест:

int start()
{
   int ib = iBars(NULL, 0);
   Print ("iBars = ", ib);
   for (int index = 250; index <= 1500; index += 250)
   {
      double cl = iClose(NULL, 0, index);
      Print ("iClose(", index, ") = ", cl);  
   }
   
   return(0);
}

Результат:

Баров в тестере только... 1001

PS. Насколько я понял из документации, это нормальное поведение тестера MT4 - советник получает на старте окно в 1000 баров, которое будет расти по мере моделирования последующих баров. Вопрос - можно это стартовое окно увеличить через настройки? Если нет, придется отказаться в тестере от работы с графиком напрямую и читать котировки из файла, например, csv. Это нежелательно, конечно.

 
wmlab:

Вопрос остается в силе. Набросал тест:

Результат:

Баров в тестере только... 1001

PS. Насколько я понял из документации, это нормальное поведение тестера MT4 - советник получает на старте окно в 1000 баров, которое будет расти по мере моделирования последующих баров. Вопрос - можно это стартовое окно увеличить через настройки? Если нет, придется отказаться в тестере от работы с графиком напрямую и читать котировки из файла, например, csv. Это нежелательно, конечно.

Больше вроде сделать нельзя

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

запускать тестирование с нужного вам момента (условно говоря с 2005 года), а в начале эксперта в OnTick добавить условие, что если дата меньше 2010 года, то выход. Тогда сначала будет накоплена история, а уже потом начнет работу советник

 
wmlab:

Вопрос остается в силе. Набросал тест:

Результат:

Баров в тестере только... 1001

PS. Насколько я понял из документации, это нормальное поведение тестера MT4 - советник получает на старте окно в 1000 баров, которое будет расти по мере моделирования последующих баров. Вопрос - можно это стартовое окно увеличить через настройки? Если нет, придется отказаться в тестере от работы с графиком напрямую и читать котировки из файла, например, csv. Это нежелательно, конечно.


Максимальное число баров при запуске советника в тестере 1001 бар (если конечно есть в истории такое количество). Разработчики сочли что этого достаточно.

При формировании новых баров их количество увеличивается

 
Vinin:


Максимальное число баров при запуске советника в тестере 1001 бар (если конечно есть в истории такое количество). Разработчики сочли что этого достаточно.

При формировании новых баров их количество увеличивается

Вроде картина с тестером прояснилась, спасибо!
 
Vinin:


Максимальное число баров при запуске советника в тестере 1001 бар (если конечно есть в истории такое количество). Разработчики сочли что этого достаточно.

При формировании новых баров их количество увеличивается

1001 бар для начала сойдёт. Тем более, если нужно можно и подсобрать изтории... если она качественная.

Сейчас с сервера Metaquotes грузится история с пропуском с января по август этого года.

 

Если изначально нужно большее количество баров, то можно сделать так:

1. Указать в коде советника дату начала работы.

2. Запустить тестирование с даты, расположенной намного раньше, чем желаемое начало теста (количество нужных баров можно посчитать). Если не требуется визуализация, то все...

3. При визуализации в начале тестирования нажать кнопку "Пропустить до", где указать дату начала тестирования, равную той, которая записана в коде эксперта.