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); }
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); }
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 IEnumerable <OrderBookLevelBulk> ConvertDiff(OrderBookUpdateResponse update) { var converted = ConvertLevels(update.ProductId, update.Changes); var group = converted.GroupBy(RecognizeAction).ToArray(); foreach (var actionGroup in group) { var bulk = new OrderBookLevelBulk(actionGroup.Key, actionGroup.ToArray(), CryptoOrderBookType.L2); FillBulk(update, bulk); yield return(bulk); } }
private IEnumerable <OrderBookLevelBulk> ConvertDiff(OrderBookUpdateResponse update) { var convertedBids = ConvertLevels(update.Market, update.Data.Asks); var convertedAsks = ConvertLevels(update.Market, update.Data.Bids); var converted = convertedAsks.Concat(convertedBids); var group = converted.GroupBy(RecognizeAction).ToArray(); foreach (var actionGroup in group) { var bulk = new OrderBookLevelBulk(actionGroup.Key, actionGroup.ToArray(), CryptoOrderBookType.L2); FillBulk(update, bulk); yield return(bulk); } }
private async Task HandleResponse(OrderBookUpdateResponse response) { var orderBookItem = BitfinexModelConverter.ToOrderBookItem(response); var pair = _channels[response.ChannelId].Pair; response.Pair = pair; if (response.Price == 0) { await HandleOrdersEventsAsync(response.Pair, OrderBookEventType.Delete, new[] { orderBookItem }); } else { await HandleOrdersEventsAsync(response.Pair, OrderBookEventType.Add, new[] { orderBookItem }); } }
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)); }
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); }
private void HandleBook(OrderBookUpdateResponse update) { BufferData(update); }