Мультивалютное тестирование. А нужна там такая синхронизация истории? - страница 2

 
Interesting:

В режиме тестирования на терминале Альпари в лог попали следующие строчки

 


Как я понимаю это тестер при переборе всех валютных пар проверил синхронизированы они или нет.

Я конечно рад что все синхронизировано, но вот мне кажется такое рвение терминала излишним.


По логике вещей я не активировал эти символы в MarketWatch, не интересовался тем синхронно все или нет, и даже не в курсе буду я или нет ими торговать.

Так зачем мне знать что синхронизированы скажем CFD и Futures, если мне нужны только Forex?


 

Вы сами запросили информацию по этим символам. Вот тестер и обратился за этой информацией к клиентскому терминалу.

Что такое "по логике вещей я не активировал эти символы"? Вы запросили информацию. И получили её.

Мы по максимуму ведём логи, чтобы можно было проще решать возникающие проблемы 

 
Valmars:
А версия терминала какая ? В 281 такого уже не наблюдаю.

Да Билд 281.


Перебор символов осуществляется как и было сказано ранее, вот так:

  //Формируем список валютных пар торгуемых в ДЦ
  for(int f=0;f<SymbolsTotal(false);f++)
  //Производим перебор валютных символов, которые торгуются в ДЦ
  {
  //Название символа
  SymbolName = SymbolName(f,false);
  //Проверяем является ли символ валютной парой, если да запишем ее в массив
  .......................................................................
  .......................................................................
  .......................................................................
  }


 
stringo:

Вы сами запросили информацию по этим символам. Вот тестер и обратился за этой информацией к клиентскому терминалу.

Что такое "по логике вещей я не активировал эти символы"? Вы запросили информацию. И получили её.

Мы по максимуму ведём логи, чтобы можно было проще решать возникающие проблемы 

Возможно я не до конца понял (или понял по своему) суть изменений сделанных в 281 релизе.


Выскажу свою позицию, возможно ошибочную:

Использование строки SymbolName = SymbolName(f,false); я не склонен считать запросом какой либо информации по символу. Также я не склонен считать необходимостью выполнения синхронизации истории по символу при помощи вот этих вещей - SymbolSelect (если параметром ему служит false), SymbolInfoDouble, SymbolInfoInteger, SymbolInfoString.

При использовании SymbolSelect (если параметром ему служит true) или других вещей входящих в группу "Функции для получения информации о состоянии рынка" не перечисленных выше синхронизацию следует проводить в принудительном порядке.

Документация по MQL5: Проверка состояния / Symbol
Документация по MQL5: Проверка состояния / Symbol
  • www.mql5.com
Проверка состояния / Symbol - Документация по MQL5
 

Interesting:

При использовании SymbolSelect (если параметром ему служит true) или других вещей входящих в группу "Функции для получения информации о состоянии рынка" не перечисленных выше синхронизацию следует проводить в принудительном порядке.


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

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


PS

Конечно, возможно, такой алгоритм будет невозможно реализовать в тестере, или это существенно понизит его надежность. Тогда будет разумней осатвить все так как есть сейчас...


 
Interesting:

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

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


PS

Конечно, возможно, такой алгоритм будет невозможно реализовать в тестере, или это существенно понизит его надежность. Тогда будет разумней осатвить все так как есть сейчас...



Вы не поняли. В данном случае речь идёт не о синхронизации истории, а о синхронизации информации о символе в тестере с данным сервером. Это неизменяемая информация, но у каждого своя. Потому и размер небольшой и для всех символов одинаков. Так что, это не слишком напрягает.

3304 bytes of symbol info received.
 
Valmars:

Вы не поняли. В данном случае речь идёт не о синхронизации истории, а о синхронизации информации о символе в тестере с данным сервером. Это неизменяемая информация, но у каждого своя. Потому и размер небольшой и для всех символов одинаков. Так что, это не слишком напрягает.

3304 bytes of symbol info received.

Вот теперь понял - В любом случае определенный запрос будет выполнен, без этого просто не возможно работать тестеру.