MemExchange.Server.Processor.Book.OrderRepository.NewLimitOrder C# (CSharp) Method

NewLimitOrder() public method

public NewLimitOrder ( IStopLimitOrder stopLimitOrder ) : ILimitOrder
stopLimitOrder IStopLimitOrder
return ILimitOrder
        public ILimitOrder NewLimitOrder(IStopLimitOrder stopLimitOrder)
        {
            return NewLimitOrder(stopLimitOrder.Symbol, stopLimitOrder.ClientId, stopLimitOrder.LimitPrice, stopLimitOrder.Quantity, stopLimitOrder.Way);
        }

Same methods

OrderRepository::NewLimitOrder ( LimitOrderDto dtoLimitOrder ) : ILimitOrder
OrderRepository::NewLimitOrder ( string symbol, int clientId, double price, int quantity, WayEnum way ) : ILimitOrder

Usage Example

        public void ShouldCreateNewOrderBookItMatchItAndRemoveIt()
        {
            var repo = new OrderRepository();
            var limitAlgo = new LimitOrderMatchingAlgorithm(new DateService());
            var marketAlgo = new MarketOrderMatchingAlgorithm(new DateService());
            var level1 = new OrderBookBestBidAsk("ABC");
            var book = new OrderBook("ABC", limitAlgo, marketAlgo, level1);

            var sellOrder1 = repo.NewLimitOrder("ABC", 9, 88.2d, 100, WayEnum.Sell);
            book.AddLimitOrder(sellOrder1);

            var buyOrder1 = repo.NewLimitOrder("ABC", 9, 88.0d, 50, WayEnum.Buy);
            book.AddLimitOrder(buyOrder1);

            Assert.AreEqual(88.2d, level1.BestAskPrice);
            Assert.AreEqual(88.0d, level1.BestBidPrice);

            buyOrder1.Modify(50, 88.2d);

            Assert.AreEqual(88.2d, level1.BestAskPrice);
            Assert.IsNull(level1.BestBidPrice);

            var retrievedBuyOrder = repo.TryGetLimitOrder(buyOrder1.ExchangeOrderId);
            Assert.IsNull(retrievedBuyOrder);
        }
All Usage Examples Of MemExchange.Server.Processor.Book.OrderRepository::NewLimitOrder