calRSIDatas method

dynamic calRSIDatas(
  1. dynamic close,
  2. dynamic p0,
  3. dynamic p1,
  4. dynamic p2,
  5. dynamic a,
  6. dynamic b,
)

计算RSI指标 @param close 收盘点 @param p0 = 6 SMA参数(2 <= p0 <= 100) @param p1 = 12 SMA参数(2 <= p1 <= 100) @param p2 = 24 SMA参数(2 <= p2 <= 100) @param a = 80 @param b = 20

Implementation

calRSIDatas(close, p0, p1, p2, a, b) {
  var obj = {};
  var size = close.length;
  var lc = REF(close, 1);
  var llc_max = [];
  var llc_abs = [];
  var i = 0;
  for (i = 0; i < size; i++) {
    llc_max.add(Tools.max(close[i] - lc[i], 0.0));
    llc_abs.add((close[i] - lc[i]).abs());
  }
  var llc_max_sma6 = SMA(llc_max, p0, 1);
  var llc_abs_sma6 = SMA(llc_abs, p0, 1);
  var llc_max_sma12 = SMA(llc_max, p1, 1);
  var llc_abs_sma12 = SMA(llc_abs, p1, 1);
  var llc_max_sma24 = SMA(llc_max, p2, 1);
  var llc_abs_sma24 = SMA(llc_abs, p2, 1);
  var rsi1 = [];
  var rsi2 = [];
  var rsi3 = [];
  var rsi4 = [];
  var rsi5 = [];
  for (i = 0; i < size; i++) {
    rsi1.add((llc_max_sma6[i] / llc_abs_sma6[i]) * 100);
    rsi2.add((llc_max_sma12[i] / llc_abs_sma12[i]) * 100);
    rsi3.add((llc_max_sma24[i] / llc_abs_sma24[i]) * 100);
    rsi4.add(a);
    rsi5.add(b);
  }
  obj['RSI1'] = rsi1;
  obj['RSI2'] = rsi2;
  obj['RSI3'] = rsi3;
  obj['A'] = rsi4;
  obj['B'] = rsi5;
  return obj;
}