callMIKE method
dynamic
callMIKE(
- dynamic high,
- dynamic low,
- dynamic close,
- dynamic n,
n = 10
Implementation
callMIKE(high, low, close, n) {
//有问题
var i = 0, len = close.length;
var maAry = [];
for (i = 0; i < len; i++) {
maAry.add((high[i] + low[i] + close[i]) / 3);
}
var ma = MA(maAry, n);
var hhv = HHV(high, n);
var llv = LLV(low, n);
var hlc = REF(ma, 1), hv = EMA(hhv, 3), lv = EMA(llv, 3);
var v1 = [], v2 = [], v3 = [], v4 = [], v5 = [], v6 = [];
// HLC:=REF(MA((HIGH+LOW+CLOSE)/3,N),1);
// HV:=EMA(HHV(HIGH,N),3);
// LV:=EMA(LLV(LOW,N),3);
// STOR:EMA(2*HV-LV,3);
// MIDR:EMA(HLC+HV-LV,3);
// WEKR:EMA(HLC*2-LV,3);
// WEKS:EMA(HLC*2-HV,3);
// MIDS:EMA(HLC-HV+LV,3);
// STOS:EMA(2*LV-HV,3);
for (i = 0; i < len; i++) {
if (Tools.isNaN(hv[i]) || Tools.isNaN(lv[i])) {
v1.add('-');
v6.add('-');
} else {
v1.add(2 * hv[i] - lv[i]);
v6.add(2 * lv[i] - hv[i]);
}
if (Tools.isNaN(hlc[i]) || Tools.isNaN(hv[i]) || Tools.isNaN(lv[i])) {
v2.add('-');
v5.add('-');
} else {
v2.add(hlc[i] + hv[i] - lv[i]);
v5.add(hlc[i] - hv[i] + lv[i]);
}
if (Tools.isNaN(hlc[i]) || Tools.isNaN(lv[i])) {
v3.add('-');
} else {
v3.add(hlc[i] * 2 - lv[i]);
}
if (Tools.isNaN(hlc[i]) || Tools.isNaN(hv[i])) {
v4.add('-');
} else {
v4.add(hlc[i] * 2 - hv[i]);
}
}
var obj = {};
obj['STOR'] = EMA(v1, 3);
obj['MIDR'] = EMA(v2, 3);
obj['WEKR'] = EMA(v3, 3);
obj['WEKS'] = EMA(v4, 3);
obj['MIDS'] = EMA(v5, 3);
obj['STOS'] = EMA(v6, 3);
return obj;
}