/// <summary> /// 获取所有k线数据 /// </summary> /// <returns></returns> private static async Task GetKline() { var kline = new SymbolKlineSet("BTCUSDT"); var taskList = new List <Task>(); foreach (var interval in ConstVar.KlineIntervals) { var task = Task.Run(async() => { var res = await $"{ConstVar.BaseUrl}/klines?symbol=BTCUSDT&interval={interval}".GetAsync(1); if (res.StatusCode == 200) { var result = await res.GetJsonAsync <List <object[]> >(); kline.IntervalKline[interval] = result; } else if (res.StatusCode == 429) { //break; } }); taskList.Add(task); } Task.WaitAll(taskList.ToArray()); PreloadResource.Klines[kline.Symbol] = kline; }
/// <summary> /// 获取指定交易对k线数据,默认获取1000条 /// </summary> /// <returns></returns> public static async Task GetKline(string symbol, string interval, int number = 1000) { var res = await $"{ConstVar.BaseUrl}/klines?limit={number}&symbol={symbol}&interval={interval}".GetAsync(1); if (res.StatusCode == 200) { var result = await res.GetJsonAsync <List <object[]> >(); if (LoadedResource.Klines.ContainsKey(symbol)) { LoadedResource.Klines[symbol].IntervalKline[interval] = result; } else { var kline = new SymbolKlineSet(symbol); kline.IntervalKline[interval] = result; LoadedResource.Klines[symbol] = kline; } LoadedResource.Klines[symbol].UpdateTime = DateTime.Now; } else if (res.StatusCode == 429) { //break; } }