calSRDMDatas method
dynamic
calSRDMDatas(
- dynamic high,
- dynamic low,
- dynamic N
SRDM
Implementation
calSRDMDatas(high, low, N) {
var i = 0;
var len = high.length;
var highRef = REF(high, 1);
var lowRef = REF(low, 1);
var dmzArr = [];
var dmfArr = [];
for (i = 0; i < len; i++) {
var dmz = high[i] + low[i] <= highRef[i] + lowRef[i]
? 0.0
: Tools.max((high[i] - highRef[i]).abs(), (low[i] - lowRef[i]).abs());
dmzArr.add(dmz);
var dmf = high[i] + low[i] >= highRef[i] + lowRef[i]
? 0.0
: Tools.max((high[i] - highRef[i]).abs(), (low[i] - lowRef[i]).abs());
dmfArr.add(dmf);
}
var admz = MA(dmzArr, 10);
var admf = MA(dmfArr, 10);
var srdmArr = [];
len = admz.length;
for (i = 0; i < len; i++) {
dynamic srdm = 0.0;
if (Tools.isNaN(admz[i])) {
srdm = '-';
} else {
if (admz[i] > admf[i]) {
srdm = (admz[i] - admf[i]) / admz[i];
} else if (admz[i] == admf[i]) {
srdm = 0.0;
} else {
srdm = (admz[i] - admf[i]) / admf[i];
}
}
srdmArr.add(srdm);
}
var asrdm = SMA(srdmArr, N, 1);
var obj = {};
obj['SRDM'] = srdmArr;
obj['ASRDM'] = asrdm;
return obj;
}