Esempio n. 1
0
        public override double[][] getData()
        {
            //////BOLL: MA(CLOSE, M);
            //////UB: BOLL + 2 * STD(CLOSE, M);
            //////LB: BOLL - 2 * STD(CLOSE, M);
            List <double> boll = new List <double>();
            List <double> ub   = new List <double>();
            List <double> lb   = new List <double>();

            for (int i = 0; i < OrgData.Length; i++)
            {
                int           M       = _M;
                List <double> PastVal = null;
                if (i < M)
                {
                    PastVal = OrgData.ToList <double>();
                }
                else
                {
                    PastVal = OrgData.ToList <double>().GetRange(OrgData.Length - M, M);
                }
                double std = ProbMath.CalculateStdDev(PastVal);
                double ma  = PastVal.Average();
                boll.Add(ma);
                ub.Add(ma + 2 * std);
                lb.Add(ma - 2 * std);
            }

            double[][] r = new double[3][];
            r[0]        = boll.ToArray();
            r[1]        = ub.ToArray();
            r[2]        = lb.ToArray();
            _LastResult = r;//所有子类此方法内均需执行该语句
            return(r);
        }