calATRDatas method

dynamic calATRDatas(
  1. dynamic close,
  2. dynamic high,
  3. dynamic low,
  4. dynamic p,
)

计算ATR指标 @param close 收盘点 @param high 最高点 @param low 最低点 @param p = 14 MA 的回溯周期 (1 <= p <= 300)

Implementation

calATRDatas(close, high, low, p) {
  var resultObj = {};
  var trArr = [];
  var atrArr = [];
  var refArr = REF(close, 1);
  var i = 0;
  var size = high.length;
  var hlArr = []; //最高点与最低点差值
  var absArr = []; //最高值与REF差的绝对值
  var leftMaxArr = []; //前部分的最大值
  var rightAbsArr = []; //右部分的绝对值
  for (i = 0; i < size; i++) {
    hlArr.add(high[i] - low[i]);
    absArr.add((refArr[i] - high[i]).abs());
    rightAbsArr.add((refArr[i] - low[i]).abs());
  }
  for (i = 0; i < size; i++) {
    leftMaxArr.add(Tools.max(hlArr[i], absArr[i]));
  }
  for (i = 0; i < size; i++) {
    trArr.add(Tools.max(leftMaxArr[i], rightAbsArr[i]));
  }
  atrArr = MA(trArr, p);
  resultObj['TR'] = trArr;
  resultObj['ATR'] = atrArr;
  return resultObj;
}