← Zurück

ReRegisterOrder RealTimeEmulationTrader QuikTrader

В RealTimeEmulationTrader<QuikTrader> Исполнение команды this.ReRegisterOrder(TargetOrder1, TargetOrder111); не приводит к снятию заявок. TargetOrder1 остается активной и добавляется TargetOrder111.

War dieses Thema hilfreich?

Thema teilen

Kommentare (15)

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

lshaton
lshaton Autor

lshaton: В RealTimeEmulationTrader<QuikTrader> Исполнение команды this.ReRegisterOrder(TargetOrder1, TargetOrder111); не приводит к снятию заявок. TargetOrder1 остается активной и добавляется TargetOrder111. И CancelActiveOrders()тоже не работает this.Orders.Select(ord => ord.State == OrderStates.Active).Count()); показывает увеличение количества заявок,игнорируя снятие старых.

Mikhail Sukhov
Mikhail Sukhov

lshaton: В RealTimeEmulationTrader Исполнение команды this.ReRegisterOrder(TargetOrder1, TargetOrder111); не приводит к снятию заявок. TargetOrder1 остается активной и добавляется TargetOrder111.

А как проверяли? Смотрю код, там первой же строчкой:

order.State = OrderStates.Done;
lshaton
lshaton
lshaton Autor

Mikhail Sukhov:

lshaton: В RealTimeEmulationTrader<QuikTrader> Исполнение команды this.ReRegisterOrder(TargetOrder1, TargetOrder111); не приводит к снятию заявок. TargetOrder1 остается активной и добавляется TargetOrder111.

А как проверяли? Смотрю код, там первой же строчкой:

order.State = OrderStates.Done;

Да просто исполнялись заявки,которые были изменены и те на которые были изменены. Кроме того order.Count растет,хотя не должен.
Mikhail Sukhov
Mikhail Sukhov

lshaton: Да просто исполнялись заявки,которые были изменены и те на которые были изменены. Кроме того order.Count растет,хотя не должен.

Можно чуть по подробнее, как именно вы проверяли, что заявки не отменяются?

lshaton
lshaton Autor

Mikhail Sukhov:

lshaton: Да просто исполнялись заявки,которые были изменены и те на которые были изменены. Кроме того order.Count растет,хотя не должен.

Можно чуть по подробнее, как именно вы проверяли, что заявки не отменяются? this.ReRegisterOrder(TargetOrder1, TargetOrder111); потом в окошке выводилась величина this.Orders.Select(ord => ord.State == OrderStates.Active).Count()); (this - стратегия) и это число постоянно увеличивалось с итерациями. Я неделю назад с этим куском работал, потом переделал так, чтобы избежать ReRegisterOrder. Попробую восстановать ситуацию и если повторится, сделаю пост сюда еще раз. Спасибо.

Mikhail Sukhov
Mikhail Sukhov

lshaton: this.ReRegisterOrder(TargetOrder1, TargetOrder111); потом в окошке выводилась величина this.Orders.Select(ord => ord.State == OrderStates.Active).Count()); (this - стратегия) и это число постоянно увеличивалось с итерациями.

Заявка не сразу снимается и не сразу регистрируется. По TargetOrder1 OrdersChanged приходит?

lshaton
lshaton Autor

Mikhail Sukhov:

lshaton: this.ReRegisterOrder(TargetOrder1, TargetOrder111); потом в окошке выводилась величина this.Orders.Select(ord => ord.State == OrderStates.Active).Count()); (this - стратегия) и это число постоянно увеличивалось с итерациями.

Заявка не сразу снимается и не сразу регистрируется. По TargetOrder1 OrdersChanged приходит? Событие _trader.OrdersChanged подымается каждый раз при выставлении новой заявки и при изменении заявки ReRegisterOrder(...). Вопрос- почему исполненные заявки подсчитываются как активные this.Orders.Select(ord => ord.State == OrderStates.Active).Count()); ??? Исполненная заявка должна получить OrderStates.Done

lshaton
lshaton Autor

Mikhail Sukhov:

lshaton: Да просто исполнялись заявки,которые были изменены и те на которые были изменены. Кроме того order.Count растет,хотя не должен.

Можно чуть по подробнее, как именно вы проверяли, что заявки не отменяются? В моем последнем тесте заявки отменялись. Наверное в моей программе как-то дублировалось выставление заявок.

Mikhail Sukhov
Mikhail Sukhov

lshaton: Вопрос- почему исполненные заявки подсчитываются как активные

Мы ходим вокруг да около... Почему вы считаете, что заявки исполнились? Как вы это проверяете?

lshaton
lshaton Autor

Mikhail Sukhov:

lshaton: Вопрос- почему исполненные заявки подсчитываются как активные Мы ходим вокруг да около... Почему вы считаете, что заявки исполнились? Как вы это проверяете? Поднималось событие


            _trader.NewMyTrades += myTrades => this.GuiAsync(() =>
             {
                 foreach (MyTrade myTrade in myTrades)
                 {
                     WriteToTextBox(trade.OrderDirection.ToString() + String.Format(" Сделка {0} по цене {1} тек.позиция= {2} по объему {3}  P&L={4} myP&L={5}", trade.Id, trade.Price, iVolume, trade.Volume, myTrades.GetPnL(), dPL + iVolume * trade.Price));
}});

После выставления каждой заявки поисходил трейд,потому,что все заявки по маркету.

Mikhail Sukhov
Mikhail Sukhov

lshaton: После выставления каждой заявки поисходил трейд,потому,что все заявки по маркету.

Заявка каким была объемом? Весь объем удовлетворялся? Версия последняя из КодеПлекса?

lshaton
lshaton Autor

Mikhail Sukhov:

lshaton: После выставления каждой заявки поисходил трейд,потому,что все заявки по маркету.

Заявка каким была объемом? Весь объем удовлетворялся? Версия последняя из КодеПлекса? Заявки на один лот (один фьючерс) полностью удовлетворены. Версия S# 4.0.1

Mikhail Sukhov
Mikhail Sukhov

lshaton:

Mikhail Sukhov:

lshaton: После выставления каждой заявки поисходил трейд,потому,что все заявки по маркету.

Заявка каким была объемом? Весь объем удовлетворялся? Версия последняя из КодеПлекса? Заявки на один лот (один фьючерс) полностью удовлетворены. Версия S# 4.0.1

Событие ITrader.OrdersChanged вызывается для заявок, по которым идет сделка?

lshaton
lshaton Autor

Mikhail Sukhov:

lshaton:

Mikhail Sukhov:

lshaton: После выставления каждой заявки поисходил трейд,потому,что все заявки по маркету.

Заявка каким была объемом? Весь объем удовлетворялся? Версия последняя из КодеПлекса? Заявки на один лот (один фьючерс) полностью удовлетворены. Версия S# 4.0.1

Событие ITrader.OrdersChanged вызывается для заявок, по которым идет сделка? Да вызывается.

Mikhail Sukhov
Mikhail Sukhov

lshaton:

Mikhail Sukhov: Событие ITrader.OrdersChanged вызывается для заявок, по которым идет сделка? Да вызывается.

Вот в этом событие какие значение Balance + State у заявки? Выведите в лог.