calCRDatas method
dynamic
calCRDatas(
- dynamic close,
- dynamic high,
- dynamic low,
- dynamic p0,
- dynamic p1,
- dynamic p2,
- dynamic p3,
计算CR指标 @param close 收盘点 @param high 最高点 @param low 最低点 @param p0 CR的回溯周期 默认为26(5 <= p0 <= 500) @param p1 MA1的回溯周期 默认为5 (1 <= p1 <= 100) @param p2 MA2的回溯周期 默认为10 (1 <= p2 <= 100) @param p3 MA3的回溯周期 默认为20 (1 <= p3 <= 100)
Implementation
calCRDatas(close, high, low, p0, p1, p2, p3) {
var resultObj = {};
var i = 0;
var size = close.length;
var midArr = [];
var crLeftArr = [];
var crRightArr = [];
var crArr = [];
var ma1Arr = [];
var ma2Arr = [];
var ma3Arr = [];
var tempLeftArr = [];
var tempRightArr = [];
for (i = 0; i < size; i++) {
midArr.add((high[i] + low[i] + close[i]) / 3);
}
var refArr = REF(midArr, 1);
for (i = 0; i < size; i++) {
tempLeftArr.add(Tools.max(0.0, high[i] - refArr[i]));
tempRightArr.add(Tools.max(0.0, refArr[i] - low[i]));
}
crLeftArr = SUM(tempLeftArr, p0);
crRightArr = SUM(tempRightArr, p0);
for (i = 0; i < size; i++) {
if (i >= p0 - 1) {
crArr.add((crLeftArr[i] / crRightArr[i]) * 100);
} else {
crArr.add(0);
}
}
var a1 = MA(crArr, p1);
var a2 = MA(crArr, p2);
var a3 = MA(crArr, p3);
ma1Arr = REF(a1, (p1 / 2.5 + 1).toInt());
ma2Arr = REF(a2, (p2 / 2.5 + 1).toInt());
ma3Arr = REF(a3, (p3 / 2.5 + 1).toInt());
resultObj['CR'] = crArr;
resultObj['MA1'] = ma1Arr;
resultObj['MA2'] = ma2Arr;
resultObj['MA3'] = ma3Arr;
return resultObj;
}