コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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));
            }
        }