call method
dynamic
call(
- dynamic zb,
- 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;
}