Skip to main content

DMI Power Move Scans for ThinkOrSwim (Free Download)

ScanFreeBeginner24 min video37 lines of codeNov 20, 2019Updated Oct 21, 2026

Three free DMI scans for ThinkOrSwim that stack DMI zones across timeframes: a daily trend, a 4-hour to 1-hour pullback, and a turn on a short chart.

DMI Power Move Scans on a SPY chart in ThinkOrSwim
On this page

Overview

In this tutorial I turn our multi-timeframe DMI indicator into a DMI scan for ThinkOrSwim and build the bullish Power Move scan step by step. It finds stocks in a bullish DMI zone on the daily chart, pulling back on the 4-hour, 2-hour and 1-hour charts, and turning bullish again on a shorter chart.

I also lay out a bearish scan that flips each condition and a neutral scan that looks for no DMI trend on the weekly, daily and 1-hour charts, for traders who sell options. All 3 scans are in the download as shared links, and every filter uses the same short block of code, so you can add, remove or swap timeframes to fit the way you trade.

Key Takeaways

  • The DMI Power Move scans are 3 ThinkOrSwim scans built from our MTF DMI indicator: a bullish domino scan, a bearish domino scan and a neutral scan.
  • The bullish scan looks for a bullish DMI zone on the daily chart, bearish zones on the 4-hour, 2-hour and 1-hour charts, and a bullish turn on the 30-minute, 15-minute or 5-minute chart.
  • A timeframe is in a bullish or bearish DMI zone only when ADX is at or above 20. Members suggested ADX levels from 15 to 25, where ThinkOrSwim's documentation uses 50.
  • Every filter runs the same code. You pick the condition by switching BullishZone, BearishZone or NeutralZone from def to plot, and the timeframe with the filter's aggregation.
  • In the video, the bullish scan found nothing with a 30-minute trigger, 1 stock (PDD) with a 15-minute trigger, and another, PWR, with a 5-minute trigger.

What the DMI Power Move Scans Look For

The DMI Power Move scans look for DMI zones that line up across timeframes like falling dominoes. In the bullish case, the daily chart is in a bullish zone, the middle timeframes are pulling back in bearish zones, and the shortest timeframes are turning bullish again. The pullback is the area of opportunity to join the bigger trend.

TimeframeBullish domino scanBearish domino scanNeutral scan
WeeklyNot usedNot usedNeutral
DailyBullishBearishNeutral
4-hour and 2-hourBearishBullishNot used
1-hourBearishBullishNeutral
30, 15 and 5-minuteBullishBearishNot used

The table is the plan I laid out before building. The video builds only the bullish scan, so the bearish and neutral columns come from that plan. In practice I used one short-timeframe trigger at a time and moved it until the scan returned results.

The DMI Zones Behind Every Filter

Each Power Move filter checks one DMI zone on one timeframe, using the zones from our free MTF DMI indicator. That page explains DI+, DI- and ADX and how the indicator calculates them. In short:

  • BullishZone: DI+ is above DI- and ADX is at or above ADXLevels (20).
  • BearishZone: DI+ is below DI- and ADX is at or above 20.
  • NeutralZone: neither one, so ADX is below 20 or the two lines are equal.

You can check any scan result by adding the MTF DMI to a chart. Its labels show the same three zones for 17 timeframes in green, red and yellow.

Member Feedback Behind Version 2

The DMI Power Move scans use version 2 of the MTF DMI, shaped by notes from four members after the first release:

  • The slope of the DI+ line and the ADX matter more than the DI- line.
  • An ADX of 20, or 25 for some traders, shows a trend better than the 50 ThinkOrSwim suggests. With 50, the first video found no entries at all.
  • DI+ and DI- crossovers tend to give false signals when volatility is low and late signals when volatility is high.
  • One member looks for ADX between 15 and 25.

Version 2 made 3 changes. Two came from those notes: an ADX at-or-above-20 condition on the bullish and bearish zones, and an input to change that level in one place. The third answered members who found the first version slow: it removed the narrow-range test, 6 lines per timeframe block. The slope and volatility notes are not part of the code.

On the first chart I compared, version 1 went back and forth between yellow and red through a down move, with red islands. Version 2 printed a steady stream of red candles on the same move, turned green earlier on the way back up, and left one green island. On another chart, version 2 stayed yellow where version 1 had a few green fake-out candles.

The DMI Scan Code

The DMI scan code is the bottom block of the MTF DMI indicator, the part whose variable names have no timeframe in them, plus 3 of its inputs:

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

Below the inputs sit the same DMI lines as the indicator: the high and low differences, plus and minus directional movement, their averages, DX and ADX. None of them name a period, so they run on whatever aggregation you set on the scan filter. The last 3 lines pick the condition:

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

A scan filter needs a plot, and the plot is the condition the scan checks. For a bearish filter, change def BearishZone to plot and turn plot BullishZone back into a def.

The Code tab has the bullish scan rebuilt from the steps in the video on the current version 2 MTF DMI code, set to the bullish zone. The original bullish, bearish and neutral scans are the 3 shared links in the download.

How to Build the Bullish DMI Scan in ThinkOrSwim

  1. Open the MTF DMI code, scroll to the bottom, and copy the block whose variable names have no timeframe in them.
  2. In the Scan tab, click Add filter, choose Study, open the study list, pick Custom and switch to the thinkScript Editor. Paste the code.
  3. ThinkOrSwim flags the missing length and average type. Copy the length, ADXLevels and averageType inputs from the top of the indicator and paste them above the code.
  4. Delete the AssignPriceColor line, since a scan doesn't color candles. ThinkOrSwim then reports that at least one plot should be defined.
  5. Change def BullishZone to plot BullishZone and set the aggregation to D. Copy the code before you click OK so you can paste it into the next filters.
  6. Add a filter with BearishZone plotted for each pullback timeframe: 4-hour, 2-hour and 1-hour. I unchecked extended hours on the 4-hour filter, since this scan is for stocks.
  7. Add the trigger: BullishZone plotted on a 30-minute filter. If nothing comes back, move it to 15 minutes or 5 minutes.

Run the scan after each new filter. After adding the 2-hour filter I checked that the scan still returned candidates, and again after the 1-hour, so the criteria didn't get too narrow. Results can take a while to load, so give the scan time before you decide it's empty.

The Add filter, Study, Custom path is the same one I use in our increasing volume scan tutorial, if you want a shorter example first.

The Bearish and Neutral DMI Scans

The bearish and neutral Power Move scans come from the plan in the video. I built only the bullish scan on camera. The other two are in the download as shared links, and the video doesn't show the exact filters inside them.

In the plan, the bearish scan is the bullish scan flipped: BearishZone on the daily chart, BullishZone on the 4-hour, 2-hour and 1-hour charts, and BearishZone again on the 30, 15 and 5-minute charts. It looks for a downtrend with a bounce on the middle timeframes that starts to roll over.

The neutral scan in the plan uses NeutralZone on 3 filters: weekly, daily and 1-hour, with the 1-hour standing in for the shorter timeframes. It looks for stocks with no DMI trend on any of the three, which suits traders who sell options and want candidates for spreads and iron condors.

What the DMI Scan Found in the Video

The bullish DMI scan returned few names in the video once the short-timeframe trigger was added. These results are from the day I recorded, so your list will be different:

  • 30-minute trigger. No results.
  • 15-minute trigger. 1 result, PDD. On PDD's 15-minute chart, the MTF DMI labels showed 15m green, 30m red (which is why it missed the 30-minute scan), 4H and 2H red, and the daily green.
  • PDD on the V-Score. Price was near the 2 standard deviation line on our V-Score indicator.
  • 5-minute trigger. Another candidate, PWR.

PDD fit the plan: a decisive bullish daily chart, bearish short-term charts, and a bullish turn starting on the 15-minute chart.

How I Use the Power Move Scans

The Power Move scans build a list of stocks whose timeframes line up the way I want. A scan hit is a filter, and it doesn't give you an entry by itself. I open each result with the MTF DMI on the chart, confirm the labels, and add the indicators I usually check, like moving averages or the V-Score.

Treat the filters as Lego blocks. If you like pullbacks, build a pullback scan. If you want the 1-hour to make the bullish turn while the 2-hour and 4-hour are still bearish, move the trigger there. Building the logic yourself means you know why each stock showed up.

In the video I pair the bullish scan with our Stock Volatility Box, which members use to find an entry on a buy-the-dip candidate. Whatever you use, decide where your stop goes before you enter, and size the position so a stop-out costs a small, fixed share of your account.

Customizing the DMI Scans

The DMI Power Move scans change quickly because every filter is the same code. These are the settings I'd look at first:

  • Timeframes. Change the aggregation on any filter, or remove a filter when the scan returns nothing.
  • ADX level. ADXLevels is 20 by default. Members use 15 to 25: lower it for more results, raise it for stricter zones.
  • Extended hours. I turned them off for stocks. If you trade futures, you may want them on.
  • New scans. Any mix of BullishZone, BearishZone and NeutralZone across timeframes is a new scan, built from the same block.

How to Import the Ready-Made DMI Scans

The DMI Power Move download is a .txt file with 3 ThinkOrSwim shared links: Bullish Power Move Domino Scan, Bearish Power Move Domino Scan and Neutral Power Move Scan. To load one:

  1. In ThinkOrSwim, click Setup in the top right corner.
  2. Choose Open shared item.
  3. Paste in the link and save the scan.

These shared links are the original scans from 2019. The MTF DMI renamed its ADX input from ADXLength to ADXLevels on 11/21/19, so if a scan was saved before that, its code may use the older name ADXLength for the same setting.

To type the filters yourself, use the code on the Code tab and the steps above. Our guide on how to import a study or scan into ThinkOrSwim walks through shared items, and you'll find more free scans on our scans page.

The scans on real data

Drawn from real intraday bars with the code on this page, through the Oct 20, 2026 close. I ran the bullish scan as built in the video, a bullish DMI zone on the daily, bearish zones on the 4-hour, 2-hour and 1-hour, and a bullish zone on the 30-minute trigger, and its mirror image for the bearish scan, on 44 stocks and ETFs at each day's close. Intraday bars of an hour and longer are built from 30-minute bars starting at 9:30.

BAC, Aug 28, 2026: higher five days later

DMI Power Move bullish scan hit on a BAC 30-minute chart in ThinkOrSwim, Aug 28, 2026: daily bullish, 4-hour, 2-hour and 1-hour bearish, 30-minute turning bullish
BAC on Aug 28, 2026: the labels show the five zones the scan checks at the close; candles take the 30-minute zone color.

BAC closed at $62.32 on Aug 28, 2026 with the daily trend bullish, the 4-hour, 2-hour and 1-hour charts pulling back, and the 30-minute chart turning bullish again. Five trading days later, on Sep 4, 2026, it closed at $62.68, +0.6%.

DIS, Sep 10, 2026: lower five days later

DMI Power Move bullish scan hit on a DIS 30-minute chart in ThinkOrSwim, Sep 10, 2026, that was lower five days later
DIS on Sep 10, 2026: the same five zones.

DIS met the same conditions at the Sep 10, 2026 close, $105.85, and closed at $105.34 on Sep 17, 2026, -0.5%.

By the numbers

22Bullish scan hits
22Bearish scan hits
63.6%Bullish hits higher 5 days later
52.8%Any day higher 5 days later

44 stocks and ETFs, scanned at every close from Nov 15, 2024 to Oct 20, 2026. The bearish hits were lower 5 days later 50.0% of the time. 44 hits in two years is too few to call either number an edge. With five timeframes required the scan is rare; in the video it found nothing with a 30-minute trigger and one stock each with 15 and 5-minute triggers. A scan run during the day would also catch setups that came and went before the close.

Full thinkScript code

DMI Power Move Scans.tsthinkScript · 37 lines
The full code is free with an account

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

Download

DMI Power Move Scans

Download the DMI Power Move Scans for ThinkOrSwim. The download is a .txt file with 3 ThinkOrSwim shared links: the Bullish Power Move Domino Scan, the Bearish Power Move Domino Scan and the Neutral Power Move Scan. In ThinkOrSwim, click Setup in the top right corner, choose Open shared item, and paste in a link. The shared links are the original scans. The Code tab on this page has the bullish scan rebuilt from the steps in the video on the current MTF DMI code. If you haven't imported a shared item before, here's how to import into your ThinkOrSwim platform.

Download free

Video: DMI Power Move Scans, built line by line

24 minutes on YouTube.

Watch on YouTube

Questions

What are the DMI Power Move scans?

They are 3 free ThinkOrSwim scans built from our MTF DMI indicator. The bullish scan looks for a bullish daily DMI zone, bearish 4-hour, 2-hour and 1-hour zones, and a bullish turn on a shorter chart. The bearish scan is the opposite, and the neutral scan looks for no DMI trend on the weekly, daily and 1-hour charts.

How do I build a DMI scan in ThinkOrSwim?

In the Scan tab, click Add filter, choose Study, pick Custom and open the thinkScript Editor. Paste the DMI code from this page, set one zone, such as BullishZone, to plot, and choose the aggregation for that filter. Add a new filter for each timeframe in the same way, then run the scan.

What ADX level do the Power Move scans use?

The scans use an ADXLevels input of 20. A timeframe counts as bullish or bearish only when ADX is at or above it. ThinkOrSwim's documentation uses 50, but in the first video no entries passed that test. Members suggested 15 to 25, so lower it for more results or raise it for stricter zones.

Why does my scan say at least one plot should be defined?

A scan filter needs a plot to know which condition to check. Once you delete the AssignPriceColor line from the indicator code, every line is a def. Change one zone, such as def BullishZone, to plot BullishZone and the error goes away. Keep one plot per filter: when I switched a filter to BearishZone, I turned BullishZone back into a def.

Why did my DMI scan return no results?

The criteria may be too strict for that day. In the video, the bullish scan with a 30-minute trigger returned nothing, so I moved the trigger to 15 minutes and got 1 result, then tried 5 minutes. Run the scan after each filter you add, and give it time, because results can take a while to load.

What does the neutral DMI scan find?

In the plan from the video, it finds stocks in a neutral DMI zone on the weekly, daily and 1-hour charts, which means none of the three is in a bullish or bearish zone, usually because ADX is below 20. That points to stocks without a strong trend, which suits traders who sell options and want candidates for spreads or iron condors.

Should I include extended hours in the DMI scan?

For stocks, I left extended hours unchecked when I set up the 4-hour filter in the video. If you use the same logic on futures, you may want extended hours turned on, since futures trade outside regular stock hours. The setting sits on each study filter, next to the aggregation.

How are the Power Move scans different from the MTF DMI indicator?

The MTF DMI indicator shows the DMI zone of 17 timeframes on one chart as colored labels. The Power Move scans use the same zones to search the market, one filter per timeframe, so you find stocks where the zones line up instead of checking charts one by one. I use the indicator to confirm each scan result.

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.