calADTMDatas method

dynamic calADTMDatas(
  1. dynamic open,
  2. dynamic high,
  3. dynamic low,
  4. dynamic N,
  5. dynamic M,
)

ADTM N = 23, M = 8

Implementation

calADTMDatas(open, high, low, N, M) {
  var refOpen = REF(open, 1);
  var i = 0, len = open.length;
  var dtmArr = [];
  var dbmArr = [];
  for (i = 0; i < len; i++) {
    num dtm = 0.0;
    num dbm = 0.0;
    if (open[i] <= refOpen[i]) {
      dtm = 0.0;
    } else {
      dtm = Tools.max(high[i] - open[i], open[i] - refOpen[i]);
    }
    dtmArr.add(dtm);
    if (open[i] >= refOpen[i]) {
      dbm = 0.0;
    } else {
      dbm = Tools.max(open[i] - low[i], open[i] - refOpen[i]);
    }
    dbmArr.add(dbm);
  }

  var stm = SUM(dtmArr, N);
  var sbm = SUM(dbmArr, N);
  var adtmArr = [];
  len = stm.length;
  for (i = 0; i < len; i++) {
    dynamic adtm = 0.0;
    if (Tools.isNaN(stm[i])) {
      adtm = 0.0;
    } else {
      if (stm[i] > sbm[i]) {
        if (stm[i] != 0) {
          adtm = (stm[i] - sbm[i]) / stm[i];
        }
      } else if (stm[i] == sbm[i]) {
        adtm = 0;
      } else {
        if (sbm[i] != 0) {
          adtm = (stm[i] - sbm[i]) / sbm[i];
        }
      }
    }
    adtmArr.add(adtm);
  }
  var maadtm = MA(adtmArr, M);
  var obj = {};
  obj['ADTM'] = adtmArr;
  obj['MAADTM'] = maadtm;
  return obj;
}