TL;DR. The percentage of the previous n values that the current value is at or above. 100 means it is at least as high as every one of them; 0 means it is lower than all of them; 50 sits in the middle. Always between 0 and 100, whatever the price.
What it measures
- Rank, not distance. Percent Rank counts how many past values the current one beats. A value far above the rest and one barely above them both read 100.
- Unaffected by outliers. One huge bar in the window moves a mean and a standard deviation; it moves a rank by one place at most.
- The building block of Connors RSI. Connors RSI ranks the day's return among the last 100 returns; this node ranks any value you feed it.
Formula
Inputs in AlgoLift
| Setting | Default | Range | Notes |
|---|---|---|---|
| Period | 100 | 1 to 500 | How many previous values the current one is ranked among. 100 is the lookback Connors RSI ranks over. |
| Source | Close | Close, Open, High, Low, HL2, HLC3, OHLC4 | Which value of each bar is ranked. |
Recommended periods
- 20 (fast): Where the bar stands within roughly the last day or session.
- 100 (default): A broad reference window.
- 250 to 500 (slow): Rank against a long history. A value of 100 here is a new extended high.
Outputs in AlgoLift
| Handle | Type | Plotted | Notes |
|---|---|---|---|
| Percent Rank | Numeric | Always | 0 to 100, drawn in its own panel with guides at 20 and 80. |
How to read it
- 100: the value is at least the highest of the last n. With a long period this is a breakout to a new high.
- 0: below every one of the last n, a new low for the window.
- Above 80 or below 20: the top or bottom fifth of the window, the usual stretched readings.
- Steps in whole fractions: with a period of 5 the only possible readings are 0, 20, 40, 60, 80 and 100. Short periods give coarse lines.
Best in, worst in
Best in filters and regime tests where only the order matters: "is this the highest close of the last 100 bars", "is volatility in its top tenth".
Worst in fine timing. The line moves in steps and pins at 0 or 100 during a trend, so it rarely gives an exact entry bar by itself.
Three setups
1. Pullback inside an uptrend
With price above its 200-bar average, enter long when the Percent Rank of the close over 20 bars drops below 10 (a Comparison node), and exit when it climbs back above 50.
2. New-high breakout
Feed the close with a period of 250 and enter on a Crossover of Percent Rank above 99.5: the close has reached its highest level in about a year of bars.
3. Volatility regime switch
This node ranks a price source. To rank another line, such as the ATR, put the Percentile Rank Modifier on it instead; then run a breakout rule only when the ATR's rank is above 70 and a fade rule only below 30, with this node's rank of the close as the entry trigger.
Common mistakes
- Expecting a smooth line. A short period makes a staircase. Use 20 or more where the steps matter.
- Reading 100 as "too high". In a trend the rank pins at 100 for many bars; that is strength, not exhaustion.
- Tuning the threshold to the last decimal. With a period of 20 the line can only take 21 values, so a threshold of 14 and one of 11 are the same rule (overfitting in trading).
Percent Rank answers "how many of the last n values is this at or above", on a fixed 0 to 100 scale. It knows order, not distance.