
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня в 95% случаев тоже так. А вот в оставшихся 5% случаев выставляется два. Именно поэтому и возник вопрос, вынесенный в заголовок темы.
Очень странно. Поразмышляю вслух. Как может выставиться второй ордер, если есть условие, что если нет ни одного ордера, тогда устанавливается ордер? Получается так, что если уже есть один установленный ордер и есть условие в программе
то ей (программе) наплевать на это условие и она (программа) устанавливает второй ордер. Так, что ли получается? Тогда почему программа не устанавливает третий, четвёртый, пятый и т.д. отложенные ордера, а останавливается только на втором?
Задаю этот вопрос не потому, что не доверяю Вам, а потому, что тоже хочу разобраться в этом вопросе досконально.
С уважением, Владимир.
Очень странно. Поразмышляю вслух. Как может выставиться второй ордер, если есть условие, что если нет ни одного ордера, тогда устанавливается ордер? Получается так, что если уже есть один установленный ордер и есть условие в программе
то ей (программе) наплевать на это условие и она (программа) устанавливает второй ордер. Так, что ли получается?
Нет, не наплевать. Просто если торговый сервер обрабатывает запросы медленно (в моём случае от 5 секунд и более), а тики идут очень быстро, то в какой-то момент получается так, что в терминале нет выставленных ордеров, но при этом у брокера на торговом сервере есть запрос(ы) на их выставление, которые ещё не обработаны.
Программа, анализируя ваше условие, видит, что отложенных ордеров в терминале нет. О том, что запросы на их выставление находятся в очереди у брокера, она ничего не знает. И отправляет ещё один запрос. И он также помещается в очередь на выполнение. А через некоторое время выполняется первый, а затем и второй.
Скажите, пожалуйста, в вашей практике никогда не бывало так, что поле order этой структуры не было заполнено?
Это поле может содержать мусор, если в retcode имеется сообщение об ошибке. Смысл проверять order появляется только тогда, когда в retcode содержится TRADE_RETCODE_PLACED (мы обсуждаем именно установку ордера).
Использую вот эту функцию для установки отложенного ордера и никогда проблем с двойными отложенными ордерами не испытывал:
Возможно мой форекс-дилер очень быстро исполняет установку отложенных ордеров, поэтому и не замечал.
С уважением, Владимир.
Это поле может содержать мусор, если в retcode имеется сообщение об ошибке. Смысл проверять order появляется только тогда, когда в retcode содержится TRADE_RETCODE_PLACED (мы обсуждаем именно установку ордера).
Понял. Попробую реализовать обработку этой структуры. В моём случае торговые операции выполняются сервером достаточно долго (от пяти секунд и дольше).
Скажите, пожалуйста, в поле retcode в случае установки отложенного ордера всегда содержится TRADE_RETCODE_PLACED или код ошибки?
Там не может быть код TRADE_RETCODE_DONE ?
Там не может быть код TRADE_RETCODE_DONE ?
На этот счет не экспериментировал. У меня нет разделения на разные типы запросов. Поэтому любой запрос обрабатывается универсально - смотрится, какие были ошибки.
Возможно мой форекс-дилер очень быстро исполняет установку отложенных ордеров, поэтому и не замечал.
Если запросы на установку ордеров обрабатываются быстро, проблем с вашим подходом, скорее всего, никогда и не будет.
В моём случае анализ логов показал, что в ситуациях, когда выставлялось два отложенных ордера вместо одного, обработка запроса на выставление первого ордера на сервере занимала более 20 секунд.обработка запроса на выставление первого ордера на сервере занимала более 20 секунд
Тогда понятно.
С уважением, Владимир.
На этот счет не экспериментировал. У меня нет разделения на разные типы запросов. Поэтому любой запрос обрабатывается универсально - смотрится, какие были ошибки.
@Ihor Herasko, благодарю за помощь!
Буду пробовать предложенный вами подход. Ситуация сейчас как раз подходящая для экспериментов.
торговый сервер обрабатывает запросы медленно (в моём случае от 5 секунд и более)