Exemple #1
0
        async Task <SimpleDOM> IExecutionStrategy.GetDOM(Instrument instr, int depth)
        {
            var cmd = new OrderBookL2GETRequestParams()
            {
                Symbol = instr.Symbol, Depth = depth
            };
            var levels = await _bitmexSvc.Execute(BitmexApiUrls.OrderBook.GetOrderBookL2, cmd);

            var bids = new List <Tuple <decimal, decimal> >();
            var asks = new List <Tuple <decimal, decimal> >();

            foreach (var l in levels)
            {
                var t = new Tuple <decimal, decimal>(l.Price, l.Size);
                if (string.Equals("Sell", l.Side, StringComparison.OrdinalIgnoreCase))
                {
                    asks.Add(t);
                }
                else
                {
                    bids.Add(t);
                }
            }
            return(await Task.FromResult(new SimpleDOM(bids, asks)));
        }
        public void should_return_orderbook_with_certain_depth()
        {
            // arrange
            var @params = new OrderBookL2GETRequestParams()
            {
                Symbol = "XBTUSD",
                Depth  = 2
            };

            // act
            var result = Sut.Execute(BitmexApiUrls.OrderBook.GetOrderBookL2, @params).Result;

            // assert
            result.Should().NotBeNull();
            result.Count.Should().Be(4);
        }