Skip to main content

Unusual Volume Scans for ThinkOrSwim (4 Free Scans)

ScanFreeBeginner31 min video46 lines of codeJul 13, 2020Updated Oct 21, 2026

Free unusual volume scanner for ThinkOrSwim: 4 scans built on Relative Volume StDev for 4 SD spikes, repeat bursts, option strikes and SMAs.

Unusual Volume on a SPY chart in ThinkOrSwim
On this page

Overview

In this tutorial I build an unusual volume scanner in ThinkOrSwim: 4 scans written from scratch in custom study filters. Every scan reads Relative Volume StDev, a free study that comes with ThinkOrSwim and measures volume in standard deviations, so it only flags volume that is far from normal for that symbol.

The first scan finds 4+ standard deviation volume on the daily chart. The second looks for repeat bursts of 3+ standard deviation volume, the third takes that condition into the Option Hacker to find liquid strikes, and the fourth adds the 50-day and 200-day simple moving averages. It's episode 20 of my How to thinkScript series, for stock, futures and options traders who want ThinkOrSwim to do the searching.

Key Takeaways

  • The unusual volume scans read the RelVol plot of Relative Volume StDev, a free ThinkOrSwim study that measures volume in standard deviations from its recent average. I set its length to 50 bars.
  • Scan 1 is 1 line of thinkScript, RelativeVolumeStDev(50).RelVol >= 4. On the daily chart in the video it returned 8 stocks, led by Netflix after an 8% move on 4+ standard deviation volume.
  • Scan 2 flags 3+ standard deviation volume on at least 3 of the last 5 bars. In the video it found nothing on daily bars and found Netflix on the 1-hour chart.
  • Scan 3 runs the same condition in ThinkOrSwim's Option Hacker with open interest of at least 3,000 contracts and option volume of 300, then lists the matching strikes.
  • Scan 4 pairs 3+ standard deviation volume with the 50-day and 200-day simple moving averages. Any saved scan can send a push alert to your phone through Alert when scan results change.

What Counts as Unusual Volume in ThinkOrSwim

Unusual volume is volume that sits several standard deviations above a symbol's recent average. Before building any scans, I compared 2 built-in ThinkOrSwim volume studies on one chart: VolumeAvg and Relative Volume StDev, which the studies menu lists as RelativeVolumeStDev. I set both lengths to 50 bars.

Relative Volume StDev showed fewer bars than VolumeAvg. Some bars that were above average volume measured below 1 standard deviation. Fewer bars means less information, and less information makes it easier to filter out weak signals. That's why all 4 scans in this tutorial use Relative Volume StDev.

VolumeAvgRelative Volume StDev
Compares volume withIts average volumeIts average volume, measured in standard deviations
Length in the video50 bars50 bars (default 60)
Slightly above-average barShows as above averageCan fall below 1 standard deviation
Used in these scansNoYes, through the RelVol plot

For volume that keeps rising bar after bar instead of one spike, see our increasing volume scans. Our roundup of the best volume indicators for ThinkOrSwim covers relative volume, VWAP and OBV.

The Relative Volume StDev Study: Plots and Inputs

The Relative Volume StDev study is free in ThinkOrSwim and has 2 plots. RelVol is the volume bar, measured in standard deviations from the average of the previous bars. The second plot is the standard deviation line, a horizontal line at the level you choose. To add the study, search for relative volume in the studies menu.

InputDefaultIn the videoWhat it controls
length60 bars50 barsHow many bars go into the average and the standard deviation
Num Dev24, then 3Where the standard deviation line sits on the chart

When I set Num Dev to 4, the only bars highlighted in purple were the ones that met the 4 standard deviation criteria. The study's third setting, a yes/no switch, stayed at no.

The scans ignore Num Dev and that switch. The code reads RelVol and sets its own threshold, so RelativeVolumeStDev(50) needs only the length.

Reading Unusual Volume on a Chart

Unusual volume on its own doesn't tell you direction. Before writing the scans, I checked several charts with the line at 4 standard deviations, gathering information without assuming which way the signals would fire:

  • S&P. The 4+ standard deviation bar was bullish volume on a bullish candle, and price kept grinding higher after it.
  • S&P futures. The 4 standard deviation bar came with the June 11 sell-off, and it hadn't turned into a bigger flush lower when I recorded. The futures chart includes extended hours.
  • Nasdaq and QQQ. The Nasdaq chart showed nothing, while QQQ had several 4+ standard deviation bars on the selling during the February to March decline.
  • Livongo (LVGO). The first 4+ standard deviation spike came on a day that closed below its open, a bearish read, and bullish activity followed. Another spike came on a gap up of about 12.88% from the prior close to the open, an obvious case where you don't need a scan to see the volume.

A single 4 standard deviation bar is a weak read on its own, and volume that agrees with the overall trend says more. Either way, the study finds these bars fast: 1 to 3 bars on a daily chart at a threshold of 4. Lower it to 3 when you want more of them.

Scan 1: 4+ Standard Deviation Volume on the Daily Chart

The first scan finds stocks and futures where today's volume is at least 4 standard deviations above normal. In the video I call that extreme volume territory, often followed by a persistent move one way or the other. The scan doesn't say which way.

  1. Open the Scan tab, stay on the Stock Hacker, and clear any filters you have loaded.
  2. Click Add filter, choose Study, scroll down to Custom, and open the thinkScript Editor tab.
  3. Type the line below and click OK.
  4. Add stock filters for volume above 500,000 shares and a minimum price. My filter in the video said $10, and I'd raise it to $20 for decent liquidity.
  5. Set the aggregation to D for daily bars and click Scan.

This step’s code is free with an account. Create one or sign in.

The code reads: plot a signal when the RelVol plot of Relative Volume StDev, with a 50-bar length, is greater than or equal to 4. The parentheses after the study name tell ThinkOrSwim you're calling a built-in study, and the name after the dot picks the plot. The editor auto-suggests RelVol once you type the dot.

Netflix in the Video

My first run left out the length, so the study used its default 60 bars and the scan returned 7 results. With the length set to 50, it returned 8. Sorted by volume, Netflix was at the top. Its daily bar on Friday cleared the 4 standard deviation line, and the stock moved 8% that day on decent volume.

When I recorded the video, custom study filters in scans ran only in a real-money account, and they didn't work in paperMoney.

The Code tab on this page shows the code for scans 1, 2 and 4, plus the Option Hacker filter settings for scan 3. Paste each scan into its own custom study filter. If you're new to adding custom code, our guide on how to import a study or scan into ThinkOrSwim covers the basics.

Scan 2: 3+ Standard Deviation Volume on 3 of the Last 5 Bars

The second scan looks for repeat bursts of volume instead of a single spike. It needs 3+ standard deviation volume on at least 3 of the last 5 bars, a sign that money is flowing into a stock or futures market over several bars.

This step’s code is free with an account. Create one or sign in.

The first line uses def to store the condition as a variable instead of plotting it. volumeCondition returns 1 on a bar where RelVol is 3 or more and 0 where it isn't.

The second line adds those values with Sum over the last 5 bars, so a total of 3 or more means at least 3 of the 5 bars cleared 3 standard deviations.

Running It on Intraday Bars

On daily bars, this scan returned nothing in the video. I switched the aggregation to 1 hour and Netflix came up again. On the hourly chart with the line at 3, 3 of the last 5 bars were above it.

The aggregation sets what one bar is, so the same code works for swing trading and day trading. Choose 1 hour, 15 minutes or 5 minutes, and include or exclude extended hours. On a 1-minute chart, raise the threshold to something like 10 standard deviations to find rapid buying at an exact moment.

Scan 3: Unusual Volume on Option Strikes

The third scan takes the unusual volume condition into ThinkOrSwim's Option Hacker to find specific strikes worth a closer look. The closest description I have is what traders call a sweep: greater than usual volume in one option strike.

Study filters in the Option Hacker read the underlying stock, not the options, so this scan is a little restrictive. Treat each result as a starting point that needs more research.

  1. Copy the Scan 2 code, switch the Scan tab from Stock Hacker to Option Hacker, and clear any filters.
  2. Add a Study filter with the copied code. In the video, scanning all optionable symbols returned 7 stocks.
  3. Click Add filter, choose Option, and set Open Interest to at least 3,000 contracts, so liquidity and wide bid-ask spreads are less of a worry.
  4. Add a second Option filter for Volume. I used 300 as a starting guess.
  5. Click Scan, then change the drop-down from Stocks to Options to list the strikes instead of the underlyings.
FilterSetting in the videoPurpose
Study (Scan 2 code)3+ SD volume on 3 of the last 5 barsUnusual volume in the underlying
Open InterestAt least 3,000Liquid contracts
Volume300Contracts trading actively
Delta (optional)0.4 to 0.6At-the-money strikes only
Days to Expiration (optional)Minimum 360 or 365LEAPS only

In the video, the 2 option filters cut the list to 2 underlyings. The options view, on end-of-day data, listed liquid July 17 puts at strikes from 9 to 12, all fairly inexpensive. During market hours, the volume column updates as new orders come in.

Next, open the Trade tab for the symbol and check the options time and sales for unusual quantities. A good amount of new buying in strikes that already have liquidity is your first point of attack.

The last 2 filters in the table are optional. Delta from 0.4 to 0.6 keeps the scan on at-the-money strikes, and a minimum of 360 days to expiration, or 365 for a full year, finds unusual activity in LEAPS instead of weeklies.

Scan 4: Unusual Volume Near the 50-Day and 200-Day SMA

The fourth scan looks for unusual volume with price around the 50-day simple moving average and above the 200-day. I used simple moving averages, and you can swap in exponential ones or your own indicators.

This step’s code is free with an account. Create one or sign in.

The first 2 lines define the moving averages with SimpleMovingAvg.

SMAcondition reads price around the 50-day as a cross above it, with the close above the 200-day. volumeCondition is the same 3 standard deviation check from Scan 2, and the plot needs both to be true.

Three Ways to Read "Around the 50-Day"

  • Cross above. close crosses above SMA50 and close > SMA200, the version in the code above.
  • Within a percentage. AbsValue(close - SMA50) / close <= 0.02 measures the distance from the 50-day as a share of price. Here, within 2%.
  • Above both. close > SMA50 and close > SMA200 keeps it simple: price above both averages.

I wrote all 3 versions in the video, and the recording doesn't make clear which one was active when I ran the scan, so I can't say which version produced the results below. The Code tab uses the cross-above line, with the other 2 as comments you can swap in.

PHI in the Video

Netflix showed up again in the results, along with PHI. PHI closed down on the day and still passed: it had been on a tear, it was above both moving averages, and Friday's volume bar cleared even the 5 standard deviation line. The volume came from profit-taking inside a bullish trend.

Earlier on the PHI chart, a large volume spike was followed by sideways chop and then a large move higher. That's the pattern I call a hidden gem, and the member scans on the Unusual Volume Pro Scans page look for it.

How to Get Unusual Volume Alerts on Your Phone

ThinkOrSwim can alert you whenever a saved scan picks up a new symbol. Here's how I set it up in the video:

  1. Save the scan. I saved the moving average version as "unusual volume around 50 and 200 SMA".
  2. In the watchlist column on the left, use the + button to add a watchlist if you don't have one, then load the saved scan as the watchlist.
  3. Hover over the watchlist name and click Alert when scan results change.
  4. In the pop-up, turn on both sound and mobile notifications.

The push alert needs the ThinkOrSwim mobile app on your phone. With it installed, every symbol added to the scan results sends a notification, even when you're away from the screen.

How I Use the Unusual Volume Scan Results

An unusual volume scan builds a short list to check against the rules in your written trading plan. I treat it as a first layer. Adding your own indicators, such as our Simple Breakout Tool in scan form, cuts the list to a few focused ideas with both a directional bias and a volume bias. Members can start from the Simple Breakout Tool scans.

Each scan is a filter, and none of them gives you an entry by itself. Before you trade a result, decide where your stop goes and size the position so a stop-out costs a small, fixed share of your account. In the video, 4 standard deviation bars showed up on both up days and down days.

Volatility Box members get 4 more scans on the Unusual Volume Pro Scans page: unusual volume with Squeeze signals, near VWAP, hidden gems, and with Edge Signals on trend pullbacks. Members also have the Unusual Volume Dashboard. You'll find more free scans on the scans page.

The scans on real data

Drawn from real daily bars with the code on this page, through Oct 20, 2026. The scans read RelativeVolumeStDev with a 50-bar length: how many standard deviations a bar's volume sits above its 50-bar average. I ran scans 1, 2 and 4 on every stock and ETF in our data at each daily close. Scan 3 runs in the Option Hacker on open interest and option volume, which our data does not have, so it is left out.

The scans on Oct 20, 2026

Scan 1 (4+ standard deviations) returned 7: GE, DHR, RTX, GM, SE, HLT, MMM. Scan 2 (3+ standard deviations on 3 of the last 5 bars) returned 3: XLK, BLK, SVIX. Scan 4 (a close crossing above the 50 SMA, above the 200 SMA, on 3+ standard deviation volume) returned 1: MMM.

XLB, Oct 1, 2026

Unusual volume scan hit on a XLB daily chart in ThinkOrSwim, Oct 1, 2026: volume 4.7 standard deviations above its 50-bar average
XLB, Oct 1, 2026: the yellow bar under the chart is 4.7 standard deviations above the 50-bar average.

XLB is the most recent scan 1 hit among 44 well-known names. It closed -0.3% that day at $48.54, and ten trading days later it was at $50.58, +4.2% from the hit.

By the numbers

3,218Scan 1 hits
48.5%Scan 1 hits that closed up on the day
51.1%Higher 10 days later (any day: 51.8%)
350 / 199Scan 2 / scan 4 hits

Daily bars for every stock and ETF in our data from Oct 1, 2024 (scan 4 from Jun 1, 2025, once the 200 SMA has data) to Oct 20, 2026. Scan 4 hits were higher 10 days later 42.2% of the time, against 51.7% for any day over its dates. The scans find heavy volume, not its direction: 49% of the 4+ standard deviation days closed up.

Full thinkScript code

Unusual Volume.tsthinkScript · 46 lines
The full code is free with an account

Create a free account or sign in to copy all 46 lines and download the file.

Download

Unusual Volume Scans

The download is a .txt file with one ThinkOrSwim shared link: the Unusual Volume Dashboard, the same file our members-only Unusual Volume Dashboard tutorial offers. It does not contain the 4 scans built on this page. Their code is on the Code tab: paste each scan into its own custom study filter. To open the shared link, click Setup in the top right corner of ThinkOrSwim, choose Open shared item, and paste it in. If you haven't imported a shared item before, here's how to import into your ThinkOrSwim platform.

Download free

Video: Unusual Volume, built line by line

31 minutes on YouTube.

Watch on YouTube

Questions

How do I scan for unusual volume in ThinkOrSwim?

Open the Scan tab, click Add filter, choose Study, then Custom, and open the thinkScript Editor. Type plot signal = RelativeVolumeStDev(50).RelVol >= 4; and set the aggregation to D for daily bars. In the video, with stock filters for 500,000 shares of volume and a minimum price, the scan returned 8 stocks with 4+ standard deviation volume.

What is the Relative Volume StDev study in ThinkOrSwim?

Relative Volume StDev, listed as RelativeVolumeStDev, is a free ThinkOrSwim study that measures each bar's volume in standard deviations from its average over a set length, 60 bars by default. Its RelVol plot is the volume bar, and its second plot is a horizontal standard deviation line, set to 2 by default. Bars that clear the line are the unusual ones.

What standard deviation level counts as unusual volume?

In the video I use 4 standard deviations for extreme volume and 3 when I want more results or repeat bursts. In the video, a threshold of 4 left 1 to 3 bars on a daily chart. On a 1-minute chart you might raise it to something like 10 to catch rapid buying at one moment.

Why won't my custom unusual volume scan run in paperMoney?

When I recorded the video, custom study filters in the ThinkOrSwim Scan tab worked only with a real-money account, and paperMoney could not run them. Build and run the unusual volume scans from a live account login, then save them so you can load them as watchlists and turn on alerts.

Can I scan for unusual options volume in ThinkOrSwim?

Yes. Use the Option Hacker in the Scan tab with the unusual volume study filter, then add option filters such as open interest of at least 3,000 and volume of 300. Switch the results drop-down from Stocks to Options to see the strikes. Study filters there read the underlying stock, so the volume condition applies to the stock.

How do I run the unusual volume scan on an intraday chart?

Change the aggregation on the study filter. The code stays the same. In the video, the scan for 3 of the last 5 bars found nothing on daily bars and found Netflix on the 1-hour chart. You can pick 15 minutes, 5 minutes or 1 minute, and include or exclude extended hours.

How do I get a phone alert when a stock shows unusual volume?

Save the scan, load it as a watchlist, hover over the watchlist name and click Alert when scan results change. Turn on sound and mobile notifications in the pop-up. With the ThinkOrSwim mobile app installed, you get a push notification each time a new symbol is added to the scan results.

How is Relative Volume StDev different from VolumeAvg?

VolumeAvg compares volume with its plain average. Relative Volume StDev measures volume in standard deviations from that average, so bars that are only a little above average fall below 1 standard deviation. With both set to 50 bars in the video, the standard deviation version showed fewer bars, which filters out weaker signals.

Get each new indicator by email

One email on Sundays with the week's new tool and its code. A free account also unlocks every .txt download.

No credit card. Unsubscribe anytime.