Example #1
0
        public void SubscribeCandlesticks(string symbol, Interface.Model.CandlestickInterval candlestickInterval, int limit, Action <CandlestickEventArgs> callback, Action <Exception> exception, CancellationToken cancellationToken)
        {
            try
            {
                var interval         = candlestickInterval.ToBinanceCandlestickInterval();
                var canclestickCache = new CandlestickCache(binanceApi, new CandlestickWebSocketClient());
                canclestickCache.Subscribe(symbol, interval, limit, e =>
                {
                    if (cancellationToken.IsCancellationRequested)
                    {
                        canclestickCache.Unsubscribe();
                        return;
                    }

                    try
                    {
                        var candlesticks = (from c in e.Candlesticks select NewCandlestick(c)).ToList();
                        callback.Invoke(new CandlestickEventArgs {
                            Candlesticks = candlesticks
                        });
                    }
                    catch (Exception ex)
                    {
                        canclestickCache.Unsubscribe();
                        exception.Invoke(ex);
                    }
                });
            }
            catch (Exception ex)
            {
                exception.Invoke(ex);
            }
        }
Example #2
0
        public async Task <IEnumerable <Interface.Model.Candlestick> > GetCandlesticksAsync(string symbol, Interface.Model.CandlestickInterval interval, DateTime startTime, DateTime endTime, int limit = 0, CancellationToken token = default(CancellationToken))
        {
            var candlestickInterval = interval.ToBinanceCandlestickInterval();
            var results             = await binanceApi.GetCandlesticksAsync(symbol, candlestickInterval, startTime, endTime, limit, token).ConfigureAwait(false);

            var candlesticks = results.Select(cs => NewCandlestick(cs)).ToList();

            return(candlesticks);
        }