Skip to main content Rate Of Change Indicator For ThinkOrSwim - Free Download Skip to main content Skip to content
Master the TTM Squeeze with our comprehensive 19-module course Start Learning →
TOS Indicators
  • Tools

    Categories

    • Indicators
    • Backtesters
    • Scans
    • Dashboards
    • thinkScript
    • Member Resources
    Browse Full Library

    Featured Tutorials

    Heiken Ashi Trend Indicator
    Heiken Ashi Trend Indicator
    Indicators

    Download our Custom Heiken Ashi indicator for ThinkOrSwim. Full ThinkScript code, formula...

    Learn more →
    Commodities Tracker
    Commodities Tracker
    Indicators

    For acceleration signals: trend-following strategies and buying pullbacks. For deceleration signals: short...

    Learn more →
    Build an Election Backtester in 10 Minutes
    Build an Election Backtester in 10 Minutes
    Backtesters

    Learn how to create a Post-Election Backtester in ThinkOrSwim to analyze market...

    Learn more →

    Popular Posts

    Unusual Volume
    Unusual Volume
    Scans

    Build 4 scans to easily find stocks with greater than...

    Learn more →
    Upcoming Earnings with High Short Interest
    Upcoming Earnings with High Short Interest
    Scans

    Build a scan to find stocks that are likely to...

    Learn more →
    Unusual Volume Pro Scans
    Unusual Volume Pro Scans
    Scans

    4 additional scans to find unusual volume overlapping with key...

    Learn more →
  • Courses
    Squeeze Course
    Squeeze Course
    19 Modules

    Scan, backtest, and trade the TTM Squeeze setup with precision.

    Unlock Course →
    Earnings Course
    Earnings Course
    3 Modules

    Master earnings plays with free indicators and proven strategies for ThinkOrSwim.

    Unlock Course →
    V-Shaped Reversals
    V-Shaped Reversals
    7 Modules

    Identify and trade powerful V-shaped reversal patterns with confidence and precision.

    Unlock Course →
    Fibonacci Trading
    Fibonacci Trading
    4 Modules

    Learn to trade Fibonacci retracements and extensions in ThinkOrSwim effectively.

    Unlock Course →
  • Products
    Futures Volatility Box Premium
    Futures Volatility Box

    Volatility models for 10 major futures markets, including micros & SPX.

    Explore Futures VB →
    Stock Volatility Box Premium
    Stock Volatility Box

    Dynamic support & resistance for 595+ stocks/ETFs, with a live scanner.

    Explore Stock VB →
    Opening Range Breakouts Premium
    Opening Range Breakouts

    Powerful live scanner & backtester for ORB strategies on 595+ stocks.

    Explore ORB Setups →
My Account
Back to Tutorials
Beginner 24 minutes ThinkOrSwim

Rate of Change Indicator for ThinkOrSwim (FREE)

Build a range-bound Rate of Change indicator with RSI confluence for ThinkOrSwim that identifies momentum reversals with better precision.

Download Indicator
How to install in ThinkOrSwim →
Table of Contents
  • Rate of Change Indicator Problems and Solutions
  • ROC Trading Signals and Setup Rules
  • Rate of Change Performance and Risk Management

Fix the Rate of Change Indicator’s Boundary Problem

Standard ROC has a fatal flaw: no defined boundaries. Unlike RSI or Stochastic, ROC can go to infinity, making it impossible to identify extreme readings.

This tutorial builds a range-bound ROC indicator that:

  • Creates dynamic boundaries using historical ROC extremes
  • Identifies true momentum exhaustion zones
  • Filters signals with RSI breakout confluence
  • Eliminates most false zero-line cross signals

No fluff—just the ThinkScript code and trading logic that makes ROC actually useful.

Rate of Change Indicator Problems and Solutions

Rate of Change measures momentum, but it has a fundamental flaw. ROC oscillates above and below zero without defined boundaries, making it impossible to identify extreme readings.

Unlike RSI (0-100 range) or Stochastic (0-100 range), ROC can theoretically go to infinity on the upside. ROC calculation is straightforward: [(Current Price – Price n periods ago) / Price n periods ago] × 100, but without context, the readings are meaningless.

The fix: create dynamic boundaries based on recent ROC history. Track the highest and lowest ROC values over a lookback period to define what constitutes “extreme” momentum for any given stock or timeframe.

Start by copying ThinkOrSwim’s built-in ROC code. Go to Studies → Rate of Change → click the scroll icon → copy the code. Paste it into a new custom study.

Add these lines to create dynamic range boundaries:

plot HighestROC = Highest(ROC, 50);
plot LowestROC = Lowest(ROC, 50);
plot MidpointHigh = HighestROC / 2;
plot MidpointLow = LowestROC / 2;

This creates four reference lines: the absolute highs/lows and midpoints that define extreme zones.

Define extreme conditions:

def ExtremeHigh = ROC = MidpointHigh;
def ExtremeLow = ROC >= LowestROC and ROC <= MidpointLow;

Now you can identify when ROC is in extreme territory—the zones where reversals are more likely.

Reference the built-in RSI signals:

def RSIUpSignal = RSI().UpSignal;
def RSIDownSignal = RSI().DownSignal;

Create momentum reversal signals:

def ROCUpSignal = ExtremeLow and ROC > ROC[1];
def ROCDownSignal = ExtremeHigh and ROC < ROC[1];

This detects when ROC starts reversing while in extreme zones.

Combine for final signals:

plot BullSignal = if (ROCUpSignal and RSIUpSignal) then ROC else Double.NaN;
plot BearSignal = if (ROCDownSignal and RSIDownSignal) then ROC else Double.NaN;

Signals only fire when both ROC reversal and RSI breakout occur simultaneously.

Make the signals visible:

BullSignal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
BullSignal.SetDefaultColor(Color.GREEN);
BearSignal.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
BearSignal.SetDefaultColor(Color.RED);

HighestROC.SetDefaultColor(Color.RED);
LowestROC.SetDefaultColor(Color.GREEN);
MidpointHigh.SetStyle(Curve.SHORT_DASH);
MidpointLow.SetStyle(Curve.SHORT_DASH);

ROC Trading Signals and Setup Rules

Bullish Setup: ROC in extreme low zone + momentum increasing + RSI breakout from oversold

Bearish Setup: ROC in extreme high zone + momentum decreasing + RSI breakdown from overbought

This combination filters out most false signals while catching momentum shifts at extremes.

Intraday (5-15 min): Use 20-30 period lookback. Markets move faster, so shorter history works better.

Daily charts: 50-period lookback captures about 10 weeks of data. Good for swing trading.

Weekly charts: Extend to 100+ periods for longer-term position trades.

High-volatility stocks: May need higher thresholds or longer lookbacks to avoid noise.

Index futures: Shorter lookbacks often work better due to constant activity and mean reversion tendencies.

Low-volume stocks: Be careful—momentum readings can be misleading with limited participation.

Too many signals: Increase the lookback period or add volume filters.

Missing reversals: Lower the midpoint threshold from /2 to /3 for more sensitive extreme zones.

Late signals: This is intentional. We're trading confirmation, not trying to pick exact tops and bottoms.

This works best when combined with support/resistance levels, volume analysis, and sector context. ROC signals near key price levels carry more weight. Momentum shifts on higher volume are more reliable.

Rate of Change Performance and Risk Management

This approach trades quality over quantity. You'll get fewer signals but higher probability setups. Momentum strategies typically have lower win rates but can capture significant moves when correct.

Don't expect this to work in all market conditions. Choppy, news-driven markets will generate more false signals regardless of filtering.

Momentum reversals can fail quickly. Set stops outside the extreme zone where the signal triggered. Take partial profits if momentum continues in your favor. Don't average down on failed signals. Size positions appropriately—momentum trades can be volatile.

Use chart bubbles to verify your logic works:

AddChartBubble(ExtremeHigh, ROC, "Extreme High", Color.RED);
AddChartBubble(ExtremeLow, ROC, "Extreme Low", Color.GREEN);

This helps you see when conditions trigger and verify the indicator behaves as expected.

Once you understand the basic concept, consider multi-day consistency (look for extreme readings that persist across multiple sessions), volume integration (add volume rate of change as an additional filter), or adaptive periods (automatically adjust lookback based on recent volatility).

This indicator doesn't predict the future or guarantee profitable trades. It identifies when momentum reaches extreme levels and starts reversing, with RSI confirmation. It won't work in all market conditions. Strong trending markets can stay extreme longer than this approach suggests.

Start with the basic version and understand how it behaves before adding modifications. Test on paper first, then small size, then gradually increase exposure as you gain confidence. The goal isn't to find the perfect indicator—it's to add another layer of confirmation to your existing process.

Rate of Change Indicator.ts
# Range-Bound Rate of Change Indicator for ThinkOrSwim
# Creates dynamic boundaries and integrates RSI confirmation

# Base ROC calculation (from TOS built-in)
input price = close;
input length = 12;
def ROC = ((price - price[length]) / price[length]) * 100;

# Range boundaries
plot HighestROC = Highest(ROC, 50);

// ... 34 more lines ...

Unlock This Code

Create a free account to access the full source code and download files.

Create Free Account Login
Standard ROC just oscillates around zero with no defined boundaries. This approach creates dynamic ranges based on recent highs/lows, so you can actually identify when momentum reaches extreme levels. Plus it requires RSI confirmation to filter false signals.
ROC shows momentum direction but RSI breakout signals confirm when that momentum is actually shifting from overbought/oversold conditions. The confluence requirement eliminates most false signals you'd get from ROC zero-line crosses alone.
Use 20-30 period lookback on intraday charts (5-15 min), 50 periods on daily charts for swing trading, and 100+ periods on weekly charts for position trades. The key is matching the lookback period to your trading timeframe.
Increase the lookback period to smooth out noise, or add volume filters to confirm momentum shifts. Also consider the broader market context—this approach works better in trending or range-bound markets than during news-driven chop.
Yes. Change "HighestROC / 2" to "HighestROC / 3" for more sensitive extreme zones (more signals), or "HighestROC / 1.5" for less sensitive zones (fewer signals). Test different ratios to match your trading style.
No. Use it as confirmation within your existing strategy. Combine with support/resistance levels, trend analysis, and proper risk management. It identifies potential reversal setups but isn't a complete trading system by itself.
Place stops outside the extreme zone where the signal triggered. If you get a bull signal in the lower extreme zone, set your stop below the recent low that created that zone. This gives the momentum reversal room to develop.
It works on any liquid market with sufficient volatility. Futures often need shorter lookbacks due to continuous trading. Forex pairs may need longer periods due to 24-hour activity. Adjust the settings based on each market's typical momentum patterns.

Here are some resources that you may find useful:

  • How to import an indicator into ThinkOrSwim (video tutorial)
Featured Tools:
Stock Volatility Box

Stock Volatility Box

Spot reversal zones across 600 stocks & ETFs.

  • Hourly & daily models
  • Powerful Live Scanner
  • Built for day traders
Futures Volatility Box

Futures Volatility Box

Pinpoint reversal zones in 10 major futures markets.

  • 5 models (incl. Scalper)
  • ThinkOrSwim & TradingView
  • SPX traders
ORB Setups

ORB Setups

Find the best Opening Range Breakout setups.

  • Powerful real-time scanner
  • Instant backtests
  • 2+ years data

Get Free Access

Create a free account for downloads and new tutorial alerts.

Create Free Account

More Tutorials Like This

Dividend Yield Pro

Dividend Yield Pro

Intermediate • 28 minutes
Parabolic SAR

Parabolic SAR

Intermediate • 65 minutes
Pre-Earnings Analysis

Pre-Earnings Analysis

Beginner • 33 minutes

Ready to Trade With an Edge?

Join 40,000+ traders using institutional-grade tools for ThinkOrSwim.

Get the Bundle
TOS Indicators

Premium thinkorswim indicators, scans, and trading tools to help you trade smarter.

ThinkOrSwim Tools

  • Indicators
  • Scans
  • Backtesters
  • Dashboards
  • thinkScript
  • Browse All

Courses

  • Squeeze Course
  • Earnings Course
  • V-Shaped Reversals
  • Fibonacci Trading

Products

  • Futures Volatility Box
  • Stock Volatility Box
  • ORB Setups
  • Shop All

Guides

  • TTM Squeeze
  • Automated Trading
  • Volatility Trading
  • Opening Range Breakouts
  • Trade Reports
  • Contact Us

© 2026 TOS Indicators. All rights reserved.

Privacy Policy Terms of Service Disclaimer

The information contained on this website is solely for educational purposes, and does not constitute investment advice. The risk of trading in securities markets can be substantial. You must review and agree to our Terms of Service prior to using this site.

U.S. Government Required Disclaimer - Commodity Futures Trading Commission. Futures and options trading has large potential rewards, but also large potential risk. You must be aware of the risks and be willing to accept them in order to invest in the futures and options markets. Don't trade with money you can't afford to lose. This website is neither a solicitation nor an offer to Buy/Sell futures or options. No representation is being made that any account will or is likely to achieve profits or losses similar to those discussed on this website. The past performance of any trading system or methodology is not necessarily indicative of future results.

Individual results may vary, and testimonials are not claimed to represent typical results. All testimonials are by real people, and may not reflect the typical purchaser's experience, and are not intended to represent or guarantee that anyone will achieve the same or similar results.

TOS Indicator's Traders and employees will NEVER manage or offer to manage a customer or individual's options, stocks, currencies, futures, or any financial markets or securities account. If someone claiming to represent or be associated with TOS Indicator solicits you for money or offers to manage your trading account, do not provide any personal information and contact us immediately.

CFTC RULE 4.41 - HYPOTHETICAL OR SIMULATED PERFORMANCE RESULTS HAVE CERTAIN LIMITATIONS. UNLIKE AN ACTUAL PERFORMANCE RECORD, SIMULATED RESULTS DO NOT REPRESENT ACTUAL TRADING. ALSO, SINCE THE TRADES HAVE NOT BEEN EXECUTED, THE RESULTS MAY HAVE UNDER-OR-OVER COMPENSATED FOR THE IMPACT, IF ANY, OF CERTAIN MARKET FACTORS, SUCH AS LACK OF LIQUIDITY, SIMULATED TRADING PROGRAMS IN GENERAL ARE ALSO SUBJECT TO THE FACT THAT THEY ARE DESIGNED WITH THE BENEFIT OF HINDSIGHT. NO REPRESENTATION IS BEING MADE THAT ANY ACCOUNT WILL OR IS LIKELY TO ACHIEVE PROFIT OR LOSSES SIMILAR TO THOSE SHOWN.