public async Task <OhlcData> GetOhlcAsync(OhlcContext context) { var api = ApiProvider.GetApi(context); var pairCode = context.Pair.ToTicker(this); var interval = ConvertToBinanceInterval(context.Market); var startDate = (long)(context.Range.UtcFrom.ToUnixTimeStamp() * 1000); var endDate = (long)(context.Range.UtcTo.ToUnixTimeStamp() * 1000); var rRaw = await api.GetCandlestickBarsAsync(pairCode, interval, startDate, endDate).ConfigureAwait(false); CheckResponseErrors(rRaw); var r = rRaw.GetContent(); var ohlc = new OhlcData(context.Market); var seriesId = OhlcUtilities.GetHash(context.Pair, context.Market, Network); foreach (var rEntry in r) { var dateTime = ((long)(rEntry[0] / 1000)).ToUtcDateTime(); ohlc.Add(new OhlcEntry(seriesId, dateTime, this) { Open = rEntry[1], Close = rEntry[4], Low = rEntry[3], High = rEntry[2], VolumeTo = rEntry[7], // Quote asset volume VolumeFrom = rEntry[5], // Volume WeightedAverage = 0 // BUG: no WeightedAverage data returned from API. }); } ohlc.Reverse(); return(ohlc); }