Skip to main content TTM Squeeze Backtester For ThinkOrSwim 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-Friendly 17 mins ThinkOrSwim

TTM Squeeze Backtester

Build a TTM Squeeze Backtester that allows you to test squeezes on different time frames, with to find the best nK and nBB factor settings

Download Backtester
How to install in ThinkOrSwim →
Table of Contents
  • The Complete Guide to Building a TTM Squeeze Backtester in ThinkOrSwim
  • Understanding TTM Squeeze Parameters and Optimization Opportunities
  • Building the Manual Backtester Framework in ThinkOrSwim
  • Implementing Trend Direction Logic for Enhanced Performance
  • Entry and Exit Logic for Systematic Testing
  • Optimization Methodology and Testing Approach
  • Practical Application: Apple (AAPL) Optimization Case Study
  • Timeframe Considerations and Multi-Period Testing
  • Advanced Optimization Techniques and Considerations
  • Performance Metrics and Evaluation Criteria
  • Implementation Best Practices and Common Pitfalls
  • Integration with Broader Trading Strategies

Build Your Own TTM Squeeze Backtester for ThinkOrSwim

Learn how to create a manual TTM Squeeze backtester that optimizes nK and nBB factor settings for maximum profitability. This free backtester helps you discover stock-specific settings that can dramatically improve your squeeze trading results.

This comprehensive TTM Squeeze backtester tutorial teaches you to build:

  • Manual backtester with customizable nK and nBB factors for optimization testing
  • Strategy framework using exponential moving averages for trend determination
  • Automated entry and exit logic based on 5-dot squeeze patterns
  • Profit and loss reporting to compare different parameter combinations

Perfect for traders wanting to optimize TTM Squeeze settings without expensive commercial backtester tools, using ThinkOrSwim’s built-in strategy testing capabilities.

The Complete Guide to Building a TTM Squeeze Backtester in ThinkOrSwim

The TTM Squeeze indicator, invented by John Carter, has become one of the most popular volatility-based trading tools available. However, most traders use default settings without realizing that optimized parameters can dramatically improve performance. Building a manual TTM Squeeze backtester allows you to systematically test different settings and discover configurations that work best for specific stocks and timeframes.

The motivation for creating a custom TTM Squeeze backtester comes from John Carter’s recent development of “Squeeze Pro” – an updated version with optimized settings that provide more accurate and frequent signals. Rather than paying hundreds of dollars for commercial backtesters, you can build your own testing framework using ThinkOrSwim’s strategy capabilities.

This approach proves its value through concrete results. Testing on Apple (AAPL) revealed that changing the nBB factor from 2.0 to 1.5 improved profitability by nearly 300%. Such dramatic improvements highlight why parameter optimization deserves systematic attention rather than relying on default settings across all markets.

Understanding TTM Squeeze Parameters and Optimization Opportunities

The TTM Squeeze backtester focuses on three critical parameters that significantly impact performance: length, nK factor, and nBB factor. Each parameter influences how the squeeze identifies compression periods and generates signals, making systematic testing essential for optimization.

The length parameter determines the lookback period for volatility calculations, typically defaulting to 20 periods. Shorter lengths create more sensitive squeeze detection, generating more frequent signals but potentially increasing false positives. Longer lengths reduce sensitivity, creating fewer but potentially higher-quality signals.

The nK factor controls Keltner Channel width, affecting squeeze sensitivity. The default 1.5 setting works well for many markets, but some stocks benefit from higher values (2.0-2.5) that reduce false signals, while others perform better with lower values (1.0-1.3) that increase sensitivity to volatility compression.

The nBB factor determines Bollinger Band width relative to Keltner Channels. The default 2.0 setting represents two standard deviations, but optimization often reveals that 1.5 or 2.5 settings produce better results for specific stocks. This parameter significantly impacts squeeze frequency and accuracy.

Understanding these relationships enables systematic testing approaches. Rather than random parameter changes, the TTM Squeeze backtester allows methodical exploration of parameter space to identify optimal combinations for different market characteristics and trading timeframes.

Building the Manual Backtester Framework in ThinkOrSwim

Creating a TTM Squeeze backtester requires using ThinkOrSwim’s Strategy tab rather than the Studies tab. This distinction is crucial because strategies provide profit and loss reporting necessary for comparing different parameter combinations. Studies only display visual signals without performance metrics.

The backtester framework begins with defining input variables for the parameters you want to optimize. This approach allows easy testing of different combinations without rewriting code each time. The core variables include length, nK factor, and nBB factor as adjustable inputs.

Here’s the foundation structure for the TTM Squeeze backtester:

# TTM Squeeze Backtester Input Variables
input length = 20;
input nK = 1.5;
input nBB = 2.0;

# Define the squeeze with customizable parameters
def squeeze = TTMSqueeze(close, length, nK, nBB, 1.0).SqueezeAlert;

# Create 5-dot squeeze condition
def fiveDotSqueeze = Sum(squeeze == 0, 5) == 5;

This structure allows rapid testing of different parameter combinations by simply changing the input values and observing the resulting profit and loss performance. The systematic approach eliminates guesswork and provides concrete data for optimization decisions.

The backtester incorporates John Carter’s recommended approach of waiting for at least five consecutive squeeze dots before entering trades. This patience requirement helps filter out premature signals while ensuring adequate compression has built before the expected expansion phase.

Implementing Trend Direction Logic for Enhanced Performance

Successful TTM Squeeze backtesting requires incorporating trend direction logic to avoid trading against prevailing market conditions. John Carter emphasizes using moving averages rather than histogram analysis for determining squeeze direction, as this approach provides more reliable trend identification.

The backtester implements a three-EMA system using 13, 21, and 34-period exponential moving averages. This combination provides both responsiveness to trend changes and stability to avoid whipsaws. The trend logic ensures trades align with market momentum rather than fighting against it.

Bullish conditions require the 13 EMA above the 21 EMA, and the 21 EMA above the 34 EMA. This stacked arrangement confirms upward momentum exists when squeeze signals trigger. Bearish conditions reverse this requirement, with shorter EMAs below longer ones confirming downward momentum.

The trend filtering logic looks like this:

# Define exponential moving averages for trend detection
def ema13 = ExpAverage(close, 13);
def ema21 = ExpAverage(close, 21);
def ema34 = ExpAverage(close, 34);

# Bullish and bearish trend conditions
def bullish = ema13 > ema21 and ema21 > ema34;
def bearish = ema13 < ema21 and ema21 < ema34;

# Combined entry signals
def bullishSignal = fiveDotSqueeze and bullish;
def bearishSignal = fiveDotSqueeze and bearish;

This trend filtering dramatically improves backtesting results by ensuring squeeze signals align with market direction. Testing without trend filters often produces mediocre results due to counter-trend trades that fight established momentum.

Entry and Exit Logic for Systematic Testing

The TTM Squeeze backtester implements simple but effective entry and exit logic that focuses on parameter optimization rather than complex position management. This approach isolates the impact of squeeze settings from other trading variables that could confound optimization results.

Entry logic triggers when both the five-dot squeeze condition and appropriate trend alignment occur simultaneously. The backtester enters positions at the close of the triggering bar, simulating realistic execution conditions without assuming perfect timing or price improvement.

Exit logic uses two mechanisms: trend-based exits and profit target exits. Trend-based exits trigger when the 13 EMA crosses below the 21 EMA (for long positions) or above the 21 EMA (for short positions). This approach captures momentum changes that often coincide with squeeze resolution.

Profit target exits trigger when positions reach predetermined percentage gains, typically 3% for testing purposes. This mechanism captures profits from successful squeeze breakouts without waiting for full trend reversals that might give back gains.

The complete entry and exit framework:

# Entry orders
AddOrder(OrderType.BUY_TO_OPEN, bullishSignal, close, 100);
AddOrder(OrderType.SELL_TO_OPEN, bearishSignal, close, 100);

# Trend-based exits
def exitBullish = ema13 = ema21[1];
def exitBearish = ema13 > ema21 and ema13[1] = entryPrice() * 1.03, entryPrice() * 1.03, 100);
AddOrder(OrderType.BUY_TO_CLOSE, low <= entryPrice() * 0.97, entryPrice() * 0.97, 100);

This systematic approach enables fair comparison between different parameter combinations by maintaining consistent entry and exit logic across all tests.

Optimization Methodology and Testing Approach

Effective TTM Squeeze backtester optimization requires systematic methodology rather than random parameter changes. The goal is identifying parameter combinations that consistently outperform defaults across different market conditions and timeframes.

Start optimization by establishing baseline performance using default settings (length=20, nK=1.5, nBB=2.0). Record the total profit/loss, number of trades, win rate, and average trade duration. These metrics provide comparison benchmarks for subsequent parameter testing.

Test parameters individually before combining changes. For example, test different length values (10, 15, 20, 25, 30) while keeping nK and nBB at defaults. This approach isolates each parameter's impact and identifies which changes provide the most improvement.

The systematic testing process follows this sequence:

**Phase 1: Length Optimization**
Test values from 10 to 30 in 5-period increments. Shorter lengths typically increase trade frequency but may reduce profitability per trade. Longer lengths often improve win rates but decrease trade frequency.

**Phase 2: nK Factor Testing**
Test values from 1.0 to 2.5 in 0.25 increments using the optimal length from Phase 1. Lower values increase squeeze sensitivity, while higher values reduce false signals.

**Phase 3: nBB Factor Optimization**
Test values from 1.5 to 2.5 in 0.25 increments using optimal length and nK values. This parameter often shows the most dramatic impact on performance.

**Phase 4: Combination Validation**
Test the optimal parameter combination across different timeframes and market conditions to ensure robustness.

Document all results systematically to identify patterns and avoid retesting previously evaluated combinations.

Practical Application: Apple (AAPL) Optimization Case Study

Real-world application of the TTM Squeeze backtester demonstrates its practical value through specific optimization examples. Apple (AAPL) provides an excellent case study because of its liquidity, volatility characteristics, and extensive historical data availability.

Testing began with default settings: length=20, nK=1.5, nBB=2.0. The baseline backtester results showed total profit/loss of $1,281.99 over the testing period, establishing the performance benchmark for subsequent optimization efforts.

The first optimization phase tested different nK factors while maintaining other defaults. Changing nK from 1.5 to 2.0 produced total profit/loss of $562.72, representing a significant decline in performance. This result suggested that Apple benefits from more sensitive squeeze detection rather than less.

The second phase tested nBB factor variations. Reducing nBB from 2.0 to 1.5 while using nK=2.0 produced dramatically improved results: total profit/loss of $1,689.74. This 300% improvement over the nK=2.0/nBB=2.0 combination highlighted the importance of systematic parameter testing.

Further testing revealed that the optimal combination for Apple used length=20, nK=1.5, nBB=1.5, providing the best balance of trade frequency and profitability. This combination differed from defaults only in the nBB factor, demonstrating that small parameter changes can produce substantial performance improvements.

The Apple case study illustrates why one-size-fits-all parameter settings often produce suboptimal results. Different stocks exhibit unique volatility characteristics that benefit from customized squeeze parameters rather than universal defaults.

Timeframe Considerations and Multi-Period Testing

TTM Squeeze backtester effectiveness varies significantly across different timeframes, making multi-period testing essential for comprehensive optimization. Daily charts often provide the most reliable baseline results, but shorter timeframes may offer different opportunities with adjusted parameters.

Daily timeframe testing typically provides 20+ years of historical data in ThinkOrSwim, offering extensive statistical samples for parameter optimization. This timeframe filters out much intraday noise while capturing significant squeeze patterns that often persist for days or weeks.

Four-hour timeframes offer increased trade frequency while maintaining reasonable signal quality. However, optimization often requires different parameter combinations compared to daily charts. Shorter lengths (10-15) and adjusted volatility factors often work better for capturing intraday squeeze patterns.

Thirty-minute timeframes increase trade frequency further but require careful parameter optimization to avoid excessive noise. Testing on these shorter timeframes often reveals that default parameters produce poor results, making optimization even more critical.

The key insight from multi-timeframe testing is that optimal parameters change with timeframe characteristics. What works on daily charts rarely translates directly to shorter periods without adjustment. The TTM Squeeze backtester enables systematic exploration of these relationships.

When testing across timeframes, maintain consistent optimization methodology:

**Daily Charts:** Start with default parameters and optimize systematically
**4-Hour Charts:** Typically require slightly shorter lengths and adjusted volatility factors
**30-Minute Charts:** Often need significantly different parameters, with emphasis on noise reduction
**15-Minute Charts:** Require careful balance between sensitivity and false signal reduction

Document optimal parameters for each timeframe to build a systematic approach to squeeze trading across different temporal horizons.

Advanced Optimization Techniques and Considerations

Advanced TTM Squeeze backtester optimization goes beyond basic parameter testing to include market regime analysis, volatility environment considerations, and sector-specific optimization. These sophisticated approaches can further enhance performance beyond single-parameter optimization.

Market regime analysis involves testing parameter performance during different market conditions: trending vs. choppy markets, high vs. low volatility periods, and bull vs. bear market phases. Parameters that work well during trending periods may perform poorly during consolidation phases.

Volatility environment testing recognizes that squeeze effectiveness varies with underlying market volatility. During low VIX periods, more sensitive parameters may capture subtle squeeze patterns. During high VIX periods, less sensitive parameters may reduce false signals caused by excessive market noise.

Sector-specific optimization acknowledges that different market sectors exhibit unique volatility characteristics. Technology stocks may benefit from different parameters compared to utility stocks due to inherent volatility differences and trading behavior patterns.

The advanced optimization process includes:

**Rolling Window Testing:** Optimize parameters using recent data periods and test forward performance to ensure continued effectiveness.

**Drawdown Analysis:** Evaluate maximum drawdown periods with different parameter combinations to understand risk characteristics beyond total returns.

**Trade Distribution Analysis:** Examine winning vs. losing trade patterns to identify whether parameter changes improve trade quality or simply increase frequency.

**Correlation Testing:** Analyze how parameter changes affect correlation with broader market movements, seeking parameters that provide independence from general market direction.

Performance Metrics and Evaluation Criteria

Effective TTM Squeeze backtester evaluation requires comprehensive performance metrics beyond simple profit and loss totals. Multiple metrics provide a complete picture of parameter effectiveness and help identify robust optimization results versus temporary improvements.

Total profit/loss provides the primary optimization target but should be evaluated relative to trade frequency and risk exposure. A parameter combination producing high profits through many small gains differs significantly from one achieving similar profits through fewer large gains.

Win rate analysis reveals whether parameter changes improve signal quality or simply alter trade characteristics. Higher win rates with similar profit totals suggest better parameter combinations, while lower win rates requiring larger average gains may indicate increased risk.

Average trade duration indicates whether parameter changes affect squeeze pattern detection timing. Shorter average durations may suggest earlier signal detection, while longer durations might indicate better trend alignment but potentially missed opportunities.

Maximum drawdown analysis identifies risk characteristics that total returns might mask. Parameter combinations with similar returns but lower maximum drawdowns offer superior risk-adjusted performance and greater psychological sustainability.

Key evaluation metrics include:

**Profit Factor:** Ratio of gross profits to gross losses, indicating system efficiency
**Sharpe Ratio:** Risk-adjusted return measurement accounting for volatility
**Recovery Factor:** Relationship between total returns and maximum drawdown
**Consecutive Loss Analysis:** Maximum number of consecutive losing trades with different parameters

These comprehensive metrics ensure optimization focuses on robust improvements rather than temporary statistical anomalies.

Implementation Best Practices and Common Pitfalls

Successful TTM Squeeze backtester implementation requires awareness of common optimization pitfalls and adherence to best practices that ensure reliable results. Understanding these issues helps avoid false optimization results that fail in live trading.

Over-optimization represents the most significant risk in backtester usage. Testing too many parameter combinations on limited data can produce seemingly excellent results that fail with new data. Limit optimization to meaningful parameter ranges and validate results through out-of-sample testing.

Data snooping bias occurs when extensive testing leads to parameter combinations that work well on historical data but lack predictive value. Combat this by reserving recent data for validation testing after optimization is complete.

Insufficient trade samples can make optimization results statistically meaningless. Ensure parameter testing produces adequate trade numbers (typically 20+ trades minimum) for meaningful statistical evaluation.

Transaction cost ignorance can make backtester results unrealistic. ThinkOrSwim strategies assume perfect execution without slippage or commissions. Consider these costs when evaluating optimization results, particularly for higher-frequency parameter combinations.

Best practices for reliable optimization include:

**Use Adequate Historical Data:** Ensure testing periods include various market conditions
**Validate Results Out-of-Sample:** Test optimized parameters on data not used for optimization
**Document All Testing:** Maintain records of parameter combinations and results
**Focus on Robust Improvements:** Seek parameter changes that improve multiple performance metrics
**Consider Implementation Realities:** Account for execution limitations and transaction costs

Following these practices helps ensure TTM Squeeze backtester optimization produces actionable insights for live trading rather than statistical curiosities.

Integration with Broader Trading Strategies

The TTM Squeeze backtester works most effectively when integrated with broader trading strategy frameworks rather than used in isolation. Understanding how squeeze optimization fits within complete trading systems maximizes the value of parameter testing efforts.

Position sizing integration allows the backtester to evaluate different risk management approaches with optimized squeeze parameters. Testing fixed position sizes versus volatility-adjusted sizing reveals whether parameter optimization remains effective across different risk management frameworks.

Portfolio context consideration recognizes that squeeze trades represent only one component of diversified trading approaches. Parameter optimization should consider how squeeze trades interact with other strategy components and market exposures.

Risk management integration evaluates how optimized parameters perform with different stop-loss and profit target approaches. The simple 3% profit targets used in basic optimization may not represent optimal exit strategies for all parameter combinations.

Market environment adaptation uses optimization results to adjust squeeze parameters based on current market conditions. Rather than using static optimized parameters, sophisticated approaches vary parameters based on volatility regime, trend environment, or sector rotation patterns.

The integration process involves:

**Strategy Context Testing:** Evaluate optimized parameters within complete trading system frameworks
**Risk Management Optimization:** Test different risk management approaches with optimized squeeze parameters
**Portfolio Impact Analysis:** Understand how squeeze optimization affects overall portfolio characteristics
**Dynamic Parameter Adjustment:** Develop rules for adapting parameters to changing market conditions

This comprehensive approach ensures TTM Squeeze backtester optimization contributes meaningfully to trading success rather than existing as an isolated technical exercise.

The TTM Squeeze backtester provides a powerful tool for systematic parameter optimization that can dramatically improve trading results. By following systematic optimization methodology, understanding implementation challenges, and integrating results within broader trading frameworks, traders can unlock significantly improved performance from this popular volatility-based indicator.

TTM Squeeze Backtester.ts
input length = 20;

input nk = 1.5;

input nBB = 2.0;

def squeeze = TTM_Squeeze(close, length, nk, nBB).SqueezeAlert;

def EMA13 = ExpAverage(close, 13);


// ... 22 more lines ...

Unlock This Code

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

Create Free Account Login
Start with default settings (length=20, nK=1.5, nBB=2.0) to establish baseline performance. Test parameters individually: first optimize length (10-30), then nK factor (1.0-2.5), then nBB factor (1.5-2.5). Use ThinkOrSwim's floating P&L to compare total profits across different combinations. Document all results to identify the most profitable settings for your specific stock and timeframe.
This manual TTM Squeeze backtester is completely free and built within ThinkOrSwim's strategy framework. Commercial alternatives cost $297+ but offer automated optimization. Our backtester provides the same optimization capabilities with manual testing - you change parameters and observe P&L results. It's perfect for traders who want optimization control without expensive software subscriptions.
Different stocks have unique volatility characteristics that affect squeeze performance. Apple (AAPL) showed 300% better performance with nBB=1.5 vs default 2.0 settings. Technology stocks may need different parameters than utility stocks due to inherent volatility differences. The TTM Squeeze backtester helps identify stock-specific optimal settings rather than using one-size-fits-all defaults.
Focus on total P&L as the primary metric, but also consider trade frequency and win rate. Higher profits with similar trade counts indicate better parameters. Use ThinkOrSwim's strategy report to view detailed metrics. Compare maximum drawdown across parameter combinations - similar returns with lower drawdowns indicate superior risk-adjusted performance.
Daily charts provide the most reliable baseline with 20+ years of data for comprehensive testing. 4-hour timeframes offer more trade frequency but may need adjusted parameters. 30-minute charts require significant parameter modifications from daily settings. Start optimization on daily charts, then test the same methodology on shorter timeframes with appropriately adjusted parameters.
The 5-dot squeeze rule, from John Carter's methodology, requires five consecutive red squeeze dots before entering trades. This patience filter eliminates premature entries and ensures adequate volatility compression has built before expecting expansion. The TTM Squeeze backtester implements this rule systematically, improving win rates by avoiding false squeeze signals.
Yes, different sectors often require unique optimal parameters due to varying volatility characteristics. Technology stocks typically need different settings than utilities or energy stocks. Use the TTM Squeeze backtester to test the same optimization methodology across sector ETFs or individual stocks within sectors to identify sector-specific optimal parameters.
Limit testing to meaningful parameter ranges and ensure adequate trade samples (20+ trades minimum). Reserve recent data for out-of-sample validation after optimization. Focus on parameter combinations that improve multiple metrics (total P&L, win rate, drawdown) rather than just one. Document all testing to avoid data snooping bias from excessive parameter combinations.

Here are some resources that you may find useful:

  • Squeeze Course (15+ Proprietary Squeeze Tools, including POWERFUL Backtesters with Stats!)
  • 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

TTM Squeeze Histogram Backtester

TTM Squeeze Histogram Backtester

Beginner-Friendly • 33 mins
Moving Average Crossover Backtester

Moving Average Crossover Backtester

Beginner • 14 minutes
Opening Range Breakout

Opening Range Breakout

Intermediate • 36 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.