← Back

Состояние заявки

Доброго Вам, Михаил! Спасибо за Вашу работу, очень облегчает создавать свои разработки. Возник вопрос по состоянию заявки.

Вызываю RegisterOrder(order), затем проверяю, что order.State == OrderStates.Active и сразу даю команду CancelOrder(order); Получаю результат: System.ArgumentException: Заявка по транзакции 'CLASSCODE=QJSIM; SECCODE=LKOH; TRANS_ID=1; ACTION=KILL_ORDER; ORDER_KEY=790607967' не была зарегистрирована. Причина 'Вы не можете снять данную заявку'. Sleep помог делу, но это не дело.

Вы можете прокомментировать данную ситуацию?

P.S. И похоже, в документацию закралась досадная опечатка про "Статусы" заявки.

Comments (3)

Login or Create account, Log in or register to leave a comment

Mikhail Sukhov
Mikhail Sukhov

http://stockmarketdotnet.blogspot.com/2010/02/s-17.htmlПункт 4

Что за опечатка?

Ronin
Ronin Author

Дело в том, что бывают случаи, когда сервер брокера заявку получил, но выставление заявки на биржу происходит после существенного временного лага. И угадать с размером минимальной задержки не представляю возможным. Также всё осложняется тем, что помимо состояния заявки OrderStates.Active, её статус OrderStatus.Done. Может, как вариант, OrderStatus изменять по анализу реально полученных данных?

Mikhail Sukhov
Mikhail Sukhov

ITrader.OrdersChanged. Когда придет событие по Вашей сделке, значит она и сервером брокера принята.