Александр,
В MT5 успешная отправка ордера не означает его исполнение, а только его постановка в очередь. Следовательно, когда вы отправляете повторный ордер на новом тике, возможно в очереди уже весит не исполненый ордер с предыдущего тика. В таком случае, при отправке второго ордера, Ваша позиция перевернется и на следующем тике вы ее будете опять закрывать.
В таком случае, самое простое, замерить время срабатывания ордера и установить задержку выполнения программы после отправки ордера.
Второй вариант, перед отправкой ордера, проверять наличие не исполненных ордеров в очереди.
Третий вариант, сохранить тикет отправленного ордера, установить флаг, что ордер уже отправлен. И прописать функцию OnTradeTransaction на проверку результата исполнения ордера. И только при отклонении ордера или не полном исполнении отправлять повторный ордер на закрытие позиции.
С уважением,
Дмитрий.
Александр,
В MT5 успешная отправка ордера не означает его исполнение, а только его постановка в очередь. Следовательно, когда вы отправляете повторный ордер на новом тике, возможно в очереди уже весит не исполненый ордер с предыдущего тика. В таком случае, при отправке второго ордера, Ваша позиция перевернется и на следующем тике вы ее будете опять закрывать.
В таком случае, самое простое, замерить время срабатывания ордера и установить задержку выполнения программы после отправки ордера.
Второй вариант, перед отправкой ордера, проверять наличие не исполненных ордеров в очереди.
Третий вариант, сохранить тикет отправленного ордера, установить флаг, что ордер уже отправлен. И прописать функцию OnTradeTransaction на проверку результата исполнения ордера. И только при отклонении ордера или не полном исполнении отправлять повторный ордер на закрытие позиции.
С уважением,
Дмитрий.
Огромное спасибо !!!!
зная о не знании начал фантазировать с временем ,думал ошибка кроится в интервале 250мс
еще раз огромное спасибо!
// 3 попытки закрытия позиции с интервалом 250 мс. for(int k = 0; k < 3; k++) {
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем здравствуйте!
в испытании на реальном счете по этим условиям закрытия позы возникает дребезг позиции на клирингах , т.е открытие и немедленное закрытие ордера ,,,,, такое впечатление что советник закрывает позицию объемом в два раза больше чем открыта позиция, устанавливает ордер и опять закрывает .и так пока все не сольет
в чем причина и как с этим бороться не могу сообразить , подскажите!
вот конструкция кода таймера