Форум » Консультации по программированию » Проскользнувшие ордера » Ответить

Проскользнувшие ордера

Takumi: Здравствуйте! Товарищи, подскажите как лучше программно бороться с такой проблемой: Иногда в результате проскальзывания стоп ордера новый ордер открывается, но отложенный в терминале не удаляется (подсвечивая его цену желтым цветом), в результате чего советник пытается работать с несуществующим на сервере ордером. Пока борюсь с этим просто перезапуском терминала вручную, но хотелось бы более правильного решения. Думаю отслеживать подобные ордера по коду ошибки при модификации ордера и при ее обнаружении программно перезапускать терминал, но может кто то подскажет более правильное решение???

Ответов - 8

Scriptong: Доброго времени суток. Да, несколько раз сталкивался с подобной ситуацией, когда должен сработать отложенный ордер (или Take Profit, или Stop Loss, что по сути одно и то же), но не срабатывает. Такое бывает на резких движениях рынка. Сервер брокера не успевает обработать шквал заявок. Причем перезагрузка терминала все равно не помогала, т. к. дело именно с данными на сервере. К сожалению, решается вопрос только путем обращения в техподдержку брокера конкретно по возникшей ситуации. Самому решить эту проблему невозможно. В программе, чтобы не работать с подобными ордерами, можно просто сделать проверку соответствия текущих рыночных условий параметрам ордера. Если ордер должен был сработать, но не сработал (профит или стоп рыночного или цена отложенного ордера за пределами рыночной цены), то обходить такой ордер стороной. Тут уже нужно придумывать выход, исходя из самой стратегии. В своих программах делаю радикально: чуть только обнаруживаются непонятные проблемы, выдаю сообщение об ошибке со звуковым сообщением и завершаю программу.

Takumi: Scriptong пишет: Доброго времени суток. Да, несколько раз сталкивался с подобной ситуацией, когда должен сработать отложенный ордер (или Take Profit, или Stop Loss, что по сути одно и то же), но не срабатывает. Такое бывает на резких движениях рынка. Сервер брокера не успевает обработать шквал заявок. Причем перезагрузка терминала все равно не помогала, т. к. дело именно с данными на сервере. К сожалению, решается вопрос только путем обращения в техподдержку брокера конкретно по возникшей ситуации. Самому решить эту проблему невозможно. В программе, чтобы не работать с подобными ордерами, можно просто сделать проверку соответствия текущих рыночных условий параметрам ордера. Если ордер должен был сработать, но не сработал (профит или стоп рыночного или цена отложенного ордера за пределами рыночной цены), то обходить такой ордер стороной. Тут уже нужно придумывать выход, исходя из самой стратегии. В своих программах делаю радикально: чуть только обнаруживаются непонятные проблемы, выдаю сообщение об ошибке со звуковым сообщением и завершаю программу. Приветствую! Спасибо за ответ! Но в моем случае проблема именно на стороне торгового терминала. Исполнение ордера происходит, появляется новый открытый ордер, но отложка то же остается с "проскользнувшей ценой", причем на сервере этой отложки нет, т.к. на другой рабочей станции в параллельно запущенном терминале этой отложки то же нет. Ну и после перезапуска терминала соответственно все оК. В принципе пока решил проблему как и писал выше - если при попытке модифицировать отложенный ордер сервер выдает ошибку 133, то перезагружаю терминал. И я так понимаю это единственный способ решения, т.к. по другому обновить список ордеров в терминале нельзя.

Scriptong: Takumi пишет: Но в моем случае проблема именно на стороне торгового терминала. В таком случае попробуйте сообщить об ошибке разработчикам терминала.


Sergey: Scriptong пишет: В программе, чтобы не работать с подобными ордерами, можно просто сделать проверку соответствия текущих рыночных условий параметрам ордера. Сегодня и я столкнулся с такой проблемой впервые. Не сработал установленный SL, а светится желтым цветом. Я открыл график на другом компе и SL обнулен. В журнале записей нет Советник в тиковом режиме проверяет параметры ордеров и не видит отсутствие SL, так как на графике, где он прикреплен SL есть. Мдааа.. не приятно

Scriptong: К сожалению, так до конца и не понятно, с чем же мы имеем дело: с тем, что сервер не успел обработать достижение ценой Stop Loss, или с багом клиентской части МТ4, которая не успела обновить данные по ордерам. Скорее всего, дело и в том, и в другом, так как это два разных случая: 1. Ордер отображается в терминале после срабатывания TP или SL. В то же время после перезагрузки ордер пропадает. Это баг терминала. 2. Ордер отображается в терминале после срабатывания TP или SL. Перезагрузка терминала не помогает. Недоработка сервера. Если цена выйдет из зоны срабатывания уровня, то сервер так и не исправит свою ошибку. У меня совсем недавно такое было. И, похоже, Вы описываете еще и третий случай. Тут уже вообще странное - почему SL пустой? Странно все это.

Sergey: Scriptong пишет: И, похоже, Вы описываете еще и третий случай. Тут уже вообще странное - почему SL пустой? Странно все это. Я пока что обратился в ДЦ. Консультант посмотрел счет, сделку. У него так же висел установленный и не отработавший SL. Обещал перезвонить, когда разберется. Ждусс...

Sergey: Sergey пишет: Ждусс... И так заключение... Такие сбои возможны при перезагрузки сервера. По крайней мере это мой случай, как объяснил представитель ДЦ. Если перезагружаются сервера с реальными счетами, то приходит письменное уведомление. С этим не поспоришь, такие сообщения по реальным счетам я получал ранее, но не знал как с ними работать. Теперь понятно, по завершению перезагрузки - проверяем все ордера на предмет сбоев. Наверное есть смысл дописать в советники код проверки и обработки таких ордеров, так на всякий случай.

Scriptong: Sergey пишет: Теперь понятно, по завершению перезагрузки - проверяем все ордера на предмет сбоев. М-м... А как узнать, что сервер уже перезагружен? И даже больше, как советник узнает, что планируется перезагрузка сервера? Вариант один - научить его читать и анализировать прочитанное



полная версия страницы