public AppFilterItem(AppFilterType type, int subType = 0, double param1 = 0.0, string param2 = "")
 {
     m_type    = type;
     m_subType = subType;
     m_param1  = param1;
     m_param2  = param2;
 }
        public List <string> doFilter(List <string> stocks)
        {
            List <string> src = new List <string>();

            src.AddRange(stocks);
            List <string> target = new List <string>();

            target.AddRange(stocks);
            for (int i = 0; i < ms_filterSequence.Length; i++)
            {
                AppFilterType type = ms_filterSequence[i];
                if (m_conditionMap.ContainsKey(type))
                {
                    AppFilterItem item = m_conditionMap[type];
                    IStockFilter  flt  = item.generateFilter();
                    if (flt != null)
                    {
                        target = flt.filter(src);
                        outputInfo(item, src.Count, target.Count);
                        src.Clear();
                        src.AddRange(target);
                    }
                }
            }

            return(target);
        }