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); }
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); }