callEMV method
dynamic
callEMV(
- dynamic high,
- dynamic low,
- dynamic vol,
- dynamic p,
- dynamic p2,
p = 14, p2 = 9
Implementation
callEMV(high, low, vol, p, p2) {
//无参数
// A=(今日最高+今日最低)/2
// B=(前日最高+前日最低)/2
// C=今日最高-今日最低
// EM=(A-B)*C/今日成交额
// EMV=N日内EM的累和
// MAEMV=EMV的M日的简单移动平均
var obj = {};
var size = high.length;
var EMV = [], MAEMV = [];
var i = 0;
var j = 0;
for (i = 0; i < size; i++) {
if (i > p - 1) {
// 不能= 因为 b要访问前一根
dynamic sum = 0.0;
for (j = p - 1; j >= 0; j--) {
var a = (high[i - j] + low[i - j]) / 2;
var b = (high[i - j - 1] + low[i - j - 1]) / 2;
var c = high[i - j] - low[i - j];
sum += ((a - b) * c) / vol[i - j];
}
EMV.add(sum);
} else {
EMV.add("-");
}
}
MAEMV = MA(EMV, p2);
obj['EMV'] = EMV;
obj['MAEMV'] = MAEMV;
return obj;
}