◆ New — Strategy Validator, Code Fixer & Prop Compliance Checker are live. Try one free →
Home / Indicators / Connors RSI (CRSI)
Momentum indicator

Connors RSI (CRSI)

A three-part momentum oscillator that blends a short-term RSI, an RSI of price streaks, and a percentile rank of recent price change into one 0-100 line.

Illustrative diagram — not live market data.

What it is

Connors RSI (CRSI) is a composite momentum oscillator developed by Larry Connors and Connors Research. Instead of measuring momentum a single way like the classic RSI, it combines three separate measurements into one value that oscillates between 0 and 100. The intent is a faster, more sensitive reading of short-term momentum than a standard RSI alone. It is an educational analysis tool, not a buy or sell signal, and nothing about it predicts future price. Trading carries a real risk of loss.

How it works

CRSI is the simple average of three components, each scaled 0-100: 1. Price RSI: a short-period RSI of the closing price (default length 3). This is the standard RSI most traders already know, just run on a very short lookback. 2. Streak RSI: an RSI (default length 2) applied to the "up/down streak" — a counter that increases by 1 for each consecutive higher close, decreases by 1 for each consecutive lower close, and resets to 0 on an unchanged close. This component reflects how persistent a run of closes has been. 3. Percent Rank of ROC: the percentile rank (default lookback 100) of the most recent single-period rate of change relative to the prior rate-of-change values in the lookback window. It places the latest price change in the context of recent changes. The final value is (PriceRSI + StreakRSI + PercentRank) / 3. Because two of the three inputs use very short periods, CRSI tends to move faster and reach extremes more often than a standard 14-period RSI. Note that the components measure related but distinct things, so combining them does not necessarily make the result more reliable — only more responsive.

How traders read it

Common settings

Defaults from Connors Research: Price RSI = 3, Streak RSI = 2, Percent Rank lookback = 100. Commonly referenced zones are above 90 (short-term overbought) and below 10 (short-term oversold), with 50 as the midline. All of these are conventions to test, not fixed rules, and they are not signals to act on.

Strengths

Pitfalls to watch

Pine v6 example

//@version=6
indicator("Connors RSI (CRSI)", shorttitle="CRSI")

rsiLen    = input.int(3,   "Price RSI Length")
streakLen = input.int(2,   "Streak RSI Length")
rankLen   = input.int(100, "Percent Rank Length")

// 1) RSI of price
priceRsi = ta.rsi(close, rsiLen)

// 2) Up/down streak length
var float streak = 0.0
streak := close > close[1] ? (streak >= 0 ? streak + 1 : 1.0) :
          close < close[1] ? (streak <= 0 ? streak - 1 : -1.0) : 0.0
streakRsi = ta.rsi(streak, streakLen)

// 3) Percent rank of 1-period ROC
roc     = ta.roc(close, 1)
pctRank = ta.percentrank(roc, rankLen)

crsi = (priceRsi + streakRsi + pctRank) / 3

plot(crsi, "CRSI", color=color.blue)
hline(90, "Upper", color=color.gray)
hline(10, "Lower", color=color.gray)
hline(50, "Mid",   color=color.new(color.gray, 60))

Pro tip: Before relying on any CRSI threshold, check how often your chosen instrument and timeframe actually reach it. On short default settings, 90/10 extremes can appear several times a week, so many traders treat the level as context to study alongside trend or structure rather than reading any single extreme in isolation. This is an observation about behavior, not a recommendation to trade.

Built an indicator from this? Run it through the Validator to catch look-ahead bias and repainting, or convert a strategy to Pine Script.

Educational only — not financial advice, not a recommendation to trade. No indicator is predictive; trading involves substantial risk of loss.

Catch the bug that compiles.Run auditGet Pro