Прогоняю советник в тестере на реальных тиках.
И получаю странную ошибку - рынок работает, свечи идут, сигнал формируется, а заявка не выставляется. Выдается ошибка "Market closed"
В чем может быть проблема, подскажите
Терминал обновили?
Есть какое решение проблемы выше?
Возникла ситуация, что советник, который раньше работал нормально, выдает ошибку, что рынок закрыт. Торговля на Форекс. Сейчас четверг 22:30 минут, т.е. рынок работает, вручную сделки на этом же демо-счете открывают без проблем.
Есть какое решение проблемы выше?
Возникла ситуация, что советник, который раньше работал нормально, выдает ошибку, что рынок закрыт. Торговля на Форекс. Сейчас четверг 22:30 минут, т.е. рынок работает, вручную сделки на этом же демо-счете открывают без проблем.
Если еще актуально, то рассказываю, как я обошел эту проблему:
В сессии, где у тебя написано (на скрине) 09:45, я изменил на 00:00. Как я это сделал?
В тестере стратегий при нажатии на символ, где ты открывается окно (что у тебя на скрине). Внизу есть кнопки "По умолчанию", "Импорт" и "Экспорт". Сначала нажми на "Экспорт" и в сохранном файле в поле Close (там будет их штук 5) ставишь значение "0". После того, как всё исправишь, сохраняешь изменения, нажимаешь кнопку "Импорт" и загружаешь твой измененный файл.
Если еще актуально, то рассказываю, как я обошел эту проблему:
В сессии, где у тебя написано (на скрине) 09:45, я изменил на 00:00. Как я это сделал?
В тестере стратегий при нажатии на символ, где ты открывается окно (что у тебя на скрине). Внизу есть кнопки "По умолчанию", "Импорт" и "Экспорт". Сначала нажми на "Экспорт" и в сохранном файле в поле Close (там будет их штук 5) ставишь значение "0". После того, как всё исправишь, сохраняешь изменения, нажимаешь кнопку "Импорт" и загружаешь твой измененный файл.
Это не выход с ситуации.
На данный момент я использую такой вариант в своих советниках:
bool SessionOn() { MqlDateTime current_day; datetime now = TimeTradeServer(); datetime today = StringToTime(TimeToString(now, TIME_DATE)); datetime from, to; TimeToStruct(now, current_day); SymbolInfoSessionTrade(_Symbol, (ENUM_DAY_OF_WEEK) current_day.day_of_week, 0, from, to); from += today; to += today; return (now >= from) && (now <= to); }
Если сейчас время торговой сессии (т.е. можно торговать), то он вернет true. Я вызываю её в OnTick.
Для закрытии ордера в конце сессии, то я использую следующий параметр:
request.type_time = ORDER_TIME_DAY;
Где request - класс MqlTradeRequest.
При использовании этого кода у меня не возникает такая ошибка.
На данный момент я использую такой вариант в своих советниках:
Если сейчас время торговой сессии (т.е. можно торговать), то он вернет true. Я вызываю её в OnTick.
Для закрытии ордера в конце сессии, то я использую следующий параметр:
Где request - класс MqlTradeRequest.
При использовании этого кода у меня не возникает такая ошибка.
Тут есть пара тонких моментов.
1 - SymbolInfoSessionTrade() может неверно отражать реальность (у моего брокера так)
2 - StringToTime(TimeToString(now, TIME_DATE)) - весьма и весьма медленное преобразование, лучше делать так:
TimeTradeServer()/86400*86400 // целочисленное деление с отбрасыванием остатка, 86400 = 60*60*24 - к-во секунд в сутках
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Прогоняю советник в тестере на реальных тиках.
И получаю странную ошибку - рынок работает, свечи идут, сигнал формируется, а заявка не выставляется. Выдается ошибка "Market closed"
В чем может быть проблема, подскажите