// K线历史数据 // symbol: 交易对, 形如 tchbtc, ethbtc,btcbitcny,eosbtc... // period: K线类型, 形如 1min,5min,15min,30min,60min,1day,1week,1month // size : 获取数量, 取值范围[1,2000] public static MarketKLine GetMarketKLine(string symbol, string period, int size) { string strResponse = Http.Get(V1.URL + "/market/history/kline", string.Format("symbol={0}&period={1}&size={2}", symbol, period, size)); if (string.IsNullOrEmpty(strResponse)) { return(null); } Response response = Response.FromString(strResponse); if (response == null || response.code != "0" || response.msg != "suc" || string.IsNullOrEmpty(response.data)) { return(null); } MarketKLine marketKLine = MarketKLine.FromString(response.data); if (marketKLine == null || string.IsNullOrEmpty(marketKLine.symbol)) { return(null); } return(marketKLine); }
public static MarketKLine FromString(string strResponseData) { Json.Dictionary dict = Json.ToDictionary(strResponseData); if (dict == null) { return(null); } MarketKLine marketKLine = new MarketKLine(); marketKLine.symbol = dict["symbol"]; if (string.IsNullOrEmpty(marketKLine.symbol)) { return(null); } Json.Array kline_data = Json.ToArray(Json.GetAt(dict, "kline_data")); foreach (string dataItem in kline_data) { Json.Dictionary dataItemDist = Json.ToDictionary(dataItem); Item item = new Item(); item.id = Int64.Parse(dataItemDist["id"]); item.amount = double.Parse(dataItemDist["amount"]); item.vol = double.Parse(dataItemDist["vol"]); item.high = double.Parse(dataItemDist["high"]); item.low = double.Parse(dataItemDist["low"]); item.close = double.Parse(dataItemDist["close"]); item.open = double.Parse(dataItemDist["open"]); if (marketKLine.kline_data == null) { marketKLine.kline_data = new System.Collections.Generic.List <Item>(); } marketKLine.kline_data.Add(item); } return(marketKLine); }