Пример #1
0
        public Linear Calc(Stock stock)
        {
            int    idx         = 0;
            double Molecule    = 0;
            double Denominator = 0;

            List <int> ls_key = new List <int>(stock.sdata.Keys);
            int        index  = 0;

            index = stock.sdata.IndexOfKey(stock.runData.cur_date);
            if (index < CountNum)
            {
                return(this);
            }

            double ay = macd.Calc(stock);
            double ax = (1.0 + CountNum) / 2;

            for (int x = 1; x <= CountNum; x++)
            {
                idx          = index - CountNum + x - 1;
                Molecule    += x * stock.sdata[ls_key[idx]].close;
                Denominator += x * x;
            }
            Molecule    -= CountNum * ax * ay;
            Denominator -= CountNum * ax * ax;

            b = Math.Round(Molecule / Denominator, 4);
            a = Utility.Round2(ay - b * ax);

            return(this);
        }
Пример #2
0
 public int ProcessData(TrendData trend)
 {
     ma5.Calc(trend);
     ma10.Calc(trend);
     ma20.Calc(trend);
     ma30.Calc(trend);
     ma90.Calc(trend);
     //CalcBuyInfo(trend);
     return(EST.EST_OK);
 }