Published Scans

Below is a collection of advanced scans that have been published in books, magazines or websites over the years. StockCharts members can run these scans by copying and pasting them from this page into our Advanced Scan Workbench.

Note: For the sake of brevity, we are only adding “[type=stock]” to the beginning of each of these sample scans. In your scans, you will want to narrow down your scan universe more than just this one clause.

Here are a few examples of commonly-used clauses that you may want to add to define your scan universe:

and [country = us]   (or 'canada' or 'uk' or 'india' )
and [exchange = nyse]   (or 'nasdaq' or 'tse' or 'lse' or 'nse')
and [SMA(20,close)> 1.00]  (or a price threshold to suit you)
and [SMA(20,volume)> 100000]  (or a volume threshold to suit you)
and [group is etf]  (or 'dow30' or 'sp500')
and [optionable is true]  (limit to stocks that trade options)

Note: StockCharts.com makes no claims about the effectiveness of these scans for trading purposes. These scans should only be used for educational purposes, as a way for you to develop your own personal trading strategy.


"Key Reversal Day" Scan

A very old pattern for sellers with several variations. We present three of the most common variations in this scan.

  [type = stock]
  and [today's high > yesterday's high]
  and [today's close < yesterday's close]

  ## Variation 1 - close stays inside yesterday's range
  # and [today's close > yesterday's low]

  ## Variation 2 - close is below yesterday's range
  # and [today's close < yesterday's low]

Note: Remove either of the “#” characters to enable each of the variations. Do not enable both variations, or you will get zero results, as they are mutually exclusive.

"MACD Divergence" Scan

This scan is based on John Murphy's discussion of MACD divergences in his book The Visual Investor. In the book, John points out that a positive divergence between the MACD and the MACD Histogram is one of the first signs that a stock is starting to move higher. This scan looks for stocks where the MACD is below the zero line and has dropped at least 5% in the last 10 days, while the MACD Histogram has risen at least 5% and crossed above the zero line during the same timeframe.

  [type = stock]
  and [MACD Line(12,26,9) < 0]
  and [MACD Line(12,26,9) < 10 days ago MACD Line(12,26,9) - AbsVal(10 days ago MACD Line(12,26,9) * 0.05)]
  and [MACD Hist(12,26,9) > 0] and [10 days ago MACD Hist(12,26,9) < 0]
  and [MACD Hist(12,26,9) > 10 days ago MACD Hist(12,26,9) + AbsVal(10 days ago MACD Hist(12,26,9) * 0.05)]

Note: The Absolute Value function is necessary to handle both positive and negative MACD Line and MACD Histogram values.

Gary Smith's "Classic Long" Scan

This scan is based on the stock picking methodology used by Gary B. Smith (of TheStreet.com fame). Gary looks for stocks that have moved significantly higher on strong volume and that closed higher than their previous five closes. Volume should have increased at by at least 50% and the stock's closing price should have increased by at least $1.00 (4% in our version of the scan) but no more than 6% on that move.

  [type = stock]
  and [today's SMA(50,volume) > 50000]
  and [today's volume >= today's SMA(50,volume) * 1.5]
  and [today's close > yesterday's close * 1.04]
  and [today's close < yesterday's close * 1.06]
  and [today's close > yesterday's max(5,close)]

Note: Gary looks for a $1 rise in price, but we prefer to work in percentages. Since a $1 increase in a $25 stock is a 4% rise, we can use that as a good approximation, keeping in mind that it will eliminate some higher-priced stocks that Gary's original criteria might not.

Gary Smith's "Classic Short" Scan

For short candidates, Gary scans for stocks that have moved significantly lower on very strong volume and that closed lower than their previous five closes. Volume should have increased at by at least 100% and the stock's closing price should have decreased by at least $1.00 (4% in our version of the scan).

  [type = stock]
  and [today's SMA(50,volume) > 50000]
  and [today's volume >= today's SMA(50,volume) * 2]
  and [today's close < yesterday's close * 0.96]
  and [today's close < yesterday's min(5,close)]

Note: Gary looks for a $1 drop in price, but we prefer to work in percentages. Since a $1 decrease in a $25 stock is a 4% drop, we can use that as a good approximation, keeping in mind that it will eliminate some higher-priced stocks that Gary's original criteria might not.

Tom DeMark's "Sequential" Entry Scan

Stocks with 9 consecutive days with the close greater than the close four days earlier.

  # Thomas DeMark's "Sequential" Buy Setup
  #  from "The New Science of Technical Analysis" p.140-145

  [type = stock]
  and [today's close < 4 days ago close]
  and [1 days ago close < 5 days ago close]
  and [2 days ago close < 6 days ago close]
  and [3 days ago close < 7 days ago close]
  and [4 days ago close < 8 days ago close]
  and [5 days ago close < 9 days ago close]
  and [6 days ago close < 10 days ago close]
  and [7 days ago close < 11 days ago close]
  and [8 days ago close < 12 days ago close]
  and [9 days ago close <= 13 days ago close]

  # Uncomment the following line to find _new_ signals.
  # and [10 days ago close > 14 days ago close]

Richard Estes' "Buy Buy Buy" Scan

Richard Estes' “Buy Buy Buy” scan looks for stocks that have three important bullish signals:

  • They've risen 5% over the last 5 days.

  • They've closed 15% higher than the highest closing price during the past year.

  • Their volume is above its 60-day moving average.

  [type = stock]
  and [today's close > 5 days ago close * 1.05]
  and [today's close > yesterday's max(200,close) * 1.15]
  and [today's volume > today's SMA(60,volume)]

Roger Cole's "Three Rally Days" Scan

Roger Cole's scan looks for three consecutive “Rally Days” with increasing volume on each day. A “Rally Day” is a day in which the high and the low are both higher than the previous day.

  [type = stock]
  and [today's high > yesterday's high]
  and [today's low >= yesterday's low]
  and [yesterday's high > 2 days ago high]
  and [yesterday's low > 2 days ago low]
  and [2 days ago high > 3 days ago high]
  and [2 days ago low > 3 days ago low]
  and [today's volume > yesterday's volume]
  and [yesterday's volume > 2 days ago volume]
  and [2 days ago volume > 3 days ago volume]

Note: Cole's original scan ignored so-called Inside and Outside days. This version is stricter.

Toby Crabel's "ID/NR4 Day" Scan

An “NR4 Day” is one where the range (high - low) is narrower than it has been for the previous 3 days. An “ID/NR4” is an NR4 pattern with the additional condition that the last day be an “Inside Day” - a day whose range is completely within the previous day's range.

  [type = stock]
  and [today's range < yesterday's min(3,range)]
  and [today's high < yesterday's high]
  and [today's low > yesterday's low]

Toby Crabel's "Four-Day Buy Pattern" Scan

Described in the November 1989 issue of Stocks & Commodities magazine. The setup is a higher open after an “Inside Day” that was itself preceded by a higher high. In the article, this pattern was described by Crabel as “very rare” and “profitable 91% of the time when traded without stops.”

  [type = stock]
  and [2 days ago high < 3 days ago high]
  and [yesterday's high < 2 days ago high]
  and [yesterday's low > 2 days ago low]
  and [today's open > yesterday's close]

Note: This scan is designed to run shortly after the market opens.

Jeff Cooper's Expansion Breakout

This scan finds stocks that are setting new 45-day highs with a range (high-low) that is the largest it's been in the past 10 days.

  [type = stock] 
  and [today's high > yesterday's max(44, high)]
  and [today's range >=  yesterday's max(9, range)]

Jeff Cooper's "Lizard Tail" Buy Scan

This scan finds short-term reversal opportunities with “a target of 5% in 5 days.” Looks for stocks setting a 10-day low and yet having an open and a close within the top 25% of today's range. Named after one of Jeff Cooper's favorite reversal patterns.

  [type = stock] 
  and [today's close > today's open]
  and [today's low < yesterday's min(9, low)]
  and [today's open >= [[today's range*0.75]+today's low]]
  and [today's close >= [[today's range*0.75]+today's low]]

Linda Raschke's "Holy Grail" Long Scan

This is a “buy the dips” scan from Linda Raschke's book Street Smarts. The scan uses Welles Wilder's ADX indicator to find stocks that have dipped in price while still remaining in a strong uptrend.

  [type = stock]
  and [today's adx line(14) > 30]
  and [5 days ago adx line(14) > 30]
  and [4 days ago adx line(14) > 5 days ago adx line(14)]
  and [today's low <= today's ema(20, close)]
  and [yesterday's low > yesterday's ema(20, close)]

Larry Connors' "RSI(2)" Scan

  [type = stock]
  and [today's SMA(20,volume) > 40000]
  and [today's SMA(60,close) > 20]
  and [today's close > today's SMA(200,close)]
  and [5 x today's rsi(2)]

Stochastic Pop and Drop

Developed by Jake Bernstein, modified by David Steckler and tweaked at StockCharts, here is a scan that uses the Stochastic Oscillator to idenfity price pops and price drops.

Bullish Stochastic Pop

The bullish Stochastic Pop looks for stocks with a long-term Stochastic Oscillator above 50, an ADX value below 20 and a short-term Stochastic Oscillator surge above 80.

  [type = stock]
  and [SMA(20,volume) > 40000]
  and [SMA(60,close) > 20]
  and [Slow Stoch %K(70,3) > 50] 
  and [ADX Line(14) < 20]
  and [today's Slow Stoch %K(14,3) x 80]

Bearish Stochastic Pop

The bearish Stochastic Pop looks for stocks with a long-term Stochastic Oscillator below 50, an ADX value below 20 and a short-term Stochastic Oscillator plunge below 20.

  [type = stock]
  and [SMA(20,volume) > 40000]
  and [SMA(60,close) > 20]
  and [Slow Stoch %K(70,3) < 50] 
  and [ADX Line(14) < 20]
  and [20 x today's Slow Stoch %K(14,3)]

Pocket Pivot Setup

This scan was developed by Chris Kacher and is explained further on his website, Virtue of Selfish Investing.

  // Only scan leading stocks
  [type = stock] 
  and [SMA(40,volume) > 500000]
  and [SMA(40,close) > 10]
  and [close > SMA(200,close)]
  
  // Today's volume should be larger than the highest down volume day over the prior 10 days
  and [volume > 1 days ago volume * 1 days ago ROC(1) / AbsVal(1 days ago ROC(1)) * -1]
  and [volume > 2 days ago volume * 2 days ago ROC(1) / AbsVal(2 days ago ROC(1)) * -1]
  and [volume > 3 days ago volume * 3 days ago ROC(1) / AbsVal(3 days ago ROC(1)) * -1]
  and [volume > 4 days ago volume * 4 days ago ROC(1) / AbsVal(4 days ago ROC(1)) * -1]
  and [volume > 5 days ago volume * 5 days ago ROC(1) / AbsVal(5 days ago ROC(1)) * -1]
  and [volume > 6 days ago volume * 6 days ago ROC(1) / AbsVal(6 days ago ROC(1)) * -1]
  and [volume > 7 days ago volume * 7 days ago ROC(1) / AbsVal(7 days ago ROC(1)) * -1]
  and [volume > 8 days ago volume * 8 days ago ROC(1) / AbsVal(8 days ago ROC(1)) * -1]
  and [volume > 9 days ago volume * 9 days ago ROC(1) / AbsVal(9 days ago ROC(1)) * -1]
  and [volume > 10 days ago volume*10 days ago ROC(1) / AbsVal(10 days ago ROC(1))* -1]
  
  // Prices just moved above 10 or 50 day SMA
  and [[close x SMA(10,close)] or [close x SMA(50,close)]]

Once you've run this scan, you'll need to visually inspect the candidates. You're looking for either an early buy point within a consolidation or, alternatively, a consolidation buy point for a leading stock already firmly entrenched in a strong uptrend. (This is very easy to do visually, but would be very tough to program into the scan.)

Last updated