Пример #1
0
        public async Task ReceiveOrderBook()
        {
            await _clientWebSocket.ConnectAsync(CancellationToken.None);

            var info = await _clientWebSocket.GetResponseAsync(CancellationToken.None);

            Assert.NotNull(info);

            var request = SubscribeOrderBooksRequest.BuildRequest("BTCUSD", "", "R0");

            await _clientWebSocket.SendRequestAsync(request, CancellationToken.None);

            var successfull = await _clientWebSocket.GetResponseAsync(CancellationToken.None);

            var respose = JsonConvert.DeserializeObject <SubscribedResponse>(successfull);

            var snapshot = await _clientWebSocket.GetResponseAsync(CancellationToken.None);

            OrderBookSnapshotResponse.Parse(snapshot);

            var update = await _clientWebSocket.GetResponseAsync(CancellationToken.None);

            OrderBookUpdateResponse.Parse(update);

            Assert.NotNull(respose);
        }
        public async Task ReceiveOrderBook()
        {
            await _clientWebSocket.ConnectAsync();

            var info = await _clientWebSocket.GetResponseAsync();

            Assert.NotNull(info);

            var request = new SubscribeRequest
            {
                Event   = "subscribe",
                Channel = "book",
                Pair    = "BTCUSD",
                Prec    = "R0"
            };
            await _clientWebSocket.SendRequestAsync(request);

            var successfull = await _clientWebSocket.GetResponseAsync();

            var respose = JsonConvert.DeserializeObject <SubscribedResponse>(successfull);

            var snapshot = await _clientWebSocket.GetResponseAsync();

            var obsh = OrderBookSnapshotResponse.Parse(snapshot);


            var update = await _clientWebSocket.GetResponseAsync();

            var upd = OrderBookUpdateResponse.Parse(update);

            Assert.NotNull(respose);
        }
        private async Task HandleResponse(OrderBookSnapshotResponse snapshot)
        {
            var pair = _channels[snapshot.ChannelId].Pair;

            await HandleOrderBookSnapshotAsync(pair,
                                               DateTime.UtcNow, // TODO: Get this from the server
                                               snapshot.Orders.Select(BitfinexModelConverter.ToOrderBookItem));
        }
        private OrderBookLevel[] ConvertSnapshot(OrderBookSnapshotResponse snapshot)
        {
            var bids   = ConvertLevels(snapshot.Market, snapshot.Data.Bids);
            var asks   = ConvertLevels(snapshot.Market, snapshot.Data.Asks);
            var levels = bids.Concat(asks).ToArray();

            return(levels);
        }
        private void HandleSnapshot(OrderBookSnapshotResponse snapshot)
        {
            // received snapshot, convert and stream
            var levels = ConvertSnapshot(snapshot);
            var bulk   = new OrderBookLevelBulk(OrderBookAction.Insert, levels, CryptoOrderBookType.L2);

            FillBulk(snapshot, bulk);
            StreamSnapshot(bulk);
        }
        private async Task <dynamic> GetResponse()
        {
            var json = await Messenger.GetResponseAsync(CancellationToken);

            var result = EventResponse.Parse(json) ??
                         TickerResponse.Parse(json) ??
                         OrderBookSnapshotResponse.Parse(json) ??
                         (dynamic)OrderBookUpdateResponse.Parse(json) ??
                         HeartbeatResponse.Parse(json);

            return(result);
        }
 private bool HandleObjectMessage(string msg)
 {
     // ********************
     // ADD OBJECT HANDLERS BELOW
     // ********************
     //var response = FtxJsonSerializer.Deserialize<JObject>(msg);
     return
         (SubscribedResponse.TryHandle(msg, Streams.SubscribedSubject) ||
          ErrorResponse.TryHandle(msg, Streams.ErrorSubject) ||
          PongResponse.TryHandle(msg, Streams.PongSubject) ||
          TickerResponse.TryHandle(msg, Streams.TickerSubject) ||
          OrderBookUpdateResponse.TryHandle(msg, Streams.OrderBookUpdateSubject, "update") ||
          OrderBookSnapshotResponse.TryHandle(msg, Streams.OrderBookSnapshotSubject, "partial") ||
          // MarketsUpdateResponse.TryHandle(msg, Streams.MarketsUpdateSubject, "update") ||
          // MarketsSnapshotResponse.TryHandle(msg, Streams.MarketsSnapshotSubject, "partial") ||
          MarketsResponse.TryHandle(msg, Streams.MarketsSubject) ||
          TradeResponse.TryHandle(msg, Streams.TradesSubject) ||
          OrdersResponse.TryHandle(msg, Streams.OrdersSubject) ||
          FillsResponse.TryHandle(msg, Streams.FillsSubject));
 }
Пример #8
0
        private bool HandleObjectMessage(string msg)
        {
            var response = CoinbaseJsonSerializer.Deserialize <JObject>(msg);

            // ********************
            // ADD OBJECT HANDLERS BELOW
            // ********************

            return

                (HeartbeatResponse.TryHandle(response, Streams.HeartbeatSubject) ||
                 TradeResponse.TryHandle(response, Streams.TradesSubject) ||
                 OrderBookUpdateResponse.TryHandle(response, Streams.OrderBookUpdateSubject) ||
                 OrderBookSnapshotResponse.TryHandle(response, Streams.OrderBookSnapshotSubject) ||
                 TickerResponse.TryHandle(response, Streams.TickerSubject) ||

                 ErrorResponse.TryHandle(response, Streams.ErrorSubject) ||
                 SubscribeResponse.TryHandle(response, Streams.SubscribeSubject) ||

                 false);
        }