public static void GetAllHistroyText()
        {
            DateTime start = new DateTime(2000, 1, 1);
            DateTime end   = new DateTime(2018, 2, 10);
            var      all   = StockBaseInfo.FindAll();
            int      index = 1;

            foreach (var item in all)
            {
                XTrace.WriteLine("进度:{0}/{1}", index++, all.Count);
                GetHistoryFromWeb(item.Code, start, end);
            }
        }
        public static void PraseHistoryDataV2()
        {
            var all   = StockBaseInfo.FindAll(StockBaseInfo._.Kind, 1);
            int index = 1;

            Parallel.For(0, all.Count, new ParallelOptions()
            {
                MaxDegreeOfParallelism = 16
            }, i =>
            {
                var es = FindByCode(all[i].Code);
                if (es != null)
                {
                    var list = ParseText(all[i].Code, es.HisText);
                    if (list.Count > 0)
                    {
                        StockDayData.Meta.ConnName = "stock_" + all[i].Code;
                        list.Save(true);
                    }
                }
                XTrace.WriteLine("进度:{0}/{1},Code={2}", index++, all.Count, all[i].Code);
            });
        }