News Filter for EAs User Guide

23 July 2026, 20:46
Irina Nechaeva
0
35
News Filter for EAs — user manual

A news filter for every expert advisor in your terminal. When macro data is released, trading conditions change for a few minutes: the spread widens, slippage grows, and price covers the distance of several ordinary hours — algorithms are running outside the regime they were designed and tested for. The panel takes the EAs out of trading for the length of the news window: off their charts before the release, positions and pending orders handled by your rules, everything back afterwards — and it verifies that each EA returned with exactly the inputs it had.

What is being protected is the account, not the robot: during the minutes when the market is unpredictable, the EA simply does not trade.

One panel on one chart covers the whole terminal. No helper script has to be attached to the protected charts.

Contents

  • Installation and first run
  • How protection works
  • Overview tab
  • News tab
  • Setup
  • Profiles
  • Presets
  • Chart drawing
  • Custom events
  • Notifications and the journal
  • Inputs
  • MetaTrader 4 build
  • FAQ

Installation and first run

The product is distributed through the MQL5 Market only — there is nothing to install or update by hand.

  1. Buy or download the product from its Market page. It then appears in the terminal under Navigator → Expert Advisors → Market. The terminal has to be signed in to the MQL5 account that owns the purchase (Tools → Options → Community).
  2. Drag the EA onto any single chart. A second copy is not needed — the panel finds the other charts by itself.
  3. Turn on Algo Trading in the terminal toolbar.
  4. If you use the Forex Factory calendar (the default), allow the download: Tools → Options → Expert Advisors → Allow WebRequest for listed URL, then add https://nfs.faireconomy.media. The built-in MT5 calendar needs no setup, but it only works if your broker serves calendar data.
  5. Make sure the EAs you want protected are allowed to trade. The panel restores an EA exactly as it found it: if trading was switched off, it comes back switched off.

Updates arrive through the terminal: when a new version is released the Market flags it in the Navigator and it installs in one click. Your settings, profiles and chart assignments are kept.

The free demo version from the product page runs on demo accounts only — on a live account it stops during initialization and says so. The purchased version has no account restriction.

On start the panel registers every open chart and prints to the Experts journal which EA it found on each one. Its own chart, and any other copy of this product, are excluded automatically.

The first calendar download happens on the first timer tick rather than during initialization, so the panel appears instantly. Until data arrives the header honestly reads waiting for calendar data.

How protection works

For every chart the panel watches the nearest selected event. A set number of minutes before the release it:

  1. saves a snapshot of the chart — a template holding the EA and all of its inputs;
  2. detaches the EA (the chart stays, only the EA leaves);
  3. applies your order rules to positions and pending orders.

When the window ends, the same steps run in reverse:

  1. orders are restored — closed positions are reopened with the same volume, deleted pendings come back at the same prices, stripped SL/TP are put back;
  2. the EA is reattached from the snapshot;
  3. the EA name and every one of its inputs are compared against the snapshot. Any mismatch raises a loud alert.

The details that matter in practice:

  • Overlapping windows merge. When events follow each other closely, protection does not flicker: the EA is detached once and returns after the last event.
  • A failed restore is never silent. If the template cannot be applied, the panel retries (see the EA reattach attempts input), then enters the FAILED state, keeps retrying every minute and raises an alert every five. A red strip appears under the header: EA not restored on <symbol> - retrying.
  • It survives a restart. State is kept on disk, so a terminal restart — or a crash — in the middle of a window is recovered on the next start: EAs and orders come back on their own.
  • Removing the panel restores everything immediately. Take the panel off the chart mid-window and it puts back every EA it detached and every order it touched.
  • Charts without an EA are protected too, by orders only — there is nothing to detach.

Order actions only ever touch trades on the protected chart's own symbol, and only those that pass the magic number and comment filters.

Overview tab


The main screen: what is coming, when protection starts, and the state of every chart.

# Element
1 Master switch. ARMED — protection is live for the whole terminal; OFF — nothing is protected anywhere.
2 Gear — opens Setup. Click it again to return to Overview.
3 Minimize the panel into the mini bar.
4 The next selected event: title, currency, impact, server time, live countdown and the minute protection begins. During an active window the block turns amber and shows how many charts are covered and when they will be restored.
5 Timeline of the next 8 hours: one tick per selected event (height and colour = impact), the shaded band is the protection window, the bright line is now.
6 Per-chart switch: protect this chart or leave it alone.
7 The EA detected on that chart, followed by the rules profile assigned to it. A chart without an EA reads manual.
8 Protection state: ARMED (waiting), PROTECTED (EA detached, window running), RESTORING, FAILED, OFF.
9 The next event time for that chart — or the end of the window while it is protected.
10 The chart hosting the panel is excluded automatically and is never detached.
11 apply to all — switch protection on for every open chart at once.
12 Preview next event — a dry run of the next event printed to the Experts journal: which charts are covered, with which windows, and what would happen to every position and pending order. The way to check your settings without waiting for a real release.
13 Calendar source and the age of the last successful refresh.
14 Mini bar: countdown, status and chart count. Drag it anywhere; only the "+" button expands the panel again (otherwise the bar could not be moved).

The chart list scrolls with the mouse wheel and the scrollbar. The panel itself is dragged by any part of the header except its three buttons. Position, active tab and collapsed state survive a terminal restart and a timeframe switch.

News tab


The week's events from today onward, grouped by day. The list mirrors protection exactly: an event is shown when at least one enabled chart selects it under its own rules.

# Element
1 AUTO — every chart filters by the currencies of its own symbol (XAUUSD and other non-FX symbols fall back to USD). Clicking any currency pill leaves AUTO and switches the filter to a manual list.
2 Currency pills: lit means the currency is in the filter.
3 Impact filters. A dimmed chip means that impact level is not protected at all.
4 How many events are selected out of everything the calendar delivered for the week.
5 Day header, server time. Past events are dimmed.
6 Event row: time, impact bar, currency, title and the resulting protection window — minutes before / minutes after.
7 The highlighted row is the one you clicked.
8 Detail row: previous value, forecast, and how many charts this event covers.
9 Add custom event — your own event (see Custom events).

Pills and chips on this tab edit the panel defaults, not the profile selected in Setup.

Setup


Setup opens from the header gear and is split into three sub-tabs. SELECTION and ORDERS hold rules — they can be pointed at the panel defaults or at a profile — while GENERAL holds panel-wide settings.

# Element
1 Setup lives behind the gear; both main tabs stay unlit while you are in it.
2 Three sub-tabs: SELECTION, ORDERS, GENERAL.
3 Editing — what you are editing right now: Panel defaults or a named profile. Everything below on this sub-tab belongs to that target.
4 Apply to charts... — a popup listing the charts with checkboxes: tick the ones you want and press Apply. all / none select and clear everything.
5 Impact levels with their own windows: minutes before and minutes after the release. A level that is switched off is not protected at all.
6 Both number columns are minutes: left = before, right = after.
7 Keywords separated by + (for example NFP+FOMC+Rate Decision) with their own, usually wider, window. An event whose title contains a keyword is protected even when its impact level is off.
8 Currency mode: Auto: chart's own, Manual list (the list field appears next to it) or All currencies.
9 What happens to open positions before the window: do nothing, close, move SL to entry, move SL/TP by points, remove SL and TP. The restore box puts them back after the news.
10 split gives losing positions a separate action; the boundary is the threshold in account currency (anything below it counts as losing).
11 Pending orders: keep or delete, with the same restore option.
12 Filters: magic number (All magics / Only listed / Except listed plus a comma-separated list) and a comment substring. Leave them empty and the panel works with every trade on the chart's symbol.
13 Where events are drawn: on this chart only (default), on protected charts only, on both, or nowhere.
14 Calendar source (Forex Factory or the built-in MT5 calendar) and the refresh period in minutes.
15 Pre-event alert and the notification channels: Popup, Push, Email.
16 Presets — a snapshot of the entire panel.

Numeric and text fields commit on Enter or when they lose focus. Every change is saved to disk immediately.

The point distances used by Move SL/TP by points come from the EA inputs (Positions: new SL / TP, points from price, and the same pair for losing positions); there are no fields for them in the panel.

Profiles

A profile is a named set of rules — event selection plus order actions — that you assign to particular charts. Charts without a profile follow the panel defaults.

  • + New creates a profile by copying the rules of the current editing target.
  • Name renames the selected profile; chart assignments follow the new name automatically.
  • Delete removes the profile and sends its charts back to the panel defaults.
  • Apply to charts... assigns the profile to the ticked charts. Unticking a chart removes only this profile from it; other charts' assignments are never touched.

The assigned profile is shown in the Overview table next to the EA name. A typical setup: wide windows and aggressive actions for scalping EAs, a gentler High-impact-only set for long-term ones.

Presets

The PRESETS section at the bottom of the GENERAL sub-tab stores a snapshot of the whole panel: the defaults, every profile and every chart assignment. Type a name and press Save; to go back to a stored state, pick it in the list and press Load. Del removes a preset.

Keeping "normal week" and "NFP week" as two presets makes switching a one-click job.

Chart drawing

The panel can draw events on the price charts: a vertical line coloured by impact (solid for High, dotted for Medium and Low) plus a shaded protection window.

  • Events in the same minute collapse into a single line with a short label, HH:MM CCY +N. The full titles live in the line's tooltip; the shaded band's tooltip reads News protection window.
  • Past events are dimmed.
  • The Draw events on input decides where the marks appear. The default is the panel's own chart only, so lines never show up unexplained on other charts.
  • The shading has its own checkbox.

Removing the panel wipes all its marks from every chart.

Custom events

Add custom event on the News tab adds an event of your own: time (server time), currency, impact and title. A custom event protects charts exactly like a calendar one — useful for unscheduled meetings, weekend gaps, or any moment you will not be at the terminal.

Events are stored in MQL5\Files\NewsFilterEAs\custom_events.txt, which you can also edit by hand:

# lines starting with # are ignored
2026.07.24 21:00|USD|High|Weekend gap guard
2026.07.27 10:30|EUR|Medium|My own event

Line format: yyyy.mm.dd hh:mm|CCY|High|Title. Impact is High, Medium or Low; the time is server time. The panel notices when the file changes and picks it up without a restart; malformed lines are skipped.

Notifications and the journal

Everything the panel does goes to the Experts journal with a [NewsFilter] prefix: windows opening and closing, EAs detached and restored, every order action and its result.

Ordinary messages are also sent to whichever channels are ticked (Popup, Push, Email). Alarms — a chart left without its EA, a restore that failed, a snapshot that could not be read — always raise an alert regardless of those settings.

The pre-event warning is separate: the Alert checkbox and the minutes field on the GENERAL sub-tab.

Inputs

Inputs are the starting values. From then on the panel keeps its own settings and survives restarts; when you press OK in the EA properties dialog, the values shown in that dialog are applied (what you see is what you get), while profiles and chart assignments are always loaded from storage.

General

Input Default Meaning
Protect all open charts true Master switch (the ARMED pill).
News source Forex Factory Forex Factory web feed or the built-in MT5 calendar.
Calendar refresh, minutes 60 How often the calendar is reloaded.

News selection

Input Default Meaning
Filter high / medium / low impact news true / true / false Which impact levels are protected.
High impact: minutes before / after 20 / 30 Window for High.
Medium impact: minutes before / after 15 / 15 Window for Medium.
Low impact: minutes before / after 5 / 5 Window for Low.
Special keywords (FOMC+NFP) empty Keywords separated by +.
Keyword news: minutes before / after 60 / 60 Window for keyword matches.
Currency selection Auto Chart's own currencies, a manual list, or all currencies.
Manual currency list USD,EUR The list used in manual mode.

Order management

Input Default Meaning
Positions: action before news Do nothing What to do with positions before the window.
Positions: new SL / TP, points from price 0 / 0 Distances for "Move SL/TP by points" (0 leaves that leg alone).
Positions: restore after news true Put positions back afterwards.
Losing positions: separate action false Give losing positions their own rule.
Profit threshold, account currency 0.0 The winning / losing boundary.
Losers: action / SL / TP / restore Close, 0, 0, true The rule for losing positions.
Pending orders: action before news Keep Keep or delete pending orders.
Pending orders: restore after news true Restore deleted pendings.
Magic number filter Any magic All, only listed, or all except listed.
Magic list (123,456) empty Comma-separated magic numbers.
Comment contains (empty = any) empty Comment substring filter.

Reliability

Input Default Meaning
EA reattach attempts 5 How many times to retry the reattach before the chart goes FAILED (where retries and alerts continue).

Chart drawing

Input Default Meaning
Draw news events on This chart only Where event lines are drawn.
Shade protection window true Shade the window band.

Notifications

Input Default Meaning
Alert popups / Push notifications / Email notifications false Notification channels.
Alert before event false Warn ahead of a release.
Alert lead, minutes 15 How far ahead to warn.

Visual

Input Default Meaning
Color scheme Slate Minimal Six schemes: Slate Minimal, Graphite Steel, Pearl (light), Round Arctic, Amber Dark, Nightfall Violet.
UI scale 100 % 100 / 125 / 150 % for high-resolution monitors.
Font family / Font size Calibri / 9 Panel font — pick one that is installed on your machine.
Panel X / Y 16 / 16 Starting position in pixels from the top-left corner.

MetaTrader 4 build

MetaTrader 4 has its own product in the Market, with the same interface and the same logic (they are two separate Market listings — buying the MT5 version does not include the MT4 one). The differences:

  • one news source only — Forex Factory (MT4 has no built-in calendar);
  • lists do not scroll with the mouse wheel: use the scrollbar arrows and drag the thumb;
  • the losing-position threshold uses position profit including commission and swap;
  • with ECN brokers that reject SL/TP inside the order request, a position is restored in two steps (open, then set the stops immediately); if that fails the panel says so in the journal.

FAQ

Does it work in the strategy tester? No — news is live data and there are no other charts inside the tester. There the panel runs in interface-preview mode. To rehearse the logic, use Preview next event together with a custom event a couple of minutes ahead.

Will my EA come back with the same settings? Yes, and it is verified. The panel compares the EA name and every input against the snapshot and raises an alert on the smallest difference. The trading permission is preserved by the snapshot too.

What if I close a chart while its EA is detached? The panel reports it with an alert, and the snapshot stays in MQL5\Files\NewsFilterEAs\ — applying that template brings the EA back manually.

What if I remove the panel in the middle of a window? It restores everything it touched right away: EAs and orders alike.

Do I need the panel on every chart? No. One instance covers the whole terminal. A second copy would simply be excluded from protection as another instance of this product.

Why did nothing happen on a release? Check the Experts journal. The usual reasons: the WebRequest URL was not whitelisted, the broker serves no MT5 calendar, the event was filtered out by impact or currency, the chart's switch is off, or the master ARMED pill is off. When a source fails the panel keeps running on the last calendar it loaded successfully — protection is never dropped silently.

Which time does the panel use? Broker server time, the same as your charts. Times in the News list and on the timeline are already converted; nothing has to be added or subtracted.

What about several charts of the same symbol? Order actions are performed per protected chart, by symbol. If two charts of one symbol are protected under different rules, both sets of actions apply — worth keeping in mind when assigning profiles.