EFX Structure Pro

Automatically detects and labels market structure Higher Highs, Higher Lows, Lower Highs, Lower Lows with Break of Structure and Change of Character alerts on any timeframe.

Market Structure BOS / CHoCH Smart Money
TradingView (Pine Script v5)

About This Indicator

EFX Structure Pro is a comprehensive market structure indicator built for ICT and Smart Money traders. It plots all key swing points and automatically identifies the trend structure on any timeframe. When a Break of Structure (BOS) or Change of Character (CHoCH) occurs, the indicator alerts you instantly so you never miss a structural shift.

Designed to be used top-down start on the Daily or 4H to define the higher-timeframe bias, then drop to the 15m or 1H for entry confirmation using the structural shifts as your guide.

Key Features

  • Plots HH, HL, LH, LL labels on every confirmed swing
  • Break of Structure (BOS) lines bullish and bearish
  • Change of Character (CHoCH) lines with colour distinction
  • Multi-timeframe mode: display higher-TF structure on lower-TF chart
  • Visual swing strength indicator (weak / standard / strong)
  • Real-time alerts for BOS and CHoCH events
  • Adjustable sensitivity (swing length 5–50 bars)
  • Clean, minimal design no visual clutter

How to Use

  • Add to any chart on TradingView (works on all instruments and timeframes)
  • Set your swing length lower = more sensitive, higher = slower signals
  • Use green labels (HH/HL) to confirm bullish structure; red (LH/LL) for bearish
  • Trade in the direction of structure wait for a pullback to HL after a BOS bullish break
  • A CHoCH signals potential trend reversal wait for confirmation before trading against trend
  • Enable alerts in TradingView to receive push/email notifications on BOS/CHoCH

Pine Script Preview

//@version=5 // EFX Structure Pro EntraFX // © 2026 EntraFX. Pro licence required. indicator("EFX Structure Pro", overlay=true, max_lines_count=500) swingLen = input.int(10, "Swing Length", minval=3, maxval=50) showBOS = input.bool(true, "Show BOS Lines") showCH = input.bool(true, "Show CHoCH Lines") showLabels = input.bool(true, "Show HH/HL/LH/LL Labels") // Swing detection ph = ta.pivothigh(high, swingLen, swingLen) pl = ta.pivotlow(low, swingLen, swingLen) // Structure arrays var float[] swingH = array.new_float() var float[] swingL = array.new_float() // BOS / CHoCH logic (simplified preview) bullBOS = close > ta.valuewhen(ph, ph, 0) bearBOS = close < ta.valuewhen(pl, pl, 0) // Plot labels plotshape(ph and showLabels, style=shape.labeldown, location=location.abovebar, color=color.red, text="HH", textcolor=color.white, size=size.tiny) plotshape(pl and showLabels, style=shape.labelup, location=location.belowbar, color=color.green, text="LL", textcolor=color.white, size=size.tiny) // Alert conditions alertcondition(bullBOS, "Bullish BOS", "EFX Structure: Bullish BOS detected") alertcondition(bearBOS, "Bearish BOS", "EFX Structure: Bearish BOS detected")