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

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
- 1Purchase & Download: Get instant access to the
.zipfile after checkout - 2Import to NinjaTrader: Go to Tools → Import → NinjaScript Add-On, select the .zip file
- 3Restart NinjaTrader: Close and reopen the platform to load the indicator
- 4Add to Chart: Right-click chart → Indicators → Runic Market Structure CHoCH/BOS
- 5Customize: 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
