How do you measure the real impact of economic news on an EA? - page 2

I measure the impact of economic news by comparing the EA’s performance during high-impact news windows against normal market conditions.

  • Execution metrics: Track spread widening, slippage, requotes or rejected orders, and execution delays.

  • Performance analysis: Compare net profit, drawdown, profit factor, and average trade outcome for news-window trades versus regular trades, including trading costs.

  • Controlled testing: Test the EA with and without a news filter to determine whether avoiding entries around major releases actually improves its performance.

  • Forward testing: Validate the findings under live market conditions, since the Strategy Tester cannot fully reproduce real-world liquidity and execution behavior.

I wouldn’t automatically close every open position around news. The decision should depend on the EA’s strategy, current exposure, and measured results. The objective is to quantify the impact and make data-driven adjustments rather than assume every high-impact release is a threat.

My EA simply avoid to trade on most news time.
Because news are complicated and the direction is based on real data release at a very short period. 
We need proper equipment to do it with an EA. 
At first, proper amount of data to researched is a must. Then we sort a list of which news we want to look at. And many other things for doing research/backtest.
Then on live test, the EA need to be able to read released numbers on real time and act accordingly, this may be the real challenge.
It's not as simple as trapping EA, which is basically a gambling.

Anyhow, it's likely not related to the existing strategy of the EA.
So I simply avoiding it at the moment.
Roberto Danilo Riccio #:
Yes. And this becomes a gamble. A news can trigger volatility in your favor or against you. But it's normal: users ask for it, and often, the client who buys the expert advisor believes he knows better than the person who created it. So, sellers automatically include it. This is my conclusion.
Thanks Roberto,

makes sense. Buyers ask for it, so it ends up on the feature list.

Funny thing is that then the backtest without the filter is the more honest one. If i switch the filter on, i don't only skip the bad spikes but also the moves that went my way. So I'm running a version nobody ever tested.

What I'd want is simple. Filter off by default, and if the seller says it helps, show me the same period with and without it.

Best regards
Chris
Chris, "show me the same period with and without it" is the right test, and there is a catch in MT5 that makes it even more important.

As far as I know, the built-in economic calendar functions don't return history in the Strategy Tester. So unless the EA loads past news times from a file, its news filter is silently off in the backtest, and the report you see is already the "without" version.

And even with a file, the tester fills orders at the tick price, so it doesn't show the slippage you get live when a stop is hit during a release. Comparing the intended SL price with the actual fill on a few live releases tells you more than the tester can.

One more thing to separate: a filter that only blocks new entries vs one that also closes open trades before the release. They change the results very differently.
Measuring each event is a better approach than blanket blocking. I would add a few points to the list you already have.

1. Normalise reactions against a baseline
A 20 pip move means little on its own. Divide the reaction by the typical movement for that symbol at that time of day (for example ATR or the median range over the same window on non-event days). That gives a ratio you can compare across events and sessions.

2. Measure surprise, not only the release
Reactions usually depend on actual minus forecast, so a scaled surprise value (relative to its own history) explains more than the impact label does. Group events by type and by whether the surprise was small or large.

3. Track the cost of trading, not only the price move
Record spread widening, slippage and rejected or delayed fills around each release. For an EA the question is often what execution costs, not how far price moved. Use the time it takes for the spread to return to its normal percentile to set the length of the no-trade window per event type.

4. Use medians and percentiles
Reactions are fat-tailed, so the mean is misleading. Report the median, the 75th and 95th percentile and the sample size. Treat any event with a small sample cautiously and pool similar events rather than slicing too finely.

5. Judge the EA, not the market
Compare the EA's trades in event windows with matched non-event windows: expectancy, maximum adverse excursion and the worst loss. If the distribution is not meaningfully worse, a block may cost more in missed trades than it saves.

6. Watch for look-ahead and data problems
Calendar data gets revised, and event times and tick quality vary. Check whether your build supports the calendar functions in the strategy tester. If not, store the event history in a file with the timestamps as first published, and use out-of-sample periods.

A practical middle route is a per-event-type rule (block, reduce size or ignore) driven by these measured costs, reviewed on a schedule rather than set once.

Which symbols are you testing on, and are you using tick data or M1 bars for the reaction windows?
Youness Kanbaou #:
Chris, "show me the same period with and without it" is the right test, and there is a catch in MT5 that makes it even more important.

As far as I know, the built-in economic calendar functions don't return history in the Strategy Tester. So unless the EA loads past news times from a file, its news filter is silently off in the backtest, and the report you see is already the "without" version.

And even with a file, the tester fills orders at the tick price, so it doesn't show the slippage you get live when a stop is hit during a release. Comparing the intended SL price with the actual fill on a few live releases tells you more than the tester can.

One more thing to separate: a filter that only blocks new entries vs one that also closes open trades before the release. They change the results very differently.
Hello Youness,

yes, the calendar in the tester was the reason i started asking sellers about it.

Your last point is the one I'd check first. A filter that only blocks new entries still leaves every open trade sitting through the release, and thats exactly where the stop gets filled far away from its price. So "has a news filter" tells me very little until I know which kind it is.

Best regards,
Chris
Conor Mcnamara #:
I honestly just remove the EA from the chart before a big news release and then re-attach it after the initial chaos. I let the EA find the next valid signal (not looking for bounces after news reaction). I don't have news checks coded into my EA. It takes very little time for me to log into the VPS. Whether I believe in full automation or not is still unknown, so I work in this manual/automated way.
Hello! Sometimes I also advise my friends to be cautious around high-impact news and turn off their EAs if they lack experience.
Alternatively, instead of stopping the EA completely, I have another approach: I tighten the Max Spread and Slippage settings, and increase the step distance between orders. This way, we don't miss out on good opportunities during news events.
Additionally, I have implemented an anti-whipsaw mechanism. This allows the EA to automatically lock itself (pause trading) for a specific period if the price fluctuates too violently and rapidly when news breaks.
James Murphy #:
Measuring each event is a better approach than blanket blocking. I would add a few points to the list you already have.

1. Normalise reactions against a baseline
A 20 pip move means little on its own. Divide the reaction by the typical movement for that symbol at that time of day (for example ATR or the median range over the same window on non-event days). That gives a ratio you can compare across events and sessions.

2. Measure surprise, not only the release
Reactions usually depend on actual minus forecast, so a scaled surprise value (relative to its own history) explains more than the impact label does. Group events by type and by whether the surprise was small or large.

3. Track the cost of trading, not only the price move
Record spread widening, slippage and rejected or delayed fills around each release. For an EA the question is often what execution costs, not how far price moved. Use the time it takes for the spread to return to its normal percentile to set the length of the no-trade window per event type.

4. Use medians and percentiles
Reactions are fat-tailed, so the mean is misleading. Report the median, the 75th and 95th percentile and the sample size. Treat any event with a small sample cautiously and pool similar events rather than slicing too finely.

5. Judge the EA, not the market
Compare the EA's trades in event windows with matched non-event windows: expectancy, maximum adverse excursion and the worst loss. If the distribution is not meaningfully worse, a block may cost more in missed trades than it saves.

6. Watch for look-ahead and data problems
Calendar data gets revised, and event times and tick quality vary. Check whether your build supports the calendar functions in the strategy tester. If not, store the event history in a file with the timestamps as first published, and use out-of-sample periods.

A practical middle route is a per-event-type rule (block, reduce size or ignore) driven by these measured costs, reviewed on a schedule rather than set once.

Which symbols are you testing on, and are you using tick data or M1 bars for the reaction windows?
James, great list, especially using the time for the spread to return to normal as the length of the no-trade window. That number is much more useful than a fixed 15 or 30 minutes.

One more angle for anyone trading on a prop firm: there the news window is not only a cost question, it can be a rule. Some firms don't allow opening or closing trades within a few minutes of high impact releases, or they don't count the profit made in that window, and the exact minutes and the list of events differ from firm to firm. So the filter has to match the firm's own window and calendar, and it matters whether it also blocks closing trades, since closing inside the window can also be a violation there.
Abel Masferrer Vinolas:

How do you measure the real impact of economic news on an EA?

I've been researching how automated trading systems behave around economic releases, and I've noticed that simply classifying events as Low, Medium or High impact doesn't tell the whole story.

Two High-impact events can produce completely different market reactions depending on the symbol, volatility and market conditions.

I've been experimenting with measuring things such as:

  • Price movement 1, 5, 15 and 30 minutes after the release
  • Maximum upward/downward excursion
  • Time to peak movement
  • Reversal after the initial reaction
  • Historical median and percentile reactions for the same event
  • Performance of EA trades exposed to news versus normal conditions

I'm curious how other algorithmic traders handle this.

Do you simply block trading around High-impact news, or do you measure the historical reaction of each event before deciding how relevant it actually is?

I'm currently building some tools around this idea for MT5, so I'm especially interested in approaches that can be measured objectively rather than manually classifying every event.

I think its difficult for detect a news however, we can use money management for alive.
[Deleted]

One detail on the slippage-setting point: if an EA passes that input to MqlTradeRequest.deviation, its effect depends on the execution mode. That field is used with Instant/Request execution and ignored with Market/Exchange execution. Lowering it therefore doesn't cap slippage on a Market Execution symbol. I'd record the execution mode alongside requested and filled prices when comparing news trades.

MetaQuotes documents the distinction here: https://www.mql5.com/en/book/automation/experts/experts_market_buy_sell

MQL5 Book: Buying and selling operations / Trading automation
MQL5 Book: Buying and selling operations / Trading automation
  • www.mql5.com
In this section, we finally begin to study the application of MQL5 functions for specific trading tasks. The purpose of these functions is to fill...