Ограничение функционала или глюк тестера? - страница 5

 
Vladimir Suschenko:
Я разных брокеров упомянул, чтобы сказать - список исключений, составленный на Метаквотовском сервере, может не подходить для других серверов (т.к. наборы инструментов разные).
Естественно что он везде разный. Поэтому и стоит вопрос как решить эту проблему автоматически, без лишних телодвижений.
 
Alexey Oreshkin:

 То есть пользователю нужно зайти в символы и переписать в инпут переменную 50 валютных пар ??? (да знаю что у каждого брокера разный набор инструментов, есть и по 20)

Какие 50 пар? О чём вы вообще? Перечитайте ещё раз то, что я предлагал.

 
Alexey Oreshkin:

Это хороший вариант но для других целей. Здесь же задача сделать так чтобы покупатель не страдал фигней с перемещением файлов или созданием таблицы используемых символов потому что тестер не умеет нормально отбирать рабочие инструменты. Казалось бы проблема не стоит даже внимания, ан нет.

Я ответил точно на Ваш вопрос

Но этот файл пишется в каталог Terminal\MQL5\Files. А тестер ищет файлы в каталоге Terminal\Tester\Agent-127.0.0.1-3000\MQL5\Files. То есть покупателю нужно ещё не только запустить этот скрипт, но и переместить этот файл.

Мы подумаем, что можно сделать, чтобы не качать историю инструмента, когда она реально не нужна (когда запрос касается общих настроек, и не касается текущих цен)

 
Slawa:

Мы подумаем, что можно сделать, чтобы не качать историю инструмента, когда она реально не нужна (когда запрос касается общих настроек, и не касается текущих цен)

Вот это действительно будет круто и избавит от массы проблем! ждём.
 

Столкнулся с подобной проблемой.

Дорабатываемый мультивалютник контролирует 8 пар. 7 основных + золото.

В советнике есть отсев неторгуемых пар

for(int sn=0;sn<ArraySize(simbol);sn++){

    if(SymbolInfoInteger(simbol[sn],SYMBOL_TRADE_MODE) ==SYMBOL_TRADE_MODE_FULL) {... }else{err=simbol  [sn]+" - not to trade in market more";}

}// где simbol - массив с символами

Вот недавно было такое:

Расписание торгов металлами (XAUUSD, XAGUSD):


  • 18.01.2016 – закрытие в 19:45 по серверному времени.
  • 19.01.2016 – возобновление торговли в 01:15 по серверному времени.

Запустил в тестере на EUDUSD разрабатываемого советника с 18 до 20 янв. Сообщение "not to trade in market more" для XAUUSD в 19:45 так и не возникло.

Видимо SYMBOL_TRADE_MODE работает только для реальной торговли в терминале.

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

Полагаю, что доступность для торговли символа надо определять из поведения графика символа, например если 5 минут не было тиков, то торговля закрыта. А SYMBOL_TRADE_MODE видимо просто не включен в файлы исторических данных.

Применил такой "костыль"      

if(SymbolInfoInteger(simbol[sn],SYMBOL_TRADE_MODE) ==SYMBOL_TRADE_MODE_FULL && (TimeCurrent() - SymbolInfoInteger(simbol[sn],SYMBOL_TIME))<300){...

который сработал в 19:50 и до 1:15 он был активен.

А вот то, что тестер совершает торговые операции с символом, по которому нет торговли и нет тиков - это уже ошибка тестера.