include <vector> using namespace std; vector<double> edvec; /* Calculate EMA * * includes: <vector> * envovled: global vector<double> devec; */ //为了与EMA(X,N)一致 //待修改 double EMA(double x,int n) { //开始计算EMA值 double k = 2.0 / (n + 1.0); //计算出序数 double ema = edvec[0]; //第一天ema等于当天收盘价 for(int i = 1;i < edvec.size();i++){ //第二天以后,当天收盘。收盘价乘以系数再加上昨天EMA乘以系数-1 ema = edvec[i] * k + ema * (1 - k); } return ema; } //不涉及全局变量的版本 //待修改
double EMA(vector<double> dvec,int n) { //开始计算EMA值 double k = 2.0 / (n + 1.0); //计算出序数 double ema = dvec[0]; //第一天ema等于当天收盘价 for(int i = 1;i < dvec.size();i++){ //第二天以后,当天收盘。收盘价乘以系数再加上昨天EMA乘以系数-1 ema = dvec[i] * k + ema * (1 - k); } return ema; }