Esempio n. 1
0
        private void HandleSnapshot(MarketByPricePullResponse response)
        {
            // received snapshot, convert and stream
            var levels = ConvertLevels(response);
            var bulk   = new OrderBookLevelBulk(OrderBookAction.Insert, levels, CryptoOrderBookType.L2);

            FillBulk(response, bulk);
            StreamSnapshot(bulk);
        }
        private bool TryHandlePullResponses(string message)
        {
            if (MarketByPricePullResponse.TryParse(Serializer, message, out var marketByPrice))
            {
                Streams.MarketByPricePullSubject.OnNext(marketByPrice);
                return(true);
            }

            return(false);
        }
Esempio n. 3
0
        private void FillBulk(MarketByPricePullResponse response, OrderBookLevelBulk bulk)
        {
            if (response == null)
            {
                return;
            }

            bulk.ExchangeName    = ExchangeName;
            bulk.ServerTimestamp = response.Timestamp.DateTime;
        }
        private void Handle(MarketByPricePullResponse msg)
        {
            for (var i = 0; i < msg.Data?.Bids.Length; ++i)
            {
                var bid = msg.Data.Bids[i];

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

            for (var i = 0; i < msg.Data?.Asks.Length; ++i)
            {
                var bid = msg.Data.Asks[i];

                _logger.LogInformation($"Market by price pull {msg.ParseSymbolFromTopic()} | [ask {i}: price={bid.Price} size={bid.Size}]");
            }
        }
Esempio n. 5
0
        private OrderBookLevel[] ConvertLevels(MarketByPricePullResponse response)
        {
            var symbol = response.ParseSymbolFromTopic();

            return(ConvertLevels(symbol, response.Data?.Bids, response.Data?.Asks));
        }