Доброго Вам, Михаил! Спасибо за Вашу работу, очень облегчает создавать свои разработки. Возник вопрос по состоянию заявки.
Вызываю 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. Когда придет событие по Вашей сделке, значит она и сервером брокера принята.