← Zurück

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

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

Вызываю 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. И похоже, в документацию закралась досадная опечатка про "Статусы" заявки.

War dieses Thema hilfreich?

Thema teilen

Kommentare (3)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

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

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

Ronin
Ronin Autor

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

Mikhail Sukhov
Mikhail Sukhov

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