Categories

Arrow Signals is a free, instant-download MT5 chart-window indicator by Vladimir Mametov that plots a period-block trend channel directly on price, with dedicated Buy and Sell arrows firing exactly on the bar where price breaks out of that channel. It’s built around a slightly unusual idea worth understanding before you use it: instead of a rolling bar-count lookback, its channel is anchored to the boundaries of a higher period — a 4-hour block, a trading day, a week — rather than a fixed number of the chart’s own bars.
How the Channel Is Actually Built
The indicator’s own isDelimeter() function walks backward through price history looking for the start of a higher-period “block”: on an M1-M20 chart that’s the top of every hour, on M30/H1/H2/H3 it’s every 4-hour mark, on H4/H6/H8/H12 it’s the start of each trading day, and on D1 it’s the start of each week. The AverageHigh() and AverageLow() functions then average together the highest-high and lowest-low of the last iPeriod of those higher-period blocks (not the last iPeriod raw bars), producing the smoothed HH and LL values the channel is built from.
For every bar, the indicator compares the current close against that averaged HH/LL: a close above HH starts (or continues) an uptrend and plots the TrendUp line at the LL level; a close below LL starts (or continues) a downtrend and plots TrendDown at the HH level. When price sits between the two, the indicator simply carries forward whichever trend was already active. The moment a fresh TrendUp value appears where the prior bar had none, a DodgerBlue “Buy trend_arrows signal” arrow is plotted at that same level — and the mirror case, a fresh TrendDown appearing where the prior bar had none, plots a DarkOrange “Sell trend_arrows signal” arrow.
How to Read the Chart
- Blue TrendUp line — the market is in an up-phase relative to the averaged higher-period low; this line sits below price as a trailing reference.
- Red TrendDown line — the market is in a down-phase relative to the averaged higher-period high; this line sits above price as a trailing reference.
- DodgerBlue arrow — marks the exact bar where the channel flipped from a down-phase to an up-phase (a fresh TrendUp appearing after none the bar before) — the indicator’s buy signal.
- DarkOrange arrow — marks the exact bar where the channel flipped from an up-phase to a down-phase — the indicator’s sell signal.
Because the underlying channel is rebuilt from higher-period blocks rather than raw bars, the arrows tend to fire less often than a typical bar-by-bar crossover system, and each flip represents a break of a fairly meaningful reference level rather than routine noise.
Input Parameters (Actual Defaults From the Code)
- iPeriod = 15 — how many higher-period blocks are averaged together to build the HH/LL channel. A smaller value makes the channel track more recent blocks only and react faster; a larger value smooths it out and delays flips.
- iFullPeriods = 1 — controls whether the most recent (still-forming) higher-period block is included in the average (1) or excluded in favor of only fully-closed blocks (0), which changes how the divisor in the averaging formula is applied.
- Shift = 0 — shifts all four plotted series left or right on the chart by this many bars; purely visual, it does not change the underlying calculation.
Why the “Block” Design Matters
Most trend-channel indicators simply average the last N raw bars, which means the channel’s meaning shifts depending on what timeframe you’re viewing — 20 bars on M5 covers a very different span than 20 bars on H4. By anchoring to isDelimeter() boundaries instead, Arrow Signals is trying to give the channel a more consistent real-world meaning: on an H1 chart it’s averaging a fixed number of 4-hour sessions, and on an H4 chart it’s averaging a fixed number of trading days, regardless of how many raw bars happen to fall inside each block. That’s also why the code needs its own custom block-detection function rather than relying on a simple bar-count input — it has to work out, from the actual timestamps, where each higher-period boundary falls for whatever timeframe it’s attached to.
Honest Limitations
Because the channel is built from higher-period blocks rather than the chart’s own bars, Arrow Signals needs a meaningful stretch of history before it can plot anything — with the default iPeriod of 15, it has to locate 15 full higher-period boundaries first, which on a daily chart alone means roughly 15 weeks of prior data. The indicator also carries no built-in alerts or notifications; reading it is purely visual, via the line color and the arrow markers. And because a signal only fires on a genuine channel flip rather than on every price swing, it will feel quieter and slower than a typical arrow-scalping tool — it’s better suited to swing-style position management than to fast intraday scalping.
- iPeriod (default 15) — Number of higher-period blocks averaged together to build the trend channel's high/low levels.
- iFullPeriods (default 1) — Whether the most recent, still-forming higher-period block is included (1) or excluded (0) from the averaging.
- Shift (default 0) — Horizontal shift, in bars, applied to all four plotted series; visual only.
FAQs About the MT4 Arrow Signals Indicator MT5
Does the Arrow Signals indicator repaint?
No. Each bar’s trend and arrow values are calculated strictly from that bar’s own backward-looking averaged high/low plus the already-computed value on the next older bar, and the calculation loop only ever touches new or still-forming bars, so a value already plotted does not change once that bar closes.
Why does the channel use 'blocks' instead of a simple bar count?
The code’s isDelimeter() function locates the boundaries of a higher period (roughly 4-hour blocks, trading days, or weeks depending on your chart’s timeframe) and averages the high/low of the last iPeriod of those blocks, rather than averaging the last iPeriod raw bars — which is meant to give the channel a more consistent real-world meaning across different timeframes.
What does the iFullPeriods input control?
It toggles whether the most recent, still-forming higher-period block is included in the HH/LL average (1, the default) or excluded so only fully-closed blocks are averaged (0), which changes the divisor used in the AverageHigh()/AverageLow() calculation.
What do the DodgerBlue and DarkOrange arrows actually mark?
DodgerBlue marks the exact bar where the channel flips from a down-phase to an up-phase (a Buy signal); DarkOrange marks the exact bar where it flips from an up-phase to a down-phase (a Sell signal). Both only fire on the bar of the flip itself, not on every bar the trend continues.
How much history does this indicator need before it plots anything?
It needs to locate iPeriod (15 by default) full higher-period boundaries before it can compute its first channel value, which on higher timeframes like H4 or D1 can mean several weeks or months of prior chart history.
Arrow Signals Indicator MT5
The Arrow Signal Indicator for MT5 provides clear buy and sell signals using red and green arrows. Ideal for spotting momentum reversals, it works across all timeframes and helps traders refine entries and exits.
Download the Arrow Signals Indicator MT5