Пример #1
0
        private bool TryHandlePullResponses(string message)
        {
            if (MarketCandlestickPullResponse.TryParse(Serializer, message, out var marketCandlestick))
            {
                Streams.CandlestickPullSubject.OnNext(marketCandlestick);
                return(true);
            }

            if (MarketDepthPullResponse.TryParse(Serializer, message, out var marketDepth))
            {
                Streams.DepthPullSubject.OnNext(marketDepth);
                return(true);
            }

            if (MarketTradeDetailPullResponse.TryParse(Serializer, message, out var marketTradeDetail))
            {
                Streams.TradeDetailPullSubject.OnNext(marketTradeDetail);
                return(true);
            }

            if (MarketDetailsPullResponse.TryParse(Serializer, message, out var marketDetails))
            {
                Streams.MarketDetailsPullSubject.OnNext(marketDetails);
                return(true);
            }

            return(false);
        }
Пример #2
0
        private void Handle(MarketDepthPullResponse msg)
        {
            var len = Math.Min(Math.Min(10, msg.Data?.Bids.Length ?? 0), msg.Data?.Asks.Length ?? 0);

            for (var i = 0; i < len; ++i)
            {
                var bid = msg.Data !.Bids[i];
                var ask = msg.Data !.Asks[i];

                _logger.LogInformation(
                    $"Market depth update {msg.ParseSymbolFromTopic()} | [bid {i}: price={bid.Price} size={bid.Size}] [ask {i}: price={ask.Price} size={ask.Size}]");
            }
        }