Example #1
0
 public void EnqueueDeletedStopLimitOrder(IStopLimitOrder stopLimitOrder)
 {
     serverToClientMessage.Reset();
     serverToClientMessage.ReceiverClientId = stopLimitOrder.ClientId;
     serverToClientMessage.MessageType      = ServerToClientMessageTypeEnum.StopLimitOrderDeleted;
     serverToClientMessage.StopLimitOrder.Update(stopLimitOrder.ToDto());
     Enqueue();
 }
 public void EnqueueAddedStopLimitOrder(IStopLimitOrder stopLimitOrder)
 {
     serverToClientMessage.Reset();
     serverToClientMessage.ReceiverClientId = stopLimitOrder.ClientId;
     serverToClientMessage.MessageType = ServerToClientMessageTypeEnum.StopLimitOrderAccepted;
     serverToClientMessage.StopLimitOrder.Update(stopLimitOrder.ToDto());
     Enqueue();
 }
Example #3
0
        public void RemoveStopLimitOrder(IStopLimitOrder stopLimitOrder)
        {
            switch (stopLimitOrder.Way)
            {
            case WayEnum.Buy:
                BuySideStopLimitOrders.Remove(stopLimitOrder);
                break;

            case WayEnum.Sell:
                SellSideStopLimitOrders.Remove(stopLimitOrder);
                break;
            }
        }
        public void AddStopLimitOrder(IStopLimitOrder stopLimitOrder)
        {
            switch (stopLimitOrder.Way)
            {
                case WayEnum.Buy:
                    BuySideStopLimitOrders.Insert(0, stopLimitOrder);
                    break;

                case WayEnum.Sell:
                    SellSideStopLimitOrders.Insert(0, stopLimitOrder);
                    break;
            }

            stopLimitOrder.RegisterOrderBookDeleteHandler(RemoveStopLimitOrder);
            stopLimitOrder.RegisterOrderBookModifyHandler(StopLimitOrderModified);
            TryExecuteTriggers();
        }
Example #5
0
        public void AddStopLimitOrder(IStopLimitOrder stopLimitOrder)
        {
            switch (stopLimitOrder.Way)
            {
            case WayEnum.Buy:
                BuySideStopLimitOrders.Insert(0, stopLimitOrder);
                break;

            case WayEnum.Sell:
                SellSideStopLimitOrders.Insert(0, stopLimitOrder);
                break;
            }

            stopLimitOrder.RegisterOrderBookDeleteHandler(RemoveStopLimitOrder);
            stopLimitOrder.RegisterOrderBookModifyHandler(StopLimitOrderModified);
            TryExecuteTriggers();
        }
Example #6
0
        public void HandleAddStopLimitOrder(IStopLimitOrder stopLimitOrder)
        {
            string symbol = stopLimitOrder.Symbol;

            if (!OrderBooks.ContainsKey(symbol))
            {
                return;
            }

            stopLimitOrder.RegisterOutgoingQueueDeleteHandler(outgoingQueue.EnqueueDeletedStopLimitOrder);
            outgoingQueue.EnqueueAddedStopLimitOrder(stopLimitOrder);
            stopLimitOrder.Trigger.SetTriggerAction(() =>
            {
                stopLimitOrder.Delete();
                var newLimitOrder = orderRepository.NewLimitOrder(stopLimitOrder);
                newLimitOrder.RegisterDeleteNotificationHandler(outgoingQueue.EnqueueDeletedLimitOrder);
                newLimitOrder.RegisterModifyNotificationHandler(outgoingQueue.EnqueueUpdatedLimitOrder);
                newLimitOrder.RegisterFilledNotification(outgoingQueue.EnqueueDeletedLimitOrder);
                newLimitOrder.RegisterFilledNotification((order) => order.Delete());
                HandleAddLimitOrder(newLimitOrder);
            });

            OrderBooks[symbol].AddStopLimitOrder(stopLimitOrder);
        }
 public ILimitOrder NewLimitOrder(IStopLimitOrder stopLimitOrder)
 {
     return NewLimitOrder(stopLimitOrder.Symbol, stopLimitOrder.ClientId, stopLimitOrder.LimitPrice, stopLimitOrder.Quantity, stopLimitOrder.Way);
 }
 private void HandleDeletedStopLimitOrder(IStopLimitOrder stopLimitOrder)
 {
     stopLimitOrder.UnRegisterOrderRepositoryDeleteHandler();
     StopLimitOrders.Remove(stopLimitOrder.ExchangeOrderId);
     ClientStopLimitOrders[stopLimitOrder.ClientId].Remove(stopLimitOrder);
 }
 public ILimitOrder NewLimitOrder(IStopLimitOrder stopLimitOrder)
 {
     return(NewLimitOrder(stopLimitOrder.Symbol, stopLimitOrder.ClientId, stopLimitOrder.LimitPrice, stopLimitOrder.Quantity, stopLimitOrder.Way));
 }
Example #10
0
 private void HandleDeletedStopLimitOrder(IStopLimitOrder stopLimitOrder)
 {
     stopLimitOrder.UnRegisterOrderRepositoryDeleteHandler();
     StopLimitOrders.Remove(stopLimitOrder.ExchangeOrderId);
     ClientStopLimitOrders[stopLimitOrder.ClientId].Remove(stopLimitOrder);
 }
        public void HandleAddStopLimitOrder(IStopLimitOrder stopLimitOrder)
        {
            string symbol = stopLimitOrder.Symbol;
            if (!OrderBooks.ContainsKey(symbol))
                return;

            stopLimitOrder.RegisterOutgoingQueueDeleteHandler(outgoingQueue.EnqueueDeletedStopLimitOrder);
            outgoingQueue.EnqueueAddedStopLimitOrder(stopLimitOrder);
            stopLimitOrder.Trigger.SetTriggerAction(() =>
            {
                stopLimitOrder.Delete();
                var newLimitOrder = orderRepository.NewLimitOrder(stopLimitOrder);
                newLimitOrder.RegisterDeleteNotificationHandler(outgoingQueue.EnqueueDeletedLimitOrder);
                newLimitOrder.RegisterModifyNotificationHandler(outgoingQueue.EnqueueUpdatedLimitOrder);
                newLimitOrder.RegisterFilledNotification(outgoingQueue.EnqueueDeletedLimitOrder);
                newLimitOrder.RegisterFilledNotification((order) => order.Delete());
                HandleAddLimitOrder(newLimitOrder);
            });

            OrderBooks[symbol].AddStopLimitOrder(stopLimitOrder);
        }
 private void StopLimitOrderModified(IStopLimitOrder modifiedStopLimitOrder)
 {
     TryExecuteTriggers();
 }
        public void RemoveStopLimitOrder(IStopLimitOrder stopLimitOrder)
        {
            switch (stopLimitOrder.Way)
            {
                case WayEnum.Buy:
                    BuySideStopLimitOrders.Remove(stopLimitOrder);
                    break;

                case WayEnum.Sell:
                    SellSideStopLimitOrders.Remove(stopLimitOrder);
                    break;
            }
        }
Example #14
0
 private void StopLimitOrderModified(IStopLimitOrder modifiedStopLimitOrder)
 {
     TryExecuteTriggers();
 }