/// <summary> /// Subscribe to a trade ticker flow. Ticks are received live. /// </summary> /// <remarks>First tick contains several data (newer first)</remarks> /// <param name="symbol">ex: btcusd</param> /// <param name="callback">Action to execute when a tick arrive</param> /// <returns></returns> public BitfinexApiSubscriptionResponse SubscribeToTrades(string symbol, Action <BitfinexTradeSimpleV2[]> callback) { //create data to send to bitfinex for registration var registration = new BitfinexTradeEventRegistration() { Id = NextRegistrationId(), ChannelName = ChannelEnum.Trades, Callback = callback }; lock (subscriptionLock) { AddEventRegistration(registration); } var data = JsonConvert.SerializeObject(new BitfinexTradeSubscribeRequest(symbol), Formatting.Indented); log?.Trace(data); //send request Socket.Send(data); //wait response var response = (BitfinexApiSubscriptionResponse)WaitSubscriptionNew(registration); return(response); }
public BitfinexApiResult <long> SubscribeToTrades(string symbol, Action <BitfinexTradeSimple[]> handler) { lock (subscriptionLock) { var registration = new BitfinexTradeEventRegistration() { Id = registrationId, ChannelName = "trades", Handler = handler }; AddEventRegistration(registration); socket.Send(JsonConvert.SerializeObject(new BitfinexTradeSubscribeRequest(symbol))); return(WaitSubscription(registration)); } }