Market Structure CHoCH/BOS Indicator

Automatically Identifies Market Structure Shifts

NinjaTrader indicator that shows Change of Character (CHoCH) and Break of Structure (BOS) events on your charts.

One-time purchase • Lifetime updates • NinjaTrader 8 compatible

Runic Market Structure indicator showing CHoCH and BOS events on NinjaTrader chart

What Is Market Structure?

Market structure refers to the pattern of swing highs and lows that price creates. When these patterns break in certain ways, they indicate potential trend changes (CHoCH) or trend continuation (BOS).

Instead of manually marking every swing high and low, this indicator does it automatically and highlights when significant structure breaks occur.

What You Get

🔄 Change of Character (CHoCH)

Identifies Reversals: When price breaks structure opposite to current trend

Visual Lines: Green for bullish CHoCH, red for bearish CHoCH

Clear Labels: "CHoCH" text at break points

Market Bias Tracking: Shows when trend direction changes

📈 Break of Structure (BOS)

Confirms Continuation: When price breaks structure in trend direction

Color Coded: Teal for bullish BOS, orange for bearish BOS

Trend Validation: Visual confirmation of ongoing momentum

Real-Time Updates: Detects structure as it forms

📊 Swing Levels

Shows Active Swings: Horizontal lines at valid swing highs and lows

Auto-Cleanup: Removes invalidated swings automatically

Configurable Length: Adjust sensitivity (default: 5 bars)

Touch Tracking: Counts how many times price tests a level

⚙️ Optional Features

Internal Structures: Smaller timeframe structure detection

Support/Resistance: Dynamic S/R levels after structure breaks

Toggle Everything: Show/hide any element independently

🎨

Clean Visualization

Color-coded lines and labels make structure breaks easy to spot at a glance

Efficient Performance

Smart caching system and automatic cleanup keep your charts running smoothly

🔧

Configurable Settings

Adjust swing length, touch threshold, and display options to match your style

Customization Options

Primary Settings

Swing Length (Default: 5)

Higher values = more significant swings, fewer signals. Lower values = more sensitive.

Internal Length (Default: 3)

For optional smaller timeframe structures.

Touch Threshold (Default: 4 ticks)

How close price needs to get to count as a "touch" of a swing level.

Display Toggles

✅ Show Swing Structures (CHoCH/BOS)

✅ Show Swing Levels (horizontal lines)

⬜ Show Internal Structures (off by default)

⬜ Show Support Levels (off by default)

⬜ Show Resistance Levels (off by default)

⬜ Enable Debug Output (for diagnostics)

How Traders Use This

🔄 Trend Identification

Use CHoCH events to identify when a trend might be changing direction. BOS events confirm that a trend is still intact.

📐 Swing Level Trading

Valid swing highs and lows serve as natural support and resistance. The indicator tracks these automatically so you don't have to draw them manually.

⚡ Entry Timing

Some traders wait for BOS confirmation before entering in trend direction, or look for CHoCH as a signal to exit or reverse.

Why This Indicator?

Automatic Detection: No manual marking of swing highs, lows, or structure breaks.

Clear Visualization: Color-coded lines and labels make it obvious when structure changes.

One-Time Purchase: No monthly fees. Buy once, own forever.

Technical Details

System Requirements

  • Platform: NinjaTrader 8
  • Chart Types: All types supported
  • Timeframes: All timeframes
  • Instruments: Futures, Forex, Stocks, Crypto
  • Calculation: OnBarClose (structure confirmed retroactively)

How It Works

Swing Detection: Uses a center-pivot validation method - bars before and after a potential swing point must be lower (for highs) or higher (for lows).

Structure Break Logic: Break is confirmed when close price crosses a swing level. Whether it's CHoCH or BOS depends on current market bias.

Delay: Structure breaks are confirmed retroactively by the swing length (default: 5 bars). This is normal for swing-based indicators.

Simple Installation

  1. 1
    Purchase & Download: Get instant access to the .zip file after checkout
  2. 2
    Import to NinjaTrader: Go to Tools → Import → NinjaScript Add-On, select the .zip file
  3. 3
    Restart NinjaTrader: Close and reopen the platform to load the indicator
  4. 4
    Add to Chart: Right-click chart → Indicators → Runic Market Structure CHoCH/BOS
  5. 5
    Customize: Adjust swing length and display options via indicator properties

Common Questions

What's the difference between CHoCH and BOS?

CHoCH (Change of Character): When price breaks a swing level opposite to the current trend. This suggests a potential reversal.

BOS (Break of Structure): When price breaks a swing level in the same direction as the current trend. This confirms continuation.

Why are the signals delayed?

The indicator uses swing detection, which requires a certain number of bars (swing length) to confirm that a high or low is actually a valid swing point. This is normal for swing-based indicators and ensures more reliable signals. By default, structure breaks are confirmed 5 bars after they occur.

Can I adjust the sensitivity?

Yes. The swing length parameter controls sensitivity. Lower values (like 3) will detect more swings and give more frequent signals. Higher values (like 7-10) will only detect more significant swings and give fewer, potentially more reliable signals.

What's your refund policy?

We offer a satisfaction guarantee. If you're not happy with the indicator within the first 30 days, contact us for a full refund.

Ready to Get Started?

Stop manually marking swing highs, lows, and structure breaks. Let the indicator do it for you.

One-time purchase • Lifetime updates • 30-day satisfaction guarantee

Complete Your Toolkit

Fair Value Gaps (FVG) Indicator

Combine market structure analysis with FVG zones for confluence. Know when structure aligns with imbalance areas.

Learn More →

Runic Pro Indicator

Entry timing signals that work well with structure analysis. Wait for structure confirmation, then use Runic Pro for precise entries.

Learn More →

Security & Quality

Privacy & Performance

  • ✅ No data collection or external API calls
  • ✅ No internet connection required
  • ✅ All calculations done locally
  • ✅ Efficient caching for smooth performance

Code Quality

  • ✅ Built for NinjaTrader 8
  • ✅ Automatic cleanup of old drawing objects
  • ✅ Tested on live markets
  • ✅ Regular updates