Created by Laurence Connors, the ConnorsRSI is a composite oscillator that incorporates RSI, winning/losing streaks, and percentile gain metrics on scale of 0 to 100. See analysis. [Discuss] 💬

chart for ConnorsRSI

// C# usage syntax
IEnumerable<ConnorsRsiResult> results =
  quotes.GetConnorsRsi(rsiPeriods, streakPeriods, rankPeriods);


rsiPeriods int - Lookback period (R) for the price RSI. Must be greater than 1. Default is 3.

streakPeriods int - Lookback period (S) for the streak RSI. Must be greater than 1. Default is 2.

rankPeriods int - Lookback period (P) for the Percentile Rank. Must be greater than 1. Default is 100.

Historical quotes requirements

N is the greater of R+100, S, and P+2. You must have at least N periods of quotes to cover the convergence periods. Since this uses a smoothing technique, we recommend you use at least N+150 data points prior to the intended usage date for better precision.

quotes is a collection of generic TQuote historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See the Guide for more information.



Convergence warning: The first N periods will have decreasing magnitude, convergence-related precision errors that can be as high as ~5% deviation in indicator values for earlier periods.


Date DateTime - Date from evaluated TQuote

Rsi double - RSI(R) of the price.

RsiStreak double - RSI(S) of the Streak.

PercentRank double - Percentile rank of the period gain value.

ConnorsRsi double - ConnorsRSI


See Utilities and helpers for more information.


This indicator may be generated from any chain-enabled indicator or method.

// example
var results = quotes

Results can be further processed on ConnorsRsi with additional chain-enabled indicators.

// example
var results = quotes