calARBRDatas method
dynamic
calARBRDatas(
- dynamic close,
- dynamic open,
- dynamic high,
- dynamic low,
- dynamic p,
- dynamic a,
- dynamic b,
计算ARBR指标 @param close 收盘点 @param open 开盘点 @param high 最高点 @param low 最低点 @param p = 26 SUM回溯周期(1 <= p1 <= 300) @param a = 70 参考线 @param b = 150 参考线
Implementation
calARBRDatas(close, open, high, low, p, a, b) {
var resultObj = {};
var size = close.length;
var i = 0;
var refArr = REF(close, 1);
var arArr = [];
var brArr = [];
var aArr = [];
var bArr = [];
var hoArr = [];
var olArr = [];
var arLeft = [];
var arRight = [];
var brLeft = [];
var brRight = [];
var brLeftTemp = [];
var brRightTemp = [];
for (i = 0; i < size; i++) {
hoArr.add(high[i] - open[i]);
olArr.add(open[i] - low[i]);
brLeftTemp.add(Tools.max(0.0, high[i] - refArr[i]));
brRightTemp.add(Tools.max(0.0, refArr[i] - low[i]));
}
arLeft = SUM(hoArr, p);
arRight = SUM(olArr, p);
brLeft = SUM(brLeftTemp, p);
brRight = SUM(brRightTemp, p);
for (i = 0; i < size; i++) {
if (Tools.isNaN(arRight[i])) {
arArr.add(0.0);
} else {
arArr.add((arLeft[i] / arRight[i]) * 100);
}
if (Tools.isNaN(brRight[i])) {
brArr.add(0.0);
} else {
brArr.add((brLeft[i] / brRight[i]) * 100);
}
aArr.add(a);
bArr.add(b);
}
resultObj['AR'] = arArr;
resultObj['BR'] = brArr;
resultObj['A'] = aArr;
resultObj['B'] = bArr;
return resultObj;
}