private OrderBookAction RecognizeAction(RawBook book) { if (book.Price > 0) { return(OrderBookAction.Update); } return(OrderBookAction.Delete); }
private OrderBookLevelBulk ConvertDiff(RawBook book) { var converted = ConvertLevel(book); var action = RecognizeAction(book); var bulk = new OrderBookLevelBulk(action, new[] { converted }, CryptoOrderBookType.L3); FillBulk(book, bulk); return(bulk); }
private OrderBookLevel ConvertLevel(RawBook x) { return(new OrderBookLevel ( x.OrderId.ToString(CultureInfo.InvariantCulture), ConvertSide(x.Amount), x.Price, x.Amount, null, x.Pair )); }
private void HandleBook(RawBook book) { BufferData(book); }
private void OnSubscription(SubscribedResponse response) { _streams.SubscriptionSubject.OnNext(response); var channelId = response.ChanId; // ******************** // ADD HANDLERS BELOW // ******************** switch (response.Channel) { case "ticker": _channelIdToHandler[channelId] = (data, config) => Ticker.Handle(data, response, config, _streams.TickerSubject); break; case "trades": //if pair is null means that is funding if (response.Pair == null) { _channelIdToHandler[channelId] = (data, config) => Funding.Handle(data, response, config, _streams.FundingsSubject); } else { _channelIdToHandler[channelId] = (data, config) => Trade.Handle(data, response, config, _streams.TradesSubject, _streams.TradesSnapshotSubject); } break; case "candles": _channelIdToHandler[channelId] = (data, config) => Candles.Handle(data, response, _streams.CandlesSubject); break; case "book": if ("R0".Equals(response.Prec, StringComparison.OrdinalIgnoreCase)) { _channelIdToHandler[channelId] = (data, config) => RawBook.Handle(data, response, config, _streams.RawBookSubject, _streams.RawBookSnapshotSubject, _streams.BookChecksumSubject); } else { _channelIdToHandler[channelId] = (data, config) => Book.Handle(data, response, config, _streams.BookSubject, _streams.BookSnapshotSubject, _streams.BookChecksumSubject); } break; case "status": if (response.Key.StartsWith("deriv")) { _channelIdToHandler[channelId] = (data, config) => DerivativePairStatus.Handle(data, response, _streams.DerivativePairSubject); } if (response.Key.StartsWith("liq")) { _channelIdToHandler[channelId] = (data, config) => LiquidationFeedStatus.Handle(data, response, _streams.LiquidationFeedSubject); } break; //default: // Log.Warning($"Missing subscription handler '{response.Channel}'"); // break; } }