Exemple #1
0
        // 成交历史数据
        // symbol: 交易对, 形如 tchbtc, ethbtc,btcbitcny,eosbtc...
        // size  : 获取数量, 取值范围[1,2000]
        public static MarketTrade GetMarketTrade(string symbol, int size)
        {
            string strResponse = Http.Get(V1.URL + "/market/history/trade", string.Format("symbol={0}&size={1}", symbol, 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);
            }

            MarketTrade marketTrade = MarketTrade.FromString(response.data);

            if (marketTrade == null || string.IsNullOrEmpty(marketTrade.symbol))
            {
                return(null);
            }

            return(marketTrade);
        }
        public static MarketTrade FromString(string strResponseData)
        {
            Json.Dictionary dict = Json.ToDictionary(strResponseData);
            if (dict == null)
            {
                return(null);
            }

            MarketTrade marketTrade = new MarketTrade();

            marketTrade.symbol = dict["symbol"];
            if (string.IsNullOrEmpty(marketTrade.symbol))
            {
                return(null);
            }

            int size = int.Parse(dict["size"]);

            Json.Array trade_data = Json.ToArray(Json.GetAt(dict, "trade_data"));
            foreach (string dataItem in trade_data)
            {
                Json.Dictionary dataItemDist = Json.ToDictionary(dataItem);
                Item            item         = new Item();
                item.id     = int.Parse(dataItemDist["id"]);
                item.side   = dataItemDist["side"];
                item.price  = double.Parse(dataItemDist["price"]);
                item.vol    = double.Parse(dataItemDist["vol"]);
                item.amount = double.Parse(dataItemDist["amount"]);
                item.ts     = Int64.Parse(dataItemDist["ts"]);
                item.ds     = dataItemDist["ds"];

                if (marketTrade.trade_data == null)
                {
                    marketTrade.trade_data = new System.Collections.Generic.List <Item>();
                }

                marketTrade.trade_data.Add(item);
            }
            if (marketTrade.trade_data.Count != size)
            {
                return(null);
            }

            return(marketTrade);
        }