The unicorn setup is named for its rarity. It needs two smart-money features to land in the same place: a breaker block and a fair value gap. The ict unicorn indicator finds both, checks they overlap, and draws only the narrow band where they agree. That intersection is the whole point, and it is why signals are infrequent.
This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from EURUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 2: Unicorn BUY, Unicorn SELL |
| Alerts | popup |
| Inputs | 8 |
What the Ict Unicorn Indicator draws on the chart
Unicorn BUY places a lime arrow beneath the bar where a bullish overlap confirms.
Unicorn SELL places a red arrow above the bearish case.
A rectangle covers the overlap band itself, not the block and not the gap, which is a much tighter zone than either alone.
Zone drawing can be switched off if you want the arrows on a clean chart.
- Unicorn BUY: arrow, lime, width 2, arrow code 233
- Unicorn SELL: arrow, red, width 2, arrow code 234

How the Ict Unicorn Indicator calculates its values
Finding the gap
bullFvg needs low[i+1] to sit above high[i+3], with the distance between them exceeding minGap from `InpMinGapPoints`. That is a genuine three-candle imbalance rather than one long bar. bearFvg inverts the comparison. The size floor is deliberately loose at `1.0` points, because the overlap test that follows does most of the filtering.
Finding the block behind it
With a gap present the code looks for the order block that caused it. For a bullish case it wants close[k] below open[k] on the block candle and close[k-1] above open[k-1] on the next, so the market turned right there. `InpFvgLookback` bounds how far back that search runs, and `InpBreakerLook` covers the structure break that turns an order block into a breaker.
Keeping only the overlap
obHi and obLo take MathMax and MathMin of the block candle’s open and close. fvgHi and fvgLo come from the gap boundaries. Then the intersection: zoneHi takes MathMin(obHi, fvgHi) and zoneLo takes MathMax(obLo, fvgLo). Taking the inner edges of both features means the zone exists only where they genuinely overlap. Arrows land 5 points clear of the signal bar.
How to read the signals
The rectangle is deliberately narrow. That tightness is the setup, not a rendering quirk.
No arrow means no overlap was found, which is the normal state most of the time.
Look left of an arrow to see the block and the gap that produced it.
A wider gap threshold makes signals rarer still, since fewer imbalances qualify in the first place.
Alert channels in this build: popup, one message per closed bar.
A terminal popup is the only channel, driven by `InpAlertsOn` which ships `true`. Because the confirmation reads a settled bar, the message follows a completed signal rather than a forming one, and the guard permits a single alert per closed bar.
Every Ict Unicorn Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
InpSwingLen |
Pivot swing length for OB. Pivot swing length used to locate the order block, default `3`. | 3 |
InpFvgLookback |
Lookback bars to find OB+FVG overlap. How far back the code looks for a block overlapping the gap, default `6` bars. | 6 |
InpBreakerLook |
Lookback for breaker confirmation. Lookback for the structure break that confirms a breaker, default `25` bars. This is the widest window and it sets the warmup. | 25 |
InpMinGapPoints |
Min FVG size in points (loose). Smallest gap that counts, default `1.0` points, intentionally loose. Raise it on instruments with a different tick size. | 1.0 |
Display settings
| Setting | What it does | Default |
|---|---|---|
InpDrawZones |
Draw rectangle zones. Set it `false` to keep the arrows and drop the rectangles. | on |
InpBullZone |
(see inputs panel) | dodger blue |
InpBearZone |
(see inputs panel) | tomato |
Alert settings
| Setting | What it does | Default |
|---|---|---|
InpAlertsOn |
(see inputs panel) | on |

Settings that fit your chart
The setup needs enough movement to open a gap and break structure, which favours H1 and above on the majors. EURUSD H1 is the reference chart. On M5 gaps are frequent but most are noise, and the loose point threshold does little to help. On gold or an index, raise `InpMinGapPoints` first, since a 1.0 point gap there is effectively no filter at all.
When the Ict Unicorn Indicator fails
Three conditions must coincide, so signals are rare and samples stay small. Judging the tool on a handful of arrows will mislead you.
The gap threshold is a raw point count. A value tuned on a 5-digit forex pair is meaningless on an instrument with a different tick size.
The overlap can come out very small or empty even when both features exist, so a valid-looking setup on the chart may produce no zone at all.
Copy the compiled Ict Unicorn Indicator file into your MQL4/Indicators folder, and the MT5 build into MQL5/Indicators, then restart the terminal and drag it onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.
Related on forexmt4systems.com: ICT Style Strategy.
Background reading on the method behind the Ict Unicorn Indicator: Convenience yield on Wikipedia, Triangle at Investopedia.
Download the Ict Unicorn Indicator for MT4 and MT5
The zip holds the compiled Ict Unicorn Indicator build for MT4 and MT5, plus a short README. Compiled files only, no source. Enter your email below and the download link arrives in your inbox.
Download this indicator free
Enter your email and the file is yours. You also get the full MT4 and MT5 library.
FAQ
What makes a setup a unicorn rather than an ordinary order block?
The overlap. A breaker block alone is common and a fair value gap alone is common. The unicorn needs both in the same price band, so the code computes zoneHi as MathMin(obHi, fvgHi) and zoneLo as MathMax(obLo, fvgLo). Only where those two features genuinely intersect does a zone exist.
Why is InpMinGapPoints only 1.0?
Because the overlap requirement is doing the filtering, not the gap size. A loose threshold lets more gaps into the search, and the intersection test then discards almost all of them. On instruments with a different tick size, raise it: 1.0 points on gold is not a gap at all.
What does InpBreakerLook at 25 cover?
The window in which the code looks for the structure break that converts an order block into a breaker. Twenty-five bars is the widest of the three lookbacks, which is why it dominates the warmup calculation. Widen it on slower charts where the break and the retest sit further apart.
Why do I see so few Unicorn BUY arrows?
Because the setup is genuinely rare, which is where the name comes from. Three separate conditions have to line up on the same bars. On EURUSD H1 you might see a handful in a month. If arrows appear frequently, check whether `InpMinGapPoints` suits your instrument’s tick size.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Ict Unicorn Indicator as one input. Always backtest before trading live.
Category: this is part of our Smart Money collection. Also, browse more Smart Money for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- The core method is documented in Convenience yield on Wikipedia.
- Additional market context is at Triangle at Investopedia.
