Доброго Вам, Михаил! Спасибо за Вашу работу, очень облегчает создавать свои разработки. Возник вопрос по состоянию заявки.
Вызываю 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. И похоже, в документацию закралась досадная опечатка про "Статусы" заявки.
コメント (3)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
http://stockmarketdotnet.blogspot.com/2010/02/s-17.htmlПункт 4
Что за опечатка?
Дело в том, что бывают случаи, когда сервер брокера заявку получил, но выставление заявки на биржу происходит после существенного временного лага. И угадать с размером минимальной задержки не представляю возможным. Также всё осложняется тем, что помимо состояния заявки OrderStates.Active, её статус OrderStatus.Done. Может, как вариант, OrderStatus изменять по анализу реально полученных данных?
ITrader.OrdersChanged. Когда придет событие по Вашей сделке, значит она и сервером брокера принята.