Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Предпоследняя строчка - это результат работы OrderCheck() в методе PositionOpen() класса CTrade. Торговый приказ на сервер не ушел. Посмотрите как это сделано в кассе.
Первая строчка это результат скрипта представленного выше. А следующие это попытка открыться экспертом в ручном режиме в момент, когда рынок был закрыт.
Когда рынок открыт всё работает. Как сейчас:
Мне теперь придётся ждать выходных, чтобы заняться проверками на открытость/закрытость рынка (не успел). ))
Саммым точным определением закрыт рынок или нет!
к сожалению будет именно попытка отрыть например отложенный ордер !
цена по которому будет достаточно далека от текущего АСК и БИД
--
алгоритм прост!
1-узнаем по нужному символу текущий асб или бид !
2 делаем очень большое смещение
3 пытаемся выставить ордер! с самым малым лотом - и далеко от текущей цены
4 если ордер не удается выставить анализируем ошибку
5 если это ошибка имеет тип TRADE_RETCODE_MARKET_CLOSED радуемся! мы определили что в данный момент рынок закрыт!
6 если ордер удалось отрыть - тут же удаляем его и тоже радуемся - рынок работает!
это будет самый надежный способ!
все другие будут информационные! и не надежные! и не гарантирующие результат
...
это будет самый надежный способ!
все другие будут информационные! и не надежные! и не гарантирующие результат
Спасибо Юрий. Ваше мнение всегда очень интересно.
Получается остаётся актуальным вопрос по внедрению разработчиками функционала, который бы гарантированно возвращал код, закрыт или открыт на данный момент рынок. Флаг TRADE_RETCODE_MARKET_CLOSED ведь нам возвращает сервер. Почему бы не сделать возможность получать эту информацию без попытки осуществления торговой операции, то есть абсолютно ненужных "телодвижений"?
У меня вот так получилось.
В принципе очень даже замечательно работает. Пока косяков не нашел.
У меня вот так получилось.
В принципе очень даже замечательно работает. Пока косяков не нашел.
Спасибо. Как вариант, да. Но вопрос стоял, как получить код TRADE_RETCODE_MARKET_CLOSED до совершения торговой операции.
Через OrderCheck() , уже ответили выше. Функция не совершает сделку, а лишь проверяет правильность запроса.
Николай, я попробовал так, как в этом посте в выходной день. В ответ я получаю (OK!) (retcode==ноль), то есть нет знака, что рынок закрыт. При попытке открыть позицию получаю market closed (10018). Или я что-то неправильно делаю?
А вы точно сheckresult.retcode смотрите? а не result.retcode ? (имена могут быть другие,но смысл ответа от запроса проверки)
А вы точно сheckresult.retcode смотрите? а не result.retcode ? (имена могут быть другие,но смысл ответа от запроса проверки)
Я смотрю вот этот retcode:
На выходных попробую ещё раз посмотреть.
P.S. Вообще-то сбит немного с толку разнонаправленными мнениями опытных участников. :)
Действительно .Ответы 0 (check) и 10018 (result).