Exemple #1
0
        public static CandlestickInterval ToTradeViewCandlestickInterval(this KucoinKlineInterval candlestickInterval)
        {
            switch (candlestickInterval)
            {
            case KucoinKlineInterval.OneMinute:
                return(CandlestickInterval.Minute);

            case KucoinKlineInterval.ThreeMinutes:
                return(CandlestickInterval.Minutes3);

            case KucoinKlineInterval.FiveMinutes:
                return(CandlestickInterval.Minutes5);

            case KucoinKlineInterval.FifteenMinutes:
                return(CandlestickInterval.Minutes15);

            case KucoinKlineInterval.ThirtyMinutes:
                return(CandlestickInterval.Minutes30);

            case KucoinKlineInterval.OneHour:
                return(CandlestickInterval.Hour);

            case KucoinKlineInterval.TwoHours:
                return(CandlestickInterval.Hours2);

            case KucoinKlineInterval.FourHours:
                return(CandlestickInterval.Hours4);

            case KucoinKlineInterval.SixHours:
                return(CandlestickInterval.Hours6);

            case KucoinKlineInterval.EightHours:
                return(CandlestickInterval.Hours8);

            case KucoinKlineInterval.TwelfHours:
                return(CandlestickInterval.Hours12);

            case KucoinKlineInterval.OneDay:
                return(CandlestickInterval.Day);

            case KucoinKlineInterval.OneWeek:
                return(CandlestickInterval.Week);

            default:
                throw new NotImplementedException();
            }
        }
        /// <summary>
        /// Subscribe to kline updates
        /// </summary>
        /// <param name="symbol">Symbol to subscribe</param>
        /// <param name="interval">Interval of the klines</param>
        /// <param name="onData">Data handler</param>
        /// <returns>A stream subscription. This stream subscription can be used to be notified when the socket is disconnected/reconnected and to unsubscribe</returns>
        public async Task <CallResult <UpdateSubscription> > SubscribeToKlineUpdatesAsync(string symbol, KucoinKlineInterval interval, Action <DataEvent <KucoinStreamCandle> > onData)
        {
            symbol.ValidateKucoinSymbol();

            var innerHandler = new Action <DataEvent <JToken> >(tokenData => {
                InvokeHandler(tokenData.As(GetData <KucoinStreamCandle>(tokenData), symbol), onData);
            });

            var request = new KucoinRequest(NextId().ToString(CultureInfo.InvariantCulture), "subscribe", $"/market/candles:{symbol}_{JsonConvert.SerializeObject(interval, new KlineIntervalConverter(false))}", false);

            return(await SubscribeAsync(request, null, false, innerHandler).ConfigureAwait(false));
        }
Exemple #3
0
 /// <summary>
 /// Subscribe to kline updates
 /// </summary>
 /// <param name="symbol">Symbol to subscribe</param>
 /// <param name="interval">Interval of the klines</param>
 /// <param name="onData">Data handler</param>
 /// <returns>A stream subscription. This stream subscription can be used to be notified when the socket is disconnected/reconnected and to unsubscribe</returns>
 public CallResult <UpdateSubscription> SubscribeToKlineUpdates(string symbol, KucoinKlineInterval interval,
                                                                Action <KucoinStreamCandle> onData) => SubscribeToKlineUpdatesAsync(symbol, interval, onData).Result;