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);
}