calculateMACD method
void
calculateMACD()
Implementation
void calculateMACD() {
for (int len = values.length; _i < len; _i++) {
AceEntity item = values[_i];
double closePrice = item.close;
if (_i == 0) {
_ema12 = closePrice;
_ema26 = closePrice;
} else {
// EMA(12) = 前一日EMA(12) X 11/13 + 今日收盘价 X 2/13
_ema12 = _ema12 * 11 / 13 + closePrice * 2 / 13;
// EMA(26) = 前一日EMA(26) X 25/27 + 今日收盘价 X 2/27
_ema26 = _ema26 * 25 / 27 + closePrice * 2 / 27;
}
// DIF = EMA(12) - EMA(26) 。
// 今日DEA = (前一日DEA X 8/10 + 今日DIF X 2/10)
// 用(DIF-DEA)*2即为MACD柱状图。
_dif = _ema12 - _ema26;
_dea = _dea * 8 / 10 + _dif * 2 / 10;
_macd = (_dif - _dea) * 2;
item.dif = _dif;
item.dea = _dea;
item.macd = _macd;
}
}