Skip to content
Stock screen S&P 500 stocks

Stocks above and below their moving averages

Each preset compares the latest close with simple moving averages of 20, 50 or 200 sessions. Crossover presets also compare the previous session, so the rule names both days.

Open in Stock ScreenerThe Stock Screener opens with this page’s first preset — no account needed.

Presets and rules

Each preset is the exact CleverScan rule this page runs on the latest published daily session. S&P 500 stocks: Stocks on the S&P 500 reference list captured with the published dataset.

The presets of this screen
PresetWhat it selectsRule
Above the 200-dayThe close is above its 200-session simple moving average. Values come from the latest published daily session (regular trading hours); the rule is evaluated once per published session, not tick by tick. Rows are ordered by vs sma 200 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (close > sma200)
Below the 200-dayThe close is below its 200-session simple moving average. Rows are ordered by vs sma 200 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (close < sma200)
Above the 50-dayThe close is above its 50-session simple moving average. Rows are ordered by vs sma 50 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (close > sma50)
Below the 50-dayThe close is below its 50-session simple moving average. Rows are ordered by vs sma 50 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (close < sma50)
Above the 20-dayThe close is above its 20-session simple moving average. Rows are ordered by vs sma 20 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (close > sma20)
Below the 20-dayThe close is below its 20-session simple moving average. Rows are ordered by vs sma 20 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (close < sma20)
Above the 20 and 50-dayThe close is above both the 20-session and the 50-session simple moving averages. Rows are ordered by vs sma 50 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (close > sma20 and close > sma50)
Above the 50 and 200-dayThe close is above both the 50-session and the 200-session simple moving averages. Rows are ordered by vs sma 200 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (close > sma50 and close > sma200)
Above 20, 50 and 200-dayThe close is above all three: the 20, 50 and 200-session simple moving averages. Rows are ordered by vs sma 200 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (close > sma20 and close > sma50 and close > sma200)
Below 20, 50 and 200-dayThe close is below all three: the 20, 50 and 200-session simple moving averages. Rows are ordered by vs sma 200 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (close < sma20 and close < sma50 and close < sma200)
Bullish alignmentThe averages are stacked in rising order: close above SMA 20, SMA 20 above SMA 50, SMA 50 above SMA 200. Rows are ordered by vs sma 200 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (close > sma20 and sma20 > sma50 and sma50 > sma200)
Bearish alignmentThe averages are stacked in falling order: close below SMA 20, SMA 20 below SMA 50, SMA 50 below SMA 200. Rows are ordered by vs sma 200 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (close < sma20 and sma20 < sma50 and sma50 < sma200)
Pullback to the 50-dayIn an uptrend (SMA 50 above SMA 200, close above SMA 200), the close is within 2% of SMA 50 and at least 3% below the highest high of the last 20 sessions. Rows are ordered by vs sma 50 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (sma50 > sma200 and close > sma200 and distSma50Pct >= -2 and distSma50Pct <= 2 and hi20FromHighPct <= -3)
Pullback to the 20-dayWith the close above SMA 50, the close is within 1.5% of SMA 20 and at least 2% below the highest high of the last 20 sessions. Rows are ordered by vs sma 20 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (close > sma50 and distSma20Pct >= -1.5 and distSma20Pct <= 1.5 and hi20FromHighPct <= -2)
Touched the 50-day, closed aboveThe session’s low reached or crossed below SMA 50 and the session closed above it. Rows are ordered by vs sma 50 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (low <= sma50 and close > sma50)
Retesting the 200-dayThe session’s low came within 1% of SMA 200 (or below it) and the close finished above SMA 200. Rows are ordered by vs sma 200 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (low <= sma200 * 1.01 and close > sma200)
15%+ above the 50-dayThe close is at least 15% above its 50-session simple moving average. Rows are ordered by vs sma 50 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (distSma50Pct >= 15)
Golden crossSMA 50 is above SMA 200 in this session after being at or below it in the previous session. Rows are ordered by vs sma 200 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (sma50 > sma200 and sma50Ago1 <= sma200Ago1)
Death crossSMA 50 is below SMA 200 in this session after being at or above it in the previous session. Rows are ordered by vs sma 200 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (sma50 < sma200 and sma50Ago1 >= sma200Ago1)
Golden cross on volumeA golden cross in this session (SMA 50 moved above SMA 200) with volume at least 1.5 times the 20-session average. Rows are ordered by rel. volume (highest first).securityType = "Stock" and indexMembership contains "SP500" and (sma50 > sma200 and sma50Ago1 <= sma200Ago1 and volumeRatio >= 1.5)
Crossed above the 50-dayThe close is above SMA 50 and the previous close was at or below the previous session’s SMA 50. Rows are ordered by vs sma 50 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (close > sma50 and previousClose <= sma50Ago1)
Crossed below the 50-dayThe close is below SMA 50 and the previous close was at or above the previous session’s SMA 50. Rows are ordered by vs sma 50 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (close < sma50 and previousClose >= sma50Ago1)
Crossed above the 200-dayThe close is above SMA 200 and the previous close was at or below the previous session’s SMA 200. Rows are ordered by vs sma 200 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (close > sma200 and previousClose <= sma200Ago1)
Crossed below the 200-dayThe close is below SMA 200 and the previous close was at or above the previous session’s SMA 200. Rows are ordered by vs sma 200 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (close < sma200 and previousClose >= sma200Ago1)
Rising 200-day averageSMA 200 is higher than it was 21 sessions earlier (about one month of trading). Rows are ordered by vs sma 200 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (sma200 > sma200Ago21)
Falling 200-day averageSMA 200 is lower than it was 21 sessions earlier. Rows are ordered by vs sma 200 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (sma200 < sma200Ago21)
Near a rising 200-dayThe close is 0–3% above SMA 200 and SMA 200 is higher than 21 sessions earlier. Rows are ordered by vs sma 200 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (distSma200Pct >= 0 and distSma200Pct <= 3 and sma200 > sma200Ago21)
Rising 50-day averageSMA 50 is higher than in the previous session (a one-session slope). Rows are ordered by vs sma 50 (highest first).securityType = "Stock" and indexMembership contains "SP500" and (sma50 > sma50Ago1)
Falling 50-day averageSMA 50 is lower than in the previous session (a one-session slope). Rows are ordered by vs sma 50 (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (sma50 < sma50Ago1)
Rising 200-day, RSI under 40SMA 200 is higher than 21 sessions earlier and RSI(14) is below 40. Rows are ordered by rsi (14) (lowest first).securityType = "Stock" and indexMembership contains "SP500" and (sma200 > sma200Ago21 and rsi14 < 40)

What this screen measures

The default compares the close with the 200-session simple moving average. The other horizons are 20 and 50 trading sessions. An above-average rule is a state; a crossing rule compares the current and previous sessions and describes an event.

Read the rule with a worked example

A hypothetical close of 105 against SMA 200 of 100 is 5% above it: (105 ÷ 100 − 1) × 100 = 5. A previous close of 104 against a previous SMA 200 of 99 also lay above its average, so the stock is above the line but has not crossed it in the current session.

Choose the variant that matches the question

Above and below presets are opposites. Alignment requires an ordered stack of moving averages. A golden cross compares SMA 50 with SMA 200 today and one session earlier; a death cross uses the reverse relationship. Pullback rules add proximity to an average and distance below a recent high.

Review the chart behind a match

Review the slope of the average and the price swings on both sides of it. A line rising over 20 sessions differs from a flat line that price crosses repeatedly. Look at extension from the line as well as the simple above/below result.

Keep the interpretation within the rule

A moving average smooths past closes and reacts with a delay. Above the average does not mean a new uptrend began today. Several overlapping averages can repeat the same information, and sideways prices can cause repeated crossings.

A screen lists stocks whose published values meet a rule. It is a starting point for research, not a recommendation. Read the data and methodology notes for how sessions and calculations are defined.

Related screens

Look at the market from another angle.

All screens
Make room for better research

Run the rule. Then make it yours.

Build a scan with filters or CleverScan rules. Explore the results. Find your next idea.

Open in Stock Screener