Beispiel #1
0
        /// <summary>
        /// Получение данных
        /// </summary>
        /// <param name="ticker">Валютная пара</param>
        /// <param name="timeFrame">Таймфрейм</param>
        /// <param name="amount">Кол-во свечей</param>
        /// <returns>Список свечей</returns>
        public IList <Candle> GetData(string ticker, Timeframe timeFrame, int amount)
        {
            var portionCount = amount > 1000 ? 1000 : amount;

            var candles = _client.GetCandles(MapTimeframe(timeFrame), ticker, portionCount, null, DateTime.Now.ToUniversalTime());
            IList <BitfinexCandle> candlesData = candles.Data.ToList();

            if (portionCount == 1000)
            {
                for (int i = 1000; i < amount; i += 1000)
                {
                    var data = candlesData.ToList();
                    if (data.Count() != 0)
                    {
                        var morecandles = _client.GetCandles(MapTimeframe(timeFrame), ticker, 1000, null,
                                                             data.Last().Timestamp.AddMinutes(-5)); //TODO убрать хардкод
                        candlesData = data.Concat(morecandles.Data).ToList();
                    }
                }
            }

            return(MapBitfinexCandleToBotCandles(candlesData.OrderBy(d => d.Timestamp), ticker, timeFrame).ToList());
        }