call method

dynamic call(
  1. dynamic zb,
  2. dynamic kdata
)

Implementation

call(zb, kdata) {
  Map? result;
  int i = 0;
  var obj = config[zb];

  if (zb == Indicator['EMA']) {
    result = callEMA(getAryByKey(kdata, "close"), obj['params'][0]['value']);
  } else if (zb == Indicator['OBV']) {
    result =
        callOBV(getAryByKey(kdata, "close"), getAryByKey(kdata, "volume"));
  } else if (zb == Indicator['EMV']) {
    result = callEMV(
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        getAryByKey(kdata, "volume"),
        obj['params'][0]['value'],
        obj['params'][1]['value']);
  } else if (zb == Indicator['VR']) {
    result = callVR(
        getAryByKey(kdata, "open"),
        getAryByKey(kdata, "close"),
        getAryByKey(kdata, "volume"),
        obj['params'][0]['value'],
        obj['params'][1]['value']);
  } else if (zb == Indicator['SAR']) {
    result = calSAMDatas(
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        obj['params'][0]['value'],
        obj['params'][1]['value']);
  } else if (zb == Indicator['MA']) {
    result = {};
    var carr = getAryByKey(kdata, "close");
    for (i = 0; i < obj['params'].length; i++) {
      result[obj['params'][i]['name']] = MA(carr, obj['params'][i]['value']);
    }
  } else if (zb == Indicator['BOLL']) {
    result = calBOLLDatas(getAryByKey(kdata, "close"),
        obj['params'][0]['value'], obj['params'][1]['value']);
  } else if (zb == Indicator['CR']) {
    result = calCRDatas(
        getAryByKey(kdata, "close"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value'],
        obj['params'][3]['value']);
  } else if (zb == Indicator['DMI']) {
    result = calDMIDatas(
        getAryByKey(kdata, "close"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        obj['params'][0]['value'],
        obj['params'][1]['value']);
  } else if (zb == Indicator['ARBR']) {
    result = calARBRDatas(
        getAryByKey(kdata, "close"),
        getAryByKey(kdata, "open"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['RSI']) {
    result = calRSIDatas(
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value'],
        obj['params'][3]['value'],
        obj['params'][4]['value']);
  } else if (zb == Indicator['KDJ']) {
    result = calKDJDatas(
        getAryByKey(kdata, "low"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['KD']) {
    result = calKDDatas(
        getAryByKey(kdata, "low"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['MACD']) {
    result = calMACDDatas(
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['MICD']) {
    result = calMICDDatas(
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['BIAS']) {
    result = calBIASDatas(
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['VOLUME']) {
    var aryrect = [];
    var cjlav = getAryByKey(kdata, "volume");
    var cjlao = getAryByKey(kdata, "open");
    var cjlac = getAryByKey(kdata, "close");
    result = {};
    for (i = 0; i < kdata.length; i++) {
      aryrect.add({'volume': cjlav[i], 'open': cjlao[i], 'close': cjlac[i]});
    }
    result["VOL"] = aryrect; //矩形方块数据
    for (i = 0; i < obj['params'].length; i++) {
      var key = (i + 1);
      result['MAVOL$key'] = MA(cjlav, obj['params'][i]['value']);
    }
  } else if (zb == Indicator['WR']) {
    result = calWRDatas(
        getAryByKey(kdata, "close"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['BBI']) {
    result = calBBIDatas(
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value'],
        obj['params'][3]['value']);
  } else if (zb == Indicator['ATR']) {
    result = calATRDatas(
        getAryByKey(kdata, "close"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        obj['params'][0]['value']);
  } else if (zb == Indicator['MI']) {
    result =
        calMIDatas(getAryByKey(kdata, "close"), obj['params'][0]['value']);
  } else if (zb == Indicator['DBCD']) {
    result = calDBCDDatas(
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['DMA']) {
    result = calDMADatas(
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['RCCD']) {
    result = calRCCDDatas(
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['SRDM']) {
    result = calSRDMDatas(getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"), obj['params'][0]['value']);
  } else if (zb == Indicator['ROC']) {
    result = calROCDatas(getAryByKey(kdata, "close"),
        obj['params'][0]['value'], obj['params'][1]['value']);
  } else if (zb == Indicator['ADTM']) {
    result = calADTMDatas(
        getAryByKey(kdata, "open"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        obj['params'][0]['value'],
        obj['params'][1]['value']);
  } else if (zb == Indicator['DPO']) {
    result = calDPODatas(
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['TRIX']) {
    result = calTRIXDatas(getAryByKey(kdata, "close"),
        obj['params'][0]['value'], obj['params'][1]['value']);
  } else if (zb == Indicator['MTM']) {
    result = calMTMDatas(getAryByKey(kdata, "close"),
        obj['params'][0]['value'], obj['params'][1]['value']);
  } else if (zb == Indicator['ASI']) {
    result = calASIDatas(
        getAryByKey(kdata, "close"),
        getAryByKey(kdata, "open"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        obj['params'][0]['value'],
        obj['params'][1]['value']);
  } else if (zb == Indicator['CCI']) {
    result = calCCIDatas(
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value']);
  } else if (zb == Indicator['PSY']) {
    result =
        calPSYDatas(getAryByKey(kdata, "close"), obj['params'][0]['value']);
  } else if (zb == Indicator['ADX']) {
    result = callADXDatas(
        getAryByKey(kdata, "low"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "close"),
        obj['params'][0]['value']);
  } else if (zb == Indicator['PBX']) {
    result = callPBX(
        getAryByKey(kdata, "close"),
        obj['params'][0]['value'],
        obj['params'][1]['value'],
        obj['params'][2]['value'],
        obj['params'][3]['value'],
        obj['params'][4]['value'],
        obj['params'][5]['value']);
  } else if (zb == Indicator['CDP']) {
    result = callCDP(getAryByKey(kdata, "high"), getAryByKey(kdata, "low"),
        getAryByKey(kdata, "close")); //无参数
  } else if (zb == Indicator['MIKE']) {
    result = callMIKE(getAryByKey(kdata, "high"), getAryByKey(kdata, "low"),
        getAryByKey(kdata, "close"), obj['params'][0]['value']);
  } else if (zb == Indicator['DKX']) {
    result = callDKX(
        getAryByKey(kdata, "open"),
        getAryByKey(kdata, "high"),
        getAryByKey(kdata, "low"),
        getAryByKey(kdata, "close"),
        obj['params'][0]['value']);
  } else if (zb == Indicator['BBIBOLL']) {
    result = callBBIBOLL(getAryByKey(kdata, "close"),
        obj['params'][0]['value'], obj['params'][1]['value']);
  } else if (zb == Indicator['HCL']) {
    result = callHCL(getAryByKey(kdata, "high"), getAryByKey(kdata, "low"),
        getAryByKey(kdata, "close"), obj['params'][0]['value']);
  } else if (zb == Indicator['SP']) {
    result = callSP(getAryByKey(kdata, "high"), getAryByKey(kdata, "low"),
        getAryByKey(kdata, "close")); //无参数
  }

  return result;
}