StockSharp 4.2.3
Создаю заявки с помощью Trader.RegisterOrder, они прекрасно регистрируются и появляются в терминале. Но снять их не получается. Пробовал несколько способов:
- запоминал Order в переменную и пробовал удалять его
- брал ордера из Trader.Orders / Trader.StopOrders и пробовал удалять их
- пробовал удалять все ордера на текущем счету по данному инструменту, вызов типа:
Trader.CancelOrders(null, Portfolio, null, null, Security);
В логе постоянно получаю след картину
2014/06/30 20:31:42.826| |QuikTrader|CancelOrder: 73389503/0 Покупка Цена=131070 Объем=1 Сост=Pending Бал=1
2014/06/30 20:31:42.826| |QuikTrader|CancelOrder: 73389504/0 Продажа Цена=128390 Объем=1 Сост=Pending Бал=1
Прекрасно снимает ордера простой вызов Trader.CancelOrders(). В этом случае вывод в лог другой
2014/06/30 20:31:43.191| |QuikTrader|CancelOrder: 73390405/0 Покупка Цена=130970 Объем=1 Сост=Pending Бал=1
2014/06/30 20:31:43.191| |QuikTrader|CancelOrder: 73390405/2386060201 Покупка Цена=130970 Объем=1 Сост=Active Бал=1
2014/06/30 20:31:43.841| |QuikTrader|Order changed: 73390405/2386060201 Покупка Цена=130970 Объем=1 Сост=Done Бал=1
Т.е. ордер переходит в Active и потом в Done.
В чем может быть проблема? Я не могу даже удалить все ордера для одного инструмента, а все сразу - пожалуйста.
Comentários (3)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Сам недавно стал изучать stocksharp и сегодня столкнулся с такой же проблемой. Учитывая, что вы написали это сообщение 16 дней назад, складывается впечатление, что за бесплатно здесь никто ничего не будет делать. А жаль!
+1. Взаимопомощь от других пользователей просто поражает.
Не знаю, поможет ли вам моё сообщение, но мне удалось исправить свою ситуацию. В общем, у меня был следующий код:
По факту получалось, что заявка появлялась в квике (но при этом order.Id = 0 ?!!), но потом дело до снятия не доходило, всё зависало в бесконечном цикле, т.к. ордер всегда был в состоянии Pending. Без проверки состояния ордера функция CancelOrder ничего не снимала. Что помогло - настройка таблиц квика. С самого начала я загрузил все настройки из файла info.wnd, как прописано было в мануале. Потом руками добавил стакан по Лукойлу и назвал окно LKOH@QJSIM (всё по мануалу). При запуске кода всё было так, как описано выше (заявка выставляется и становится Pending, когда она по факту выставлена, не снимается из кода). Но потом я решил порыться в настройках таблиц квика, и обнаружил, что в некоторых таблицах стоят галочки не на всех рынках - у меня стояло только на FORTS, а на ММВБ - нет. После выставления всех галочек всё заработало.