示例#1
0
        /// <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;
        }
示例#2
0
        /// <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;
            }
        }