public static void Analyze(String stock, string startDate, string endDate, string[] filterList)
        {
            //IApplicationContext ctx = ContextRegistry.GetContext();
            StockLog.Log.Info("start to create stock data");
            StockData data1 = new StockData(stock, startDate, endDate, true);//(StockData)ctx.GetObject("StockData");

            StockLog.Log.Info("start to create normal data");
            NormalData gd = new NormalData(data1);//(NormalData)ctx.GetObject("NormalData");

            StockUtil.CreateStockFolder(stock);

            foreach (String filter in filterList)
            {
                BigDealData bdd = new BigDealData(data1, filter);
                StockLog.Log.Info("start to create big deal data " + filter);
                //(BigDealData)ctx.GetObject("BigDealData");
                //RangeData bigdeal = new RangeData(bdd, type); //(RangeData)ctx.GetObject("BigRangeData");
                // RangeData alldeal = new RangeData(gd, type);//(RangeData)ctx.GetObject("AllRangeData");



                foreach (int type in Enum.GetValues(typeof(RangeType)))
                {
                    //String filePath = string.Format(@"{0}{1}\{1}_{2}_{3}_{4}_{5}.csv", Constant.ANALYZE_FOLDER, stock, startDate, endDate, filter, (RangeType)type);
                    String filePath = string.Format(@"{0}{1}\{1}_{3}_{2}.csv", Constant.ANALYZE_FOLDER, stock, (RangeType)type, filter);
                    StockLog.Log.Info("start to analyze " + (RangeType)type);
                    if (!File.Exists(filePath))
                    {
                        RangeData bigdeal = new RangeData(bdd, type); //(RangeData)ctx.GetObject("BigRangeData");
                        RangeData alldeal = new RangeData(gd, type);  //(RangeData)ctx.GetObject("AllRangeData");
                        Dictionary <string, FilterData> big = bigdeal.DataList;
                        Dictionary <string, FilterData> all = alldeal.DataList;
                        FileUtil.WriteFile(filePath, DataUtil.Compare(all, big));
                    }
                    StockLog.Log.Info("End to analyze " + (RangeType)type);
                }
            }
        }