calASIDatas method
dynamic
calASIDatas(
- dynamic close,
- dynamic open,
- dynamic high,
- dynamic low,
- dynamic p1,
- dynamic p2,
p1 = 26, p2 = 10
Implementation
calASIDatas(close, open, high, low, p1, p2) {
var resultObj = {};
var size = close.length;
var i = 0;
var refArr = REF(close, 1);
var refLowArr = REF(low, 1);
var refOpenArr = REF(open, 1);
var aa = [];
var bb = [];
var cc = [];
var dd = [];
var tempArr = [];
var rArr = [];
var xArr = [];
var siArr = [];
var asiArr = [];
var asitArr = [];
for (i = 0; i < size; i++) {
aa.add((high[i] - refArr[i]).abs());
bb.add((low[i] - refArr[i]).abs());
cc.add((high[i] - refLowArr[i]).abs());
dd.add((refArr[i] - refOpenArr[i]).abs());
if (bb[i] > cc[i] && bb[i] > aa[i]) {
tempArr.add(bb[i] + aa[i] / 2 + dd[i] / 4);
} else {
tempArr.add(cc[i] + dd[i] / 4);
}
if (aa[i] > bb[i] && aa[i] > cc[i]) {
rArr.add(aa[i] + bb[i] / 2 + dd[i] / 4);
} else {
rArr.add(tempArr[i]);
}
//X的值
xArr.add(close[i] -
refArr[i] +
(close[i] - open[i]) / 2 +
refArr[i] -
refOpenArr[i]);
//计算SI
siArr.add(((16 * xArr[i]) / rArr[i]) * Tools.max(aa[i], bb[i]));
}
asiArr = SUM(siArr, p1);
asitArr = MA(asiArr, p2);
resultObj['ASI'] = asiArr;
resultObj['ASIT'] = asitArr;
return resultObj;
}