예제 #1
0
        void _client_OnLegOrderUpdated(string portfId, string mlOrderId, string legOrdRef, trade.Order legOrder)
        {
            OrderUpdateArgs args = new OrderUpdateArgs
            {
                AccountId   = Id,
                PortfolioId = portfId,
                MlOrderId   = mlOrderId,
                LegOrderRef = legOrdRef,
                LegOrder    = legOrder
            };

            EventAggregator.GetEvent <IndividualOrderUpdatedEvent>().Publish(args);
        }
예제 #2
0
        public void Update(OrderUpdateArgs orderUpdateArgs)
        {
            MultiLegOrderVM mlOrderVm = this.SingleOrDefault
                                            (vm => vm.AccountId == orderUpdateArgs.AccountId && vm.OrderId == orderUpdateArgs.MlOrderId);

            Debug.Assert(mlOrderVm != null,
                         string.Format("Cannot find parent multileg order({0}) when update individual order",
                                       orderUpdateArgs.MlOrderId));

            if (mlOrderVm != null)
            {
                mlOrderVm.From(orderUpdateArgs.LegOrderRef, orderUpdateArgs.LegOrder);
            }
        }
예제 #3
0
        public void Update(OrderUpdateArgs orderUpdateArgs)
        {
            lock (_syncObj)
            {
                MultiLegOrderVM mlOrderVm = GetMlOrderVm(orderUpdateArgs.AccountId, orderUpdateArgs.MlOrderId);
                Debug.Assert(mlOrderVm != null,
                             string.Format("Cannot find parent multileg order({0}) when update individual order",
                                           orderUpdateArgs.MlOrderId));

                if (mlOrderVm != null)
                {
                    mlOrderVm.From(orderUpdateArgs.LegOrderRef, orderUpdateArgs.LegOrder);

                    if (mlOrderVm.IsAllFinished && !mlOrderVm.IsPortfolio)
                    {
                        mlOrderVm.CalcProfit();
                    }
                }
            }
        }
예제 #4
0
 public void OnIndividualOrderUpdated(OrderUpdateArgs args)
 {
     _ordersRepo.Update(args);
 }