Мультивалютный тестинг - страница 2

 
Interesting:

По поводу данного вопроса.

1. Разработчикам - С каких пор пор использование SymbolName(i,false) формирует MarketWatch? Когда-то уже ругался по этому поводу, придется снова!!!

С какого это паровоза тестер решил что при обращении SymbolName нужно символ выставлять в обзор? Я еще вообще-то не решил хочу или нет данный символ выставить в обзор.

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

Как минимум использование SymbolName обзор рынка (MarketWatch) затрагивать не должно.

Результат можно на скрине выше посмотреть.

2. По поводу SymbolSelect

3. По поводу примера - Блок инициализации

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

4. По поводу примера - таймер

Зачем обрабатывать символы которые не выбраны в MarketWatch? немного переделанный пример обработчика таймера выглядит так (можно добавить дополнительных проверок).

1, 2 - Полностью поддерживаю, явно есть баги!

3. -  Вот именно, что на момент инициализации не ясно какие именно символы нужны, это станет ясно в процессе выполнения.

4. - Собственно, так как код был сделан, всего лишь для того чтобы пощупать как же этот замечательный MT5 производит мультивалютное тестирование и получения временных рядов по всем доступным инструментам, то в инициализации выбирались все символы. Точнее сначала они вовсе не выбирались, так как тут:  https://www.mql5.com/ru/articles/239 сказано, что достаточно один раз обратиться к символу за получением инфы и все само заработает. Но так как не заработало, то пришлось их сначала всех повыбирать. Да, согласен, что код не совсем красив и идеологически верен, но цель его была лишь получить котировки по всем парам... А все встало в самом начале!

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • 2011.03.28
  • MetaQuotes Software Corp.
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 

Мне помог вызов CopyRates по каждому используемому инструменту в onInit. Иначе по ряду инструментов некоторое время были ошибки "no prices for symbol ......"

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyRates - Документация по MQL5
 
Ashes:

Мне помог вызов CopyRates по каждому используемому инструменту в onInit. Иначе по ряду инструментов некоторое время были ошибки "no prices for symbol ......"

Попробовал...

int OnInit()
  {
//--- create timer
   EventSetTimer(60);
   for(int i=0;i<SymbolsTotal(false);i++)
   {
   string name = SymbolName(i,false);
   MqlRates  rates_array[];   
   CopyRates(name,PERIOD_M1,StringToTime("2000.01.01 00:00"),StringToTime("2011.01.01 00:00"),rates_array);
   SymbolSelect(name,true);
   }
      
//---
   return(0);
  }

Может, я конечно, время не правильно определил...

Теперь котировки появились в Market Watch, но на один момент времени...  Т.е. инструмент на котором ведется тестирование - меняет котировки, а все остальные замерли.

 

 
kirdk:

Попробовал...

Может, я конечно, время не правильно определил...

Теперь котировки появились в Market Watch, но на один момент времени...  Т.е. инструмент на котором ведется тестирование - меняет котировки, а все остальные замерли.

 

Тестер не возбуждает подкачку данных по "чужим" инструментам. Терминал отдаёт тестеру не больше того, что у него есть в данный момент.

Перед тестированием подкачайте данные по нужным Вам инструментам самостоятельно 

 
stringo:

Тестер не возбуждает подкачку данных по "чужим" инструментам. Терминал отдаёт тестеру не больше того, что у него есть в данный момент.

Перед тестированием подкачайте данные по нужным Вам инструментам самостоятельно 

Что значит "подкачайте данные по нужным Вам инструментам самостоятельно",?

Вы уверяли (ваша команда), что терминал сам закачает всю нужную историю. 

Значит, самим истории править - это нормально, ничего закачивать не надо.

Или фигвам. 

 
her.human:

Что значит "подкачайте данные по нужным Вам инструментам самостоятельно",?

Вы уверяли (ваша команда), что терминал сам закачает всю нужную историю. 

Значит, самим истории править - это нормально, ничего закачивать не надо.

Или фигвам. 

Запустите Вашего эксперта в терминале, и терминал сам закачает нужные данные с сервера.

Пожалуйста, не путайте тестер и терминал - это две отдельные программы. Повторяю: тестер (в отличие от терминала) не вобуждает подкачку истории по "чужим" инструментам.

 
stringo:

Запустите Вашего эксперта в терминале, и терминал сам закачает нужные данные с сервера.

Пожалуйста, не путайте тестер и терминал. 

А как же это https://www.mql5.com/ru/articles/239 ??? Где русским по белому сказано:

"Терминал загружает историю с торгового сервера только один раз при первом обращении агента к терминалу за историей для тестируемого символа. История загружается в упакованном виде, чтобы сократить трафик." 

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • 2011.03.28
  • MetaQuotes Software Corp.
  • www.mql5.com
В чем различия между тремя режимами тестирования в MetaTrader 5 и на что обратить внимание? Как происходит тестирование эксперта, торгующего одновременно на нескольких инструментах? Когда и как вычисляются значения индикаторов при тестировании и как обрабатываются события? Как синхронизировать бары с разных инструментов при тестировании в режиме "Только цены открытия"? Статья призвана дать ответы на эти и многие другие вопросы.
 
kirdk:
А как же это https://www.mql5.com/ru/articles/239 ???
А что не так? Процитируйте пожалуйста
 
stringo:
А что не так? Процитируйте пожалуйста

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

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

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

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

Тестерные агенты в свою очередь получают историю от терминала и также в упакованном виде. При повторном тестировании загрузка тестером истории из терминала уже не происходит, потому что данные есть от предыдущего запуска тестера.

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

 

В частности, в это: "История по используемым инструментам закачивается тестером автоматически при первом обращении к данному инструменту" 

 
kirdk:

А как же это https://www.mql5.com/ru/articles/239 ??? Где русским по белому сказано:

"Терминал загружает историю с торгового сервера только один раз при первом обращении агента к терминалу за историей для тестируемого символа. История загружается в упакованном виде, чтобы сократить трафик." 

Так я и повторяю: тестер, в отличие от терминала, не возбуждает подкачку истории ПО "ЧУЖИМ" ИНСТРУМЕНТАМ. Тестируемый (тот самый, который указан в настройках тестирования) инструмент загружается, что подтверждает представленная Вами цитата
Причина обращения: