RSI oversold screener: threshold, recovery and liquidity filters
An RSI oversold screener identifies symbols whose RSI is below a chosen level, commonly 30. A recovery screen asks a different question: did RSI move back above that level on the latest completed bar? Choose the condition and timeframe first, then check trading volume and the price trend. Either result is a chart-review candidate, not evidence that a bottom has formed.
Current product fields and limits
Compare daily RSI before checking a recovery
Pineify Market Screener has RSI 14, RSI State, Volume, Volume SMA 20, Close and SMA 200 columns. Sort RSI 14 and compare the other values in a defined collection. The current table supports column sorting and ticker search; apply the combined rules below during review.
- Daily public scan
- The public RSI Screener shows daily RSI 14. Its Top US Stocks tab is a defined stock list; All also includes crypto pairs and ETFs. It is not every listed stock.
- Eight app timeframes
- Market Screener supports 1, 5, 15 and 30 minutes; 1, 2 and 4 hours; and daily bars, subject to account access and data availability. Check symbol-specific timeframe overrides.
- Read the timestamp
- The public response can be cached for up to four hours. Market Screener refreshes the active visible collection every 60 seconds. Neither refresh interval proves that a daily bar has closed.
- Recovery needs history
- A current RSI value does not establish a crossover. Check the previous completed bar on TradingView, or specify a custom confirmed-bar rule for a finite list with Pine Script AI Coding Agent.
Missing RSI or volume is unknown, not zero. Check the feed, market session and last completed bar before retaining a candidate.
How Pineify helps
Market Screener supports comparison of the existing RSI, volume and trend fields across a defined collection. The public RSI Screener is a daily starting point. For a recovery condition that the current columns cannot establish, Pine Script AI Coding Agent can help draft a custom script from your explicit rules. Confirm its logic and chart data before relying on a signal.
Below a threshold and crossing back above it are different tasks
For this example, the oversold state is current RSI < 30. A recovery event is current RSI > 30 with previous RSI <= 30, using two consecutive completed bars. TradingView documents an RSI strategy based on crossing out of the oversold zone; that event is distinct from simply remaining in it. If your rule requires the immediately preceding bar to be strictly oversold, change the previous-bar comparison to < 30 and record that choice.
- 28 to 26: the latest bar is oversold, with no recovery event.
- 28 to 32: the latest bar has a recovery event and no longer passes RSI < 30.
- 33 to 35: RSI is above 30, but no new recovery occurred.
- 30 to 31: qualifies under the <= 30 previous-bar rule. 29 to exactly 30 does not qualify because the latest value must be strictly above.
- Use unrounded readings at the boundary. A displayed 30.00 can conceal a value just above or below 30.
Keep RSI length separate from the bar timeframe
RSI 14 uses 14 periods of the selected price series with Wilder smoothing. On a daily chart those are trading-day bars; on a one-hour chart they are hourly bars. TradingView defaults to length 14 and close as the source. Pineify exposes a fixed RSI 14 field, so a length-7 or length-21 study needs a separately configured chart or custom script.
- Use 1D for the daily example here. The public RSI page does not supply intraday or weekly RSI readings.
- Intraday RSI can recover while daily RSI remains below 30. Keep those observations in separate columns rather than treating one as confirmation of the other.
- For a completed-bar screen, check after the selected session closes. A recovery visible during the open bar can disappear before close.
- Match exchange, symbol, close source, session and price adjustments when comparing a screen with TradingView. Insufficient history can make a reading unavailable.
A reproducible example of persistent oversold readings
These invented prices demonstrate the calculation, not an observed trade. Suppose the latest close is $100 and the existing Wilder-smoothed average gain and loss are $0.30 and $0.90. RSI = 100 - 100 / (1 + 0.30 / 0.90) = 25. For each new daily change, update each average as (13 × previous average + current gain or loss) / 14, using zero for the opposite side.
- Next close $98: gain = 0, loss = 2; updated averages are about 0.278571 and 0.978571, giving RSI 22.16.
- Next close $95: loss = 3; RSI falls to 18.72. At the following $91 close, loss = 4 and RSI falls to 15.31.
- The stock has fallen 9% from $100 to $91 while remaining below 30 on every bar. Repeated matches are a continuing state, not independent reversal confirmations.
- A subsequent $96 close is a $5 gain and lifts RSI to 31.99. It qualifies as a recovery, but price is still 4% below $100. The event alone establishes neither a trend reversal nor a profitable entry.
- If the next close is $90, the change from the $96 recovery close is -6.25% before fees or slippage. A valid recovery can fail on the next bar.
Add volume and liquidity rules with explicit units
For a hypothetical US-stock review list, require a completed daily close of at least $10 and Volume SMA 20 of at least 1,000,000 shares per bar. These are example thresholds, not proven settings. Compare the available fields manually. A price floor and an average-volume floor do not establish the spread or executable size for a particular order.
- Example A: close $24, RSI 28 and Volume SMA 20 of 1.2 million shares passes the oversold and example liquidity rules.
- Example B: close $24, RSI 24 and Volume SMA 20 of 80,000 shares fails the volume floor despite having a lower RSI. A small float does not substitute for actual trading volume.
- For activity context, 1.8 million current shares / 1.2 million Volume SMA 20 = 1.50. This named ratio includes the current bar in its 20-bar denominator; do not label it equivalent to every provider's Relative Volume field.
- TradingView documents a screener Relative Volume calculation with a prior ten-bar average excluding the current bar. Keep that definition separate from the ratio above.
- Compare completed daily volume with completed daily volume. At midday, a partial-day total is not directly comparable with a full-day floor; inspect spreads and order-book depth separately.
Use trend context without promising a reversal
Price below a falling long-term average can explain why an oversold condition persists. A rule requiring close above SMA 200 selects a different group from a rule accepting every RSI below 30. It can exclude prolonged declines, but it can also omit early recoveries. A current SMA 200 value alone does not show whether that average is rising or falling; inspect its history on the chart.
- If example A has a close of $24 and SMA 200 of $22, it passes an optional close-above-SMA-200 rule. If SMA 200 is $28, it fails that rule despite identical RSI and volume.
- A stricter oversold threshold such as 20 selects more extreme momentum readings. It does not make them safer or guarantee a quicker rebound.
- RSI divergence compares price pivots with RSI pivots. Absolute RSI levels and recovery events do not establish divergence; use a separate pivot-based workflow for that question.
Move the shortlist to matching TradingView charts
Start with the public daily RSI view or a supported Market Screener collection. Record the universe and choose daily bars, add RSI 14 and the available volume and trend columns, then sort RSI ascending. For a recovery screen, retain prior oversold candidates separately: sorting only today's values below 30 would remove the very stocks that have recovered above it.
- Record the result fetch time, last completed chart bar, RSI value, volume and reasons for keeping or rejecting each symbol. Preserve failures when evaluating the rule.
- Open each exchange-qualified symbol in TradingView. Check the previous and current completed daily RSI values, the wider price trend and any gap or news event.
- For a custom recovery window or RSI length, give Pine Script AI Coding Agent the finite symbol list, timeframe, inequalities, bar-close requirement and missing-data policy. Review and validate the generated script before use.
- A finite-list script remains subject to TradingView request and execution limits. It is not an unrestricted exchange-wide scanner.
How to check a screener result
Check 1
Confirm the symbol universe, timeframe, field settings, and data timestamp.
Check 2
Open each candidate chart and compare the screen result with price, volume, and nearby structure.
Check 3
Write down the condition that would invalidate the setup before making a trading decision.
This page is for education and research, not investment advice. All worked prices, volumes and thresholds are hypothetical. A screener match does not guarantee a reversal or profitable trade. Market data may be delayed or incomplete, and trading can result in loss. Pineify is an information tool, not an investment adviser. No screener, indicator, or AI system can predict stock prices with certainty or guarantee a return.
Frequently asked questions
How do I find stocks with RSI below 30?
Choose the stock universe, RSI length and timeframe, then compare the current RSI with 30. In Pineify, sort RSI 14 in the public daily view or Market Screener and review matching rows. The current Market Screener table does not automatically apply every combined RSI and volume threshold.
Is RSI below 30 the same as a recovery signal?
No. Below 30 is a current state. The recovery rule here requires RSI above 30 on the latest completed bar and at or below 30 on the preceding bar. A value of 32 alone cannot show whether that event just occurred.
Which RSI timeframes are available in Pineify?
The public RSI Screener shows daily data only. Market Screener supports 1, 5, 15 and 30 minutes, 1, 2 and 4 hours, and daily bars, subject to access and feed availability. RSI 14 always refers to 14 periods of the selected timeframe.
Can a stock stay oversold while its price keeps falling?
Yes. In the hypothetical example, price falls from $100 to $91 while RSI falls from 25 to 15.31. A below-30 screen continues to match throughout the decline. It does not identify the eventual bottom.
Does high relative volume prove a stock is liquid?
No. A large ratio can occur on a small absolute share volume. Check average volume, price, spread and the intended order size separately. Also record the ratio denominator because providers use different lookbacks and current-bar conventions.
Can I screen for a custom RSI recovery condition?
A custom condition needs a precise specification and historical values. Use matching charts or ask Pine Script AI Coding Agent to draft a script for a finite symbol list. Specify the RSI length, timeframe, equality boundary, completed-bar rule and how to handle missing data, then review and validate the result.