Custom Screener
- Indicators
- Version: 1.8
- Updated: 11 August 2026
- Activations: 5
Summary
Multi-symbol and multi-timeframe monitor for MT5. Define conditions as plain expressions and the screener scans continuously, alerting you by pop-up, sound or push when a symbol starts meeting your rule.
Description
Custom Screener scans multiple symbols and timeframes using user-defined conditions based on price, moving averages, RSI, Stochastic, and candlestick patterns. Results are shown in a sortable table with one-click chart opening.
Continuous scanning. By default the screener does not stop when the scan ends: the cycle restarts on its own, aligned with the next candle open, and the table is updated in place. If you prefer one scan per click, as in earlier versions, set scanMode to the single-run option.
Alerts at the right moment. Pop-up, sound and mobile push are enabled independently and fire on transition — when a symbol starts meeting the condition — instead of repeating on every scan. Occurrences from the same cycle arrive grouped into a single notice.
It helps monitor many markets with objective rules, without extra scripts.
Main Features
- Multi-symbol and multi-timeframe scanning.
- Continuous scanning by default via scanMode : the cycle restarts on its own, aligned with the candle open, with a single-pass mode available.
- Pop-up, sound and mobile push alerts, fired on transition and grouped into one notice per cycle.
- Up to 5 named setups per instance: the setup label follows the signal in the table (e.g. Buy (9.2) ).
- Strategy name via strategyName , shown in the panel title and in the indicator window.
- Custom buy and sell conditions with natural expression syntax.
- Support for native expression variables for price, moving averages, RSI, Stochastic, and candlestick patterns.
- Candlestick pattern library with 1, 2, and 3-candle formations.
- Progress bar with real-time fill and estimated time remaining (ETA) during scanning.
- Stochastic Oscillator support: use stochK[index] and stochD[index] in expressions.
- ADX support: use adx[index] , diPlus[index] and diMinus[index] to measure trend strength and direction.
- Rescan aligned to the timeframe set in rescanTimeframe : on H1 the cycle restarts at the top of each hour.
- Built-in condition reference: the Help button lists variables, operators and examples inside the panel.
- Interactive results table with sorting and fast chart access.
- Optional chart template application when opening charts.
- Result filter: show all, with signal only, buy only, sell only.
- Incremental batch scanning with visible progress, cancellation, and partial results.
- Visible history synchronization during the scan, with a Sync toggle to show or hide pending items.
- UI language input with 11 supported languages.
- Parentheses and operator precedence support in logical conditions.
- Input syntax validation before the interface starts.
How to Use
- Add the indicator to a chart.
- Select symbols (Market Watch) and timeframes.
- Configure buyCondition and sellCondition in one or more setups, naming each one.
- (Optional) Configure chartTemplate and resultFilter .
- (Optional) Adjust scanMode and enable the alerts you want.
- Click Search to start scanning.
- Follow progress in the status area.
- In continuous scanning, the status shows a countdown to the next pass when the cycle ends.
- (Optional) Use Sync to show or hide items that are still synchronizing.
- (Optional) Click Cancel to stop the scan.
- Click a result row to open the corresponding chart.
- Click Close to remove the indicator from the chart.
Condition Syntax
Supported variables:
- ma1[index], ma2[index], ma3[index]
- close[index], open[index], high[index], low[index]
- rsi[index]
- stochK[index], stochD[index]
- adx[index], diPlus[index], diMinus[index]
- 1-candle patterns: doji, longLeggedDoji, dragonflyDoji, gravestoneDoji, spinningTop, marubozuBull, marubozuBear, hammer, invertedHammer, hangingMan, shootingStar
- 2-candle patterns: bullishEngulfing, bearishEngulfing, bullishHarami, bearishHarami, haramiCrossBull, haramiCrossBear, piercingLine, darkCloudCover, tweezerTop, tweezerBottom, insideBar, outsideBar
- 3-candle patterns: morningStar, eveningStar, morningDojiStar, eveningDojiStar, threeWhiteSoldiers, threeBlackCrows
Supported indexes: 0..10
Operators:
- Comparison: >, <, >=, <=, ==, !=
- Logical: &&, ||
- Parentheses: ( )
Examples:
- rsi[1] < 30 && bullishEngulfing[1]
- hammer[1] && close[1] > ma1[1]
- morningStar[1] || threeWhiteSoldiers[1]
- stochK[1] < 20 && stochK[1] > stochD[1]
Inputs
- Strategy: strategyName (name shown in the panel title and window).
- Moving Averages 1/2/3: period, shift, method, applied price.
- Stochastic Oscillator: K period, D period, slowing.
- ADX: period (adx, diPlus, diMinus).
- Custom Conditions (Setup 1 to 5): setupName, buyCondition and sellCondition per setup.
- Chart Opening: chartTemplate (template applied when opening a chart).
- Results Filter: resultFilter (all, with signal, buy, sell).
- Scan Mode: scanMode (continuous or single pass), rescanTimeframe (timeframe whose candle open restarts the cycle).
- Alerts: alertPopup, alertSound, alertPush, alertSoundFile.
- Logs / Logging: enableLogs (None, Errors, All).
- Language: uiLanguage (Portuguese, English, Russian, Chinese, Spanish, Japanese, German, Korean, French, Italian, Turkish).
Notes
- This indicator does not open or close orders; it only reports signals.
- To use templates, the .tpl file must exist in MQL5/Profiles/Templates .
- Continuous scanning is the default from v1.5 on. If you are upgrading and prefer the previous behavior of one scan per click, set scanMode to the single-pass option.
- From v1.6 on, rescanIntervalSec is replaced by rescanTimeframe . A .set file saved in v1.5 loses the old key and falls back to the M1 default, which reproduces the previous factory behavior.
- The Help button in the panel footer opens the full list of variables, operators and examples without leaving the terminal.
- Expressions from earlier versions remain valid without edits: buyCondition and sellCondition kept their names and became Setup 1.
- An unnamed setup produces the same output as earlier versions; when named, the label follows the signal.
- Alerts fire on the no-signal → signal transition and do not repeat while the condition stays true.
- Insufficient data and items still synchronizing never trigger alerts.
- If the buy and the sell condition are both true, the result label is Setup.
- During scanning, some items may first appear as Syncing while history is still loading.
- The Total found counter only includes final visible results.
- Insufficient data is shown when there is not enough history to evaluate conditions.
- Insufficient data appears in the table only when resultFilter = RESULT_FILTER_ALL .
- Use enableLogs only when diagnostics are needed.
- Support and contact: use the seller profile on MQL5 for questions, suggestions, and bug reports.
- If any expression across the five setups has invalid syntax, the error is shown in alert/log, naming the field, and the indicator is removed from the chart.

User didn't leave any comment to the rating