Ejemplo n.º 1
0
        public void push(OrderCmd aCmd)
        {
            Order order;

            if (orders.ContainsKey(aCmd.orderInfo.orderId))
            {
                // order alreday exist
                logger.Info("push:orderIdExist:" + aCmd.orderInfo.orderId);
                order = orders[aCmd.orderInfo.orderId];
                //orderid, account, symbol, and position can not change
                if (aCmd.closed)
                {
                    order.closingOrder("OrderCmd");
                }
                else
                {
                    updateOrder(order, aCmd);
                }
            }
            else
            {
                logger.Info("push:nreOrderId:" + aCmd.orderInfo.orderId);
                // create new order
                OrderTrackingInfo orderTrackingInfo = new OrderTrackingInfo(OrderState.WaitingSubmit);
                orderTrackingInfo.orderId = aCmd.orderInfo.orderId;

                order = new Order(aCmd.orderInfo, orderTrackingInfo, aCmd.orderBehaviorParameters);
                addOrder(order);
                updateOrder(order, aCmd);
                order.active();
                order.fireOrder("NewOrderCmdRecieved");
            }
        }
Ejemplo n.º 2
0
        public void loadOrderFromRedis()
        {
            List <int> orderIdList = getOrderIdListFromRedisDB();

            foreach (int aId in orderIdList)
            {
                OrderInfo orderInfo = new OrderInfo();
                orderInfo.loadFromRedis(aId);

                OrderTrackingInfo orderTrackingInfo = new OrderTrackingInfo();
                orderTrackingInfo.loadFromRedis(aId);

                OrderBehaviorParameters orderBehaviorParameters = new OrderBehaviorParameters();
                orderBehaviorParameters.loadFromRedis(aId);

                Order order = new Order(orderInfo, orderTrackingInfo, orderBehaviorParameters);
                if (orderTrackingInfo.orderState == OrderState.Filled)
                {
                    order.active();
                    order.behaviorReInit();
                }

                addOrder(order);
            }
        }
Ejemplo n.º 3
0
        public Order(OrderInfo aOrderInfo,
                     OrderTrackingInfo aTracking, OrderBehaviorParameters aBehaviorPars)
        {
            orderinfo    = aOrderInfo;
            behaviorPars = aBehaviorPars;
            tracking     = aTracking;
            changeState(aTracking.orderState);

            orderinfo.saveOnRedis();
            behaviorPars.saveOnRedis();
            tracking.saveOnRedis();

            daytrade   = new DayTrade(this);
            profitTake = new ProfitTake(this);
            protector  = new Protector(this);
            hardstop   = new Hardstop(this);
        }