Как в тестере пересмотреть 2000 дневных баров и значений индикаторов ?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Андрей
497
Андрей  

Добрый день! 

Советник который я тестирую:

void OnTick()
  {
   string            symbol = "EURUSD";
   ENUM_TIMEFRAMES   timeframe = PERIOD_D1;

   int seeBars = fmin(Bars(symbol,timeframe),2000);
   MqlRates ratesHist[];
   ArraySetAsSeries(ratesHist,true);
   int copiedH=CopyRates(symbol, timeframe, 0, seeBars, ratesHist);
   Print("Размер массива: "+IntegerToString(ArraySize(ratesHist))+", с "+TimeToString(ratesHist[ArraySize(ratesHist)-1].time,TIME_DATE|TIME_MINUTES)+" до "+TimeToString(ratesHist[0].time,TIME_DATE|TIME_MINUTES));

  }


В тестере  размер массива более 510 баров не бывает. Вся история есть.

Если советник установить на график в режиме реального времени , то получаю все бары и вижу правильное сообщение:   Размер массива: 2000, с 2012.04.20 00:00 до 2020.01.06 00:00

Это какие то технические ограничения ? Есть варианты решения данной задачи ?

Vladimir Karputov
Модератор
181890
Vladimir Karputov  
Ответ есть здесь: 

Мультивалютное тестирование #

Тестер позволяет проводить проверку на истории стратегий, торгующих на нескольких инструментах. Такие  эксперты условно называют мультивалютными, так как изначально в предыдущих платформах тестирование проводилось только для одного инструмента. В тестере же терминала MetaTrader 5 можно моделировать торговлю по всем доступным инструментам.

История по используемым инструментам закачивается тестером из  клиентского терминала (не с торгового сервера!) автоматически при первом обращении к данному инструменту.

Агент тестирования закачивает только недостающую историю с небольшим запасом, чтобы обеспечить необходимые данные на истории для расчета индикаторов на момент начала тестирования. Минимальный объем истории при скачивании с торгового сервера для таймфреймов D1 и меньше составляет один год. Таким образом, если запускается тестирование на интервале  2010.11.01-2010.12.01 (тестирование на интервале в один месяц)  с периодом M15 (каждый бар равен 15 минутам), то у терминала будет запрошена история по инструменту за весь 2010 год. Для таймфреймов Weekly будет запрошена история в 100 баров, что составляет примерно два года (в году 52 недели). Для тестирования на месячном таймфрейме Monthly агент запросит историю за 8 лет (12 месяцев * 8 лет = 96 месяцев).

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

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

Перед началом тестирования мультивалютного эксперта необходимо выбрать требуемые для тестирования инструменты в "Обзоре рынка" терминала и  подкачать данные на нужную глубину. При первом же обращении к "чужому" символу будет автоматически произведена синхронизация по этому символу между агентом тестирования и клиентским терминалом. "Чужой" символ - это символ, отличающийся от того, на котором запущено тестирование.


Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха, ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий