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); }