private void OrderManager_ExecutionReport(object sender, ExecutionReportEventArgs args) { FreeQuant.FIX.ExecutionReport executionReport = args.ExecutionReport; if (executionReport.ExecType == ExecType.PartialFill) { SingleOrder order = ((InstrumentOrderListTable)OrderManager.Orders).All[executionReport.ClOrdID] as SingleOrder; StrategyRunner strategyRunner = (StrategyRunner)null; if (this.strategies.TryGetValue(order.Strategy, out strategyRunner) && strategyRunner.Enabled) { strategyRunner.SetPartiallyFilled(order); } } if ((executionReport.ExecType == ExecType.Fill || executionReport.ExecType == ExecType.Trade) && executionReport.LeavesQty > 0.0) { SingleOrder order = ((InstrumentOrderListTable)OrderManager.Orders).All[executionReport.ClOrdID] as SingleOrder; StrategyRunner strategyRunner = (StrategyRunner)null; if (this.strategies.TryGetValue(order.Strategy, out strategyRunner) && strategyRunner.Enabled) { strategyRunner.SetPartiallyFilled(order); } } if (executionReport.ExecType != ExecType.Replace) { return; } SingleOrder order1 = ((InstrumentOrderListTable)OrderManager.Orders).All[executionReport.ClOrdID] as SingleOrder; StrategyRunner strategyRunner1 = (StrategyRunner)null; if (!this.strategies.TryGetValue(order1.Strategy, out strategyRunner1) || !strategyRunner1.Enabled) { return; } strategyRunner1.SetOrderReplaced(order1); }
private void OrderManager_OrderDone(OrderEventArgs args) { StrategyRunner strategyRunner = (StrategyRunner)null; if (!this.strategies.TryGetValue(args.Order.Strategy, out strategyRunner) || !strategyRunner.Enabled) { return; } strategyRunner.SetOrderDone(args.Order); }
private void SQ_OrderManager_OrderCancelReject(object sender, OrderCancelRejectEventArgs args) { SingleOrder order = ((InstrumentOrderListTable)OrderManager.Orders).All[args.OrderCancelReject.OrigClOrdID] as SingleOrder; StrategyRunner strategyRunner = (StrategyRunner)null; if (!this.strategies.TryGetValue(order.Strategy, out strategyRunner) || !strategyRunner.Enabled) { return; } if (args.OrderCancelReject.CxlRejResponseTo == CxlRejResponseTo.CancelReplaceRequest) { strategyRunner.SetOrderReplaceReject(order); } else { strategyRunner.SetOrderCancelReject(order); } }