거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Twitter에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
지표

Any Indicator Alert - alerts, push notifications and multi-timeframe for any custom indicator, no source code needed - MetaTrader 5용 지표

Ayaz
Ayaz
MQL5 developer working on automated trading systems — Expert Advisors, custom indicators, and TradingView-to-MT5 conversions.
조회수:
193
평가:
(1)
게시됨:
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

Two of the largest threads on this forum are "Indicators with alerts/signal" and "Multi Timeframe Indicators". They are still open after years because the answer has always been the same: get the source, edit it, recompile. That does not help if you have an .ex5 and no source, and it does not scale if you use several indicators.

This does the job from outside. iCustom can load any indicator by name and read its buffers without its source, so one tool can serve all of them.

Start in EXPLORE mode

The reason people avoid iCustom is that it wants a buffer number, and nothing tells you which number holds the thing you can see on the chart. So the default mode answers that first. It probes the buffers, counts what is in each one, and prints them beside the last few bars.

A buffer with a value on nearly every bar is a line, so use a level cross or a cross against a second buffer. A buffer that is empty except where the indicator drew something is the signal, so use "a value appears". Read the number off the table, switch to WATCH, and pick a trigger.

Sample of what EXPLORE prints

This is a real run on a live XAUUSDm H1 chart, watching the standard RSI. Every buffer the indicator has is listed with how many of the sampled bars carry a real value, how many are exactly zero, and how many are blank, followed by the values themselves bar by bar.

Buffers found: 3   (checked up to 16, on XAUUSDm PERIOD_H1)
------------------------------------------------------------------
  buffer  values  zeros  blank  what it looks like                     range of the values
       0      12      0      0  a line - a value on almost every bar   31.47608 .. 55.28984
       1      12      0      0  a line - a value on almost every bar   4.11585 .. 6.11288
       2      12      0      0  a line - a value on almost every bar   3.86003 .. 8.96028
------------------------------------------------------------------
  bar  time               buf0         buf1         buf2
    0  2026.09.04 20:00     45.61107     5.40493     6.44511
    1  2026.09.04 19:00     46.88624     5.82069     6.59381
    2  2026.09.04 18:00     43.33095     5.42967     7.10102
    3  2026.09.04 17:00     40.80179     5.27080     7.64725
------------------------------------------------------------------
Read it like this: the buffer that is empty on most bars and carries a value
only where the indicator drew its signal is the one to watch. Put its number
in 'Buffer to watch', set Mode to WATCH, and pick a trigger.
A buffer that has a value on every bar is a line - use a level or buffer cross.
EXPLORE mode in the Experts tab: every buffer of Examples\RSI on XAUUSDm H1, and what each one holds

Here all three buffers are lines, which is what RSI is. On an arrow or signal indicator the table looks different, and that difference is the whole point:

  buffer  values  zeros  blank  what it looks like                     range of the values
       0       0      0      8  nothing here on these bars             -
      11       8      0      0  a line - a value on almost every bar   16.08798 .. 16.25192
      14       7      1      0  sparse - looks like a signal           4166.06000 .. 4166.06000

Buffer 14 is the one to watch there. It is empty on most bars and carries a price only where the indicator marked something, so "a value appears" is the trigger for it. Buffer 11 is an internal line and buffer 0 holds nothing on these bars at all.

Late values and repaints are not the same thing, so they are counted apart

Every closed bar's value is kept and read again on each new bar. When a closed bar has changed, there are two very different reasons why.

A late value. The bar was blank and now holds a value. The indicator needed later bars before it could mark this one. Fractals work this way by design, and so do most swing and structure markers. It is not deceit, but it does mean the signal was never visible on the bar it points at, and that matters if you judge a strategy by eye.

A repaint. A value that was there has moved or vanished. Something you could have acted on is gone.

Both are reported with the bar's time, the old value and the new one, and the chart comment keeps a running count of each. Nothing is inferred from the forming bar, because the forming bar changing is normal.

That distinction was tested rather than asserted. On XAUUSD H1, 299 bars, 1 to 20 August 2026, watching each indicator's buffer 0:

Watched indicator Late values Repaints
Examples\Fractals, marks a bar two bars after it closes 40 0
Examples\ZigZag, redraws its last leg by design 0 83, every one a value that vanished
Examples\RSI, settled once a bar closes 0 0

So it says "late" about an indicator that lags, "repaint" about one that repaints, and nothing about one that does neither. In the same run the level trigger fired twice on RSI crossing below 30, at 28.38 and 29.21; MACD's main line crossed above its signal line nine times and below it nine times; and RSI read from H4 on an H1 chart produced one alert per H4 bar, 77 of them, each stamped PERIOD_H4. It was also run against a 157 KB third-party Smart Money Concepts indicator, where it found 16 buffers and separated three internal lines from two sparse signal buffers.

Triggers

A value appears on a bar, whether on the bar that just closed or, for a lagging indicator, on an earlier bar it has only now marked; a cross above or below a level; one buffer crossing another in either direction; or simply the value changing. Alerts go to a popup, a sound, a push notification or email, one per bar. By default only closed bars are judged. Turn that off and the forming bar is judged on every tick, which alerts sooner and can reverse, still one alert per bar either way.

A higher timeframe

Set "Read it on this timeframe" and the watched indicator is loaded on that timeframe instead of the chart's. Bars, triggers and the repaint check all follow it.

Two worked examples

Example 1 - tell me when RSI crosses above 70. You know this indicator, so EXPLORE is only a check.

Input Value
Indicator file Examples\RSI
Its inputs 14
Read it on this timeframe Current timeframe
Mode WATCH
Buffer to watch 0
Trigger buffer crosses above Level
Level 70
Popup alert true

On the test data that produced four alerts, at 75.04, 76.31, 70.38 and 74.83. To get the same thing from the four hour chart while you sit on the one hour, set "Read it on this timeframe" to H4 and change nothing else.

Example 2 - an arrow indicator you downloaded and have no source for. Here EXPLORE is doing the real work.

  1. Attach with Mode on EXPLORE and "Indicator file" set to that indicator's name. Leave "Its inputs" blank to use its own defaults.
  2. Open Toolbox, Experts tab, and find the buffer that is sparse - empty on most bars, a value where you can see an arrow on the chart. Say it is buffer 2.
  3. Attach it again with Mode on WATCH, Buffer to watch 2, Trigger "a value appears", and Push notification on.
  4. If EXPLORE printed the note about a buffer being mostly exact zeros, switch on "This indicator writes 0 where it means nothing" and read the table again before choosing.

What each input does

Input What it does
Indicator file Path under MQL5\Indicators, without the extension. One backslash, for example Examples\RSI or MyFolder\MyArrows. It starts empty on purpose - there is no indicator every terminal is certain to have - and nothing happens until you fill it in.
Its inputs The watched indicator's own inputs, comma separated, in the order it declares them. Blank means use its defaults. Whole numbers are passed as int, numbers with a point as double, true and false as bool, anything else as text. The log prints back what it decided so you can check.
Read it on this timeframe Load the watched indicator on this timeframe instead of the chart's. Current timeframe means the chart's own.
This indicator writes 0 where it means "nothing" Treat an exact 0 as empty. Needed for indicators like ZigZag. EXPLORE tells you when it is worth switching on.
Mode EXPLORE lists the buffers and alerts nothing. WATCH alerts on the buffer you chose.
How many buffers to probe EXPLORE stops here. Raise it if the note says it hit the limit.
How many recent bars to print How many bars EXPLORE shows and counts.
Buffer to watch The buffer number you read off the EXPLORE table.
Second buffer Only used by the two buffer-cross triggers.
Trigger A value appears, a cross above or below Level, buffer A crossing buffer B either way, or the value simply changing.
Level Only used by the two level-cross triggers.
Judge closed bars only On by default: one judgement when a bar closes, and it cannot reverse. Off means the forming bar is judged on every tick, which alerts sooner but can undo itself.
Popup, sound, push, email How you are told. Any combination. Push needs your MetaQuotes ID set in Tools, Options, Notifications.
Re-read closed bars and report changes Turns the late value and repaint reporting on.
How many closed bars to keep watching How far back the check looks. A change further back than this is not seen.
Ignore changes smaller than this Leave at 0 to catch every change. Raise it if an indicator jitters in the last decimal.

Three things that catch people out, and are handled

Some indicators write a plain 0 where they mean "nothing here" instead of EMPTY_VALUE. ZigZag is one. Read naively, such a buffer looks like a solid line of zeros. There is an input for it, and EXPLORE prints a note when a buffer is mostly exact zeros with a few real values, so you can decide. It is deliberately not guessed: an oscillator that genuinely sits at zero looks identical from outside.

A bar the indicator has not written yet reads as exactly 0.0. That is what the terminal puts in a freshly grown buffer, and a lagging indicator leaves its newest bars like that on purpose until it has the later bars it needs. Fractals never touches its last three. Read naively, every one of those bars later "changes", and the first version of this tool reported three hundred repaints on an indicator that has none. A bar going from that 0.0 to blank is now treated as initialisation, and from 0.0 to a value as a late arrival.

input group occupies a positional parameter slot. If you call this indicator from your own code with iCustom or IndicatorCreate, the six group labels have to be counted along with the real inputs, as strings, or the handle fails with error 4002. This was measured, not assumed. Buffer 0 carries the watched buffer's value, so your EA can read it instead of repeating the plumbing; it was checked against the watched RSI on 299 of 299 bars.

If the indicator you named cannot be loaded - a typo, or a file that has not been compiled yet - this does not detach itself. It says so on the chart and in the Experts log, and keeps trying every few seconds, so correcting the name is enough.

What it does not do

It reads indicator buffers. An indicator that draws only with chart objects exposes no buffers, and there is nothing here for this tool to read. Nothing outside the indicator can change that.

"No repaint seen over 200 bars" is an observation about those bars, not a guarantee about every bar that will ever form. It is evidence, and better than the claim most indicators ship with, but it is not a proof. The check covers the number of closed bars you set in "How many closed bars to keep watching"; a change further back than that is not seen.

It cannot tell you what a buffer means. It will show you that buffer 3 holds 1.0 on fourteen bars; whether that is a buy signal is yours to decide.

An indicator that signals with a value of exactly 0.0 will not trigger "a value appears", because that is the reading of an unwritten bar. Signal buffers carry a price or a flag, never 0.0, so in practice this costs nothing, but it is a rule and you should know it.

Buffer 0 mirrors the watched buffer only when the watched timeframe is the chart's own. Mapping a higher timeframe onto every chart bar is a different job and is not attempted.

The alert channels themselves, popup, sound, push and email, are one call each and were not exercised in the Strategy Tester, which does not deliver them. Everything the tool decides before that call was.

How to install it

  1. Copy AnyIndicatorAlert.mq5 into MQL5\Indicators in your terminal's data folder. In MetaTrader, File then Open Data Folder takes you there.
  2. Open it in MetaEditor and press F7. It should report 0 errors and 0 warnings.
  3. Back in the terminal press Ctrl+N for the Navigator, open Indicators, and drag AnyIndicatorAlert onto a chart. If it is not listed, right click in the Navigator and choose Refresh.
  4. Fill in "Indicator file" - it is empty to begin with - leave Mode on EXPLORE, and press OK. Examples\RSI is the one to try first.
  5. Press Ctrl+T for the Toolbox and open the Experts tab. The buffer table is there.

Written and verified on MetaTrader 5 build 6140. It places no orders and changes nothing.

SuperTrend TV SuperTrend TV

A SuperTrend that returns the same values as TradingView's ta.supertrend, shipped with the tool that proves it bar for bar against the Pine reference

Pending Order Inspector MT5 Pending Order Inspector MT5

Read-only panel that checks a BUY STOP or SELL STOP against the symbol contract before you send it: price tick grid, volume minimum/step/maximum, stop distances and order permissions. It never sends, changes or suggests anything.

SuperTrend TV EA SuperTrend TV EA

An Expert Advisor that trades the SuperTrend TV indicator through iCustom on closed bars only, shipped with the audit that proves every trade matches a signal and no signal was missed

TrueCostReport TrueCostReport

Cost is the one input to a trading system that is knowable exactly, and it is almost always estimated wrongly - always in the direction that flatters the strategy. This EA measures what one round trip really costs on YOUR broker: the live spread sampled from ticks, the swap for both sides including the triple-charge day, and the commission read from your own deals. Most spread figures come from the bar's "spread" field, because that is the easy one to reach. It is a per-bar summary, not the quote at any instant. Measured on XAUUSD: 20 points live across 60 readings against a bar-field median of 6. A factor of 3.3. So a filter set to "skip if spread > 15" never fires - it lets through exactly the moments it exists to block. Swap is the half most custom simulators do not charge at all. It is asymmetric, one side pays while the other collects, and one weekday counts three times. Read-only: it never opens, closes or modifies a position.