Exemplo n.º 1
0
        /// <summary>
        /// 根据股票数据或者期货数据整理得到的数组
        /// </summary>
        /// <param name="data">DataTable格式的股票或者期货数组</param>
        /// <returns>List格式的数据</returns>
        public stockFormat[] GetStockArray(DataTable data)
        {
            stockFormat[] stockArray = new stockFormat[28802];
            int           lastTime   = 0;

            foreach (DataRow row in data.Rows)
            {
                stockFormat stock = new stockFormat();
                stock.ask  = new stockPrice[5];
                stock.bid  = new stockPrice[5];
                stock.code = (int)row["Code"];
                stock.date = (int)row["Date"];
                //剔除非交易时间的交易数据。
                int now = (int)row["Time"] + (int)row["Tick"] * 500;
                if (now < 93000000 || (now > 113000000 && now < 130000000) || (now > 150000000) || (int)row["Tick"] >= 2)
                {
                    continue;
                }
                if (now <= lastTime)
                {
                    continue;
                }
                stock.time      = now;
                lastTime        = now;
                stock.lastPrice = (double)row["LastPrice"];
                for (int i = 1; i <= 5; i++)
                {
                    stock.ask[i - 1] = new stockPrice((double)row["Ask" + i.ToString()], (double)row["Askv" + i.ToString()]);
                    stock.bid[i - 1] = new stockPrice((double)row["Bid" + i.ToString()], (double)row["Bidv" + i.ToString()]);
                }
                stock.preClose = (double)row["PreClose"];
                stockArray[TradeDays.TimeToIndex(now)] = stock;
            }
            return(stockArray);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 根据股票数据或者期货数据整理得到的链表
        /// </summary>
        /// <param name="data">DataTable格式的股票或者期货数据</param>
        /// <returns>List格式的数据</returns>
        public List <stockFormat> GetStockList(DataTable data)
        {
            List <stockFormat> stockList = new List <stockFormat>();
            int lastTime = 0;

            foreach (DataRow row in data.Rows)
            {
                stockFormat stock = new stockFormat();
                stock.ask  = new stockPrice[5];
                stock.bid  = new stockPrice[5];
                stock.code = (int)row["Code"];
                stock.date = (int)row["Date"];
                //剔除非交易时间的交易数据。
                int now = (int)row["Time"] + (int)row["Tick"] * 500;
                if (now < 93000000 || (now > 113000000 && now < 130000000) || (now > 150000000) || (int)row["Tick"] >= 2)
                {
                    continue;
                }
                if (now <= lastTime)
                {
                    continue;
                }
                stock.time      = now;
                lastTime        = now;
                stock.lastPrice = (double)row["LastPrice"];
                for (int i = 1; i <= 5; i++)
                {
                    stock.ask[i - 1] = new stockPrice((double)row["Ask" + i.ToString()], (double)row["Askv" + i.ToString()]);
                    stock.bid[i - 1] = new stockPrice((double)row["Bid" + i.ToString()], (double)row["Bidv" + i.ToString()]);
                }
                stock.preClose = (double)row["PreClose"];
                stockList.Add(stock);
            }
            return(stockList);
        }