Best Price Channel Indicator for MT4 and MT5

Written by Dominic Walsh · Published · Last updated

A channel and an arrow leave you reading colour. The best price channel indicator writes the word instead. It tracks the highest high and lowest low of the prior twenty bars, marks a close that clears one for the first time, and prints the direction in text beside the mark.

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 5: Upper Channel, Lower Channel, Midline, Breakout Buy, Breakout Sell
Alerts popup, push notification, email, sound
Inputs 14

Everything visible

Three lines, two marks and text.

`Upper Channel` traces orange red at width 2.

`Lower Channel` traces dodger blue at the same width.

`Midline` traces silver between them.

`Breakout Buy` prints lime using arrow 233.

`Breakout Sell` prints red using arrow 234.

  • Upper Channel: line, orange red, width 2
  • Lower Channel: line, dodger blue, width 2
  • Midline: line, silver, width 1
  • Breakout Buy: arrow, lime, width 2, arrow code 233
  • Breakout Sell: arrow, red, width 2, arrow code 234
best price channel indicator: A labelled break above the channel, EURUSD H1.
A labelled break above the channel, EURUSD H1.

What happens behind it

Prior bars only

`InpPeriod` `20` looks at the twenty bars before the current one. Excluding the current bar is what lets it genuinely clear a level rather than helping to set it.

What counts as fresh

Two closes settle it. The current close beyond the channel and the previous one still inside the channel as it stood then, which marks the first break rather than every bar of a run.

The midline

`InpShowMid` draws the halfway price between the two edges. It steps whenever either extreme changes, so it describes the middle of the range rather than an average.

Reading it correctly

A flat edge means no new extreme for twenty bars.

Both edges stepping means price is expanding.

Text beside a mark names the direction.

`InpCooldown` `4` keeps repeat marks apart.

`InpMaxLabelBars` `600` limits how far back text draws.

`InpArrowOffset` `12` sets a tight gap from the bar.

Alert channels in this build: popup, push notification, email and sound, one message per closed bar.

A fresh close beyond either edge is what speaks. `EnableAlerts` decides whether it does and the terminal dialog is already set. Delivery to a phone, to mail, and the sound selected by `SoundFile` all begin switched off.

Every Best Price Channel Indicator input

Core settings

Setting What it does Default
InpPeriod Donchian period (prior N bars). Prior bars behind each edge, `20`. 20
InpCooldown Min bars between breakout arrows. Bars held between marks, `4`. 4

Display settings

Setting What it does Default
InpShowMid Draw the channel midline. Draw the halfway line, `true`. on
InpShowArrows Show channel breakout arrows. Draw the break marks, `true`. on
InpArrowOffset Arrow / label offset (points). Points between a mark and its bar, `12`. 12
InpMaxLabelBars Draw BUY/SELL text within N recent bars. Recent bars that also get text, `600`. 600
BuyColor BUY arrow / label (lime test r<140). lime
SellColor SELL arrow / label. red

Alert settings

Setting What it does Default
EnableAlerts Whether a channel break speaks, `true`. on
EnablePopup Terminal dialog, already set, `true`. on
EnablePushNotify Delivery to a phone, `false`. off
EnableEmail (see inputs panel) off
EnableSound (see inputs panel) off
SoundFile Sound it selects, `”alert.wav”`. alert.wav
best price channel indicator: Inputs panel, InpPeriod above the display switches.
Inputs panel, InpPeriod above the display switches.

Where to point it

Twenty prior bars is a day of hourly trade, which gives the channel something to say each session. EURUSD H1 is the reference chart. On M15 breaks come several times a day. On D1 the channel covers a month.

Where it stops working

Channels made of extremes break on the bar setting one.

In a range price clips both edges in turn.

Written labels are chart objects and accumulate.

A break says nothing about how far the move runs.

Copy the compiled Best Price Channel 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: Price Action Strategy.

Download the Best Price Channel Indicator for MT4 and MT5

The zip holds the compiled Best Price Channel 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.

  • 1,380+ indicators
  • MT4 and MT5 files
  • No spam, unsubscribe any time

FAQ

Why does InpPeriod 20 use only prior bars?

So the current bar can genuinely clear the channel. If its own high counted toward the upper edge, price could never break out; excluding it is what makes the comparison meaningful at all.

What makes a Breakout Buy count as fresh?

The previous close sitting inside the channel as it stood on that bar. A run of closes beyond the edge therefore marks once, at the start, rather than on every bar that keeps going.

What does the Midline step rather than curve?

It sits exactly halfway between the two edges, and those only change when a new extreme prints. Between changes the midpoint cannot move, so the line holds flat and then jumps.

Does InpShowArrows affect the messages too?

Yes. The marks and the message share the same condition, so turning the arrows off stops the whole reporting path rather than just hiding the symbols on the chart.

Are results guaranteed?

No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Best Price Channel Indicator as one input. Always backtest before trading live.

External references

Dominic Walsh - Forex trader and MT4/MT5 developer

About the author

Written by Dominic Walsh, a Forex trader and MT4/MT5 indicator, Expert Advisor and script developer. Every tool on forexmt4systems.com is tested on live charts before release and ships with ready-to-use compiled MT4 (.ex4) and MT5 (.ex5) files. Learn more about the trader and developer behind this site.

How we build, test and correct every tool: Editorial & Testing Policy. Trading carries risk; see the disclaimer.

Leave a Comment