Esempio n. 1
0
        public List <Rank> Process()
        {
            lstRankAll = GetFundEquityInfo.Instance.GetAllRankList();
            foreach (Rank oRank in lstRankAll)
            {
                fdpInfo = GetFundEquityInfo.Instance.GetFormatedFundInfo(oRank.Symbol, DateService.ThisTimeLastYear(), DateTime.Now);

                double[] emaFast  = MathUtil.CalcEMA(fdpInfo.getPrice(PriceConstants.PRICE_CLOSE), FastPeriod);
                double[] emaSlow  = MathUtil.CalcEMA(fdpInfo.getPrice(PriceConstants.PRICE_CLOSE), SlowPeriod);
                double[] emaDiff  = MathUtil.CalcDiff(emaFast, emaSlow);
                double[] dea      = MathUtil.CalcEMA(emaDiff, SignalPeriod);
                double[] macdDiff = MathUtil.CalcDiff(emaDiff, dea);

                if (macdDiff[macdDiff.Length - 1] > 0)
                {
                    lstRankSelected.Add(oRank);
                }
            }
            return(lstRankSelected);
        }