I've implemented Connors RSI, sharing here in case some one is interesed

Code:
vars CRSI(vars close, int rsiPeriod, int streakRsiPeriod, int percentRankPeriod) {
	static int streak = 0;

  if (close[0] > close[1]) {
    if (streak >= 0) {
      streak += 1;
    } else {
      streak = 1;
    }
  } else if (close[0] < close[1]) {
    if (streak <= 0) {
      streak -= 1;
    } else {
      streak = -1;
    }
  } else if (close[0] == close[1]) {
    streak = 0;
  }

  vars streakSeries = series(streak);
  vars rsi = series(RSI(close,rsiPeriod));
  vars streakRsi = series(RSI(streakSeries,streakRsiPeriod));
  
  vars returns = series((close[0]-close[1])/close[1]);

  vars rank = series(PercentRank(returns,percentRankPeriod,returns[0]));
  return series((rsi[0] + streakRsi[0] + rank[0])/3);
}



Call by doing something like
Code:
vars close = series(priceClose());
vars crsiSeries = CRSI(close,3,2,100);



Please note that this requires the 1.61 Beta since it uses the new PercentRank function

Last edited by Dalla; 08/26/17 07:37.