/* Only complements native navigation; native search and Woo actions stay unchanged. */ (()=>{ const key='cfHeaderDraft40435'; window[key]?.dispose?.(); const abort=new AbortController(),media=matchMedia('(max-width:1024px)'); const header=()=>document.querySelector('.elementor-40435.elementor-location-header'); const toggle=()=>header()?.querySelector('.cf-header-nav .elementor-menu-toggle'); const expanded=t=>t&&(t.getAttribute('aria-expanded')==='true'||t.classList.contains('elementor-active')); const close=focus=>{const t=toggle();if(expanded(t)){t.click();if(focus)t.focus();}}; document.addEventListener('keydown',event=>{ if(event.key==='Escape'&&expanded(toggle())){close(true);event.preventDefault();} },{signal:abort.signal}); document.addEventListener('pointerdown',event=>{ const nav=header()?.querySelector('.cf-header-nav'); if(media.matches&&expanded(toggle())&&nav&&!nav.contains(event.target))close(false); },{signal:abort.signal}); const change=()=>close(false);media.addEventListener('change',change); const disposeCart=cfEnhanceDraftCart(header()); window[key]={dispose(){abort.abort();media.removeEventListener('change',change);disposeCart();}}; /* Proposal only. Call inside the draft header's existing behaviour IIFE: * const disposeCart = cfEnhanceDraftCart(header()); * Include disposeCart() in that IIFE's existing dispose method. * Native cart toggling, fragments and checkout links remain untouched. */ function cfEnhanceDraftCart(header) { if (!header || header.getAttribute('data-elementor-id') === '353') return () => {}; const abort = new AbortController(), owned = new Map(); let wasOpen = false, closing = false, frame = 0; const refs = () => { const widget = header.querySelector('.cf-header-cart'); return {widget, pane:widget?.querySelector('.elementor-menu-cart__main'), trigger:widget?.querySelector('.elementor-menu-cart__toggle_button'), close:widget?.querySelector('.elementor-menu-cart__close-button, .elementor-menu-cart__close-button-custom')}; }; const open = r => !!r.widget?.classList.contains('elementor-menu-cart--shown'); const attribute = (el, name, value) => { if (!el || el.getAttribute(name) === value) return; if (!owned.has(el)) owned.set(el, new Map()); const values = owned.get(el), old = values.has(name) ? values.get(name).old : el.getAttribute(name); values.set(name, {old, value}); el.setAttribute(name, value); }; const prepare = r => { if (!r.pane) return; if (!r.pane.id) attribute(r.pane, 'id', 'cf-cart-dialog-' + header.getAttribute('data-elementor-id')); attribute(r.pane, 'role', 'dialog'); attribute(r.pane, 'aria-modal', 'true'); if (!r.pane.hasAttribute('aria-label') && !r.pane.hasAttribute('aria-labelledby')) attribute(r.pane, 'aria-label', 'Shopping cart'); attribute(r.pane, 'tabindex', '-1'); attribute(r.trigger, 'aria-haspopup', 'dialog'); attribute(r.trigger, 'aria-controls', r.pane.id); if (r.close) { if (!r.close.matches('button, input[type="button"]')) attribute(r.close, 'role', 'button'); attribute(r.close, 'tabindex', '0'); if (!r.close.hasAttribute('aria-label') && !r.close.hasAttribute('aria-labelledby')) attribute(r.close, 'aria-label', 'Close shopping cart'); } }; const focusable = pane => [...pane.querySelectorAll('a[href],button,input,select,textarea,summary,[tabindex],[contenteditable="true"]')] .filter(el => el.tabIndex >= 0 && !el.matches(':disabled') && !el.closest('[hidden],[inert],[aria-hidden="true"]') && el.getClientRects().length && getComputedStyle(el).visibility === 'visible'); const focusInside = () => { const r = refs(); if (!open(r) || closing || !r.pane) return; (focusable(r.pane)[0] || r.pane).focus({preventScroll:true}); }; const returnFocus = () => { const t = refs().trigger; if (t?.isConnected) t.focus(); }; const sync = () => { const r = refs(); prepare(r); const now = open(r); if (now && !wasOpen) { closing = false; cancelAnimationFrame(frame); frame = requestAnimationFrame(focusInside); } else if (!now && wasOpen) { closing = true; cancelAnimationFrame(frame); returnFocus(); closing = false; } else if (now && r.pane && !r.pane.contains(document.activeElement) && !closing) { cancelAnimationFrame(frame); frame = requestAnimationFrame(focusInside); } wasOpen = now; }; const closeNative = () => { const r = refs(); if (!open(r)) return; closing = true; returnFocus(); // Invoke the existing handler; never change its internal isCartOpen state. (r.close || r.trigger)?.click(); if (open(refs())) { closing = false; focusInside(); } }; document.addEventListener('keydown', event => { const r = refs(); if (!open(r) || !r.pane) return; if (event.key === 'Escape') { event.preventDefault(); event.stopPropagation(); closeNative(); return; } if ((event.key === 'Enter' || event.key === ' ') && r.close?.contains(event.target) && !r.close.matches('button, input[type="button"]')) { event.preventDefault(); closeNative(); return; } if (event.key !== 'Tab') return; const list = focusable(r.pane), first = list[0], last = list[list.length - 1], current = document.activeElement; if (!first) { event.preventDefault(); r.pane.focus({preventScroll:true}); } else if (!r.pane.contains(current) || (event.shiftKey && (current === first || current === r.pane))) { event.preventDefault(); (event.shiftKey ? last : first).focus({preventScroll:true}); } else if (!event.shiftKey && current === last) { event.preventDefault(); first.focus({preventScroll:true}); } }, {capture:true, signal:abort.signal}); // Move focus before native click handlers apply aria-hidden to the pane. document.addEventListener('click', event => { const r = refs(); if (!open(r) || !r.pane) return; if (r.close?.contains(event.target) || !r.pane.contains(event.target)) { closing = true; returnFocus(); queueMicrotask(() => { if (open(refs())) { closing = false; focusInside(); } }); } }, {capture:true, signal:abort.signal}); document.addEventListener('focusin', event => { const r = refs(); if (!closing && open(r) && r.pane && !r.pane.contains(event.target)) focusInside(); }, {capture:true, signal:abort.signal}); const observer = new MutationObserver(sync); observer.observe(header, {subtree:true, childList:true, attributes:true, attributeFilter:['class','aria-hidden']}); sync(); return () => { observer.disconnect(); abort.abort(); cancelAnimationFrame(frame); for (const [el, attrs] of owned) for (const [name, {old, value}] of attrs) { if (el.getAttribute(name) !== value) continue; if (old === null) el.removeAttribute(name); else el.setAttribute(name, old); } }; } })();

News Catcher Pro Review: MT4 vs MT5, Live Results and Risk

News Catcher Pro trades EURUSD, GBPUSD and EURGBP around high-impact news, seeking mean reversion with configurable position sizing and exits. Its appeal is selective timing and control over overlapping currency exposure. Our main reservation is the difference between a high win rate and the size of occasional losses: the current public MT5 record includes substantial equity drawdown.

Ready to Buy News Catcher Pro EA MT5?

$479.96 with crypto · $599.95 by card

Official version · Instant download · Future updates included · 7-day money-back guarantee

Get News Catcher Pro EA MT5 at CheaperForex

Using MT4? Get News Catcher Pro EA MT4 at CheaperForex.

News Catcher Pro EA MT5 mint megaphone cover
CheaperForex promotional artwork, separate from genuine trading screenshots.

Evidence checked 25 September 2026. We examined Valeriia Mishchenko’s two listings, release notes, public setup comments, original gallery, buyer feedback and linked signal. We have not independently run the EA or reproduced its backtests. This is a specification and evidence review, not a claim of our own trading performance.

What happens around the news event?

The stated strategy identifies intraday volatility patterns around major announcements and can enter shortly before the release. That makes timing, execution costs and the choice of event window part of the strategy itself. A label such as news filter should not be read as an unconditional promise to avoid news.

The developer describes the EA as infrequent. On the checked signal, the displayed average was two trades per week and the average holding time was three days. News-focused entries therefore do not necessarily mean positions close seconds after the announcement. A trader needs to be comfortable with both waiting for entries and carrying exposure afterwards.

MT4 versus MT5: choose the account, not a promised return

MT4 edition
Fits an existing MT4 terminal and its testing workflow. The developer discusses Tick Data Suite and a news-event file for historical testing.
MT5 edition
Explicitly requires a hedging account. A netting account is outside the documented requirements.
Both editions
Use one M5 host chart, the same three supported currency pairs and configurable risk/exit tools.
Current signal
The main live-performance link on both listings leads to an MT5 account, not two independently monitored platform records.

Neither platform label proves better returns. The meaningful checks are account compatibility, symbol specifications, intended risk settings and execution on the broker you actually use. The developer describes FIFO compatibility, but that does not establish compatibility with every firm’s news restrictions or every possible hedging/grid configuration.

Risk controls are broader than the overview suggests

The basic overview covers lot sizing, maximum symbols, net-currency exposure, free margin and floating-drawdown actions. The net-currency control is particularly relevant here: EURUSD and GBPUSD can both add exposure against USD even though they are different symbols.

The release history adds important context. Optional grid averaging, size multipliers, maximum grid trades and pauses between additions are documented. A stop-related option can set a very distant stop when grid is enabled. Rollover controls can remove protective levels or suspend drawdown checks. These settings should be inspected deliberately; the presence of a drawdown input alone does not mean it is active under every condition.

A high win rate can coexist with rare losses large enough to erase many small gains. Avoid treating this product as universally no-grid or no-martingale. Its grid behaviour is optional, but the chosen settings determine the exposure. We have not established the exact configuration used throughout the public signal’s history.

What the live account currently shows

The linked MQL5 account is labelled real on ICMarkets-MT5-2 with 1:500 leverage. It shows a monitoring start of 30 January 2023 and 190 weeks of account history. The last trade was about eleven hours before our check.

News Catcher Pro MT5 live account captured 25 September 2026
Genuine MQL5 account capture, 25 September 2026. The developer-linked MT5 real account shows historical gains alongside substantial drawdown; it is not a separate MT4 execution test.
Growth and profit
214.92% growth; $252.35 reported profit.
Balance and equity
$452.35 balance versus $424.23 equity: $28.12 of floating loss at the snapshot.
Funding
$200 initial deposit, with $400 additional deposits and $400 withdrawals shown.
Trade sample
412 trades, including 389 profitable trades; 94.41% win rate and 1.67 profit factor.
Historical drawdown
17.22% relative balance drawdown and 52.58% relative equity drawdown.
News Catcher Pro live trade statistics captured 25 September 2026
Genuine MQL5 statistics capture, 25 September 2026. Large losing trades and 52.58% historical relative equity drawdown must be considered alongside the high win rate.

The balance/equity difference matters more than the rounded headline win rate. Average winning trades were $1.62, while average losing trades were $16.36 in magnitude. The worst trade lost $57.14; the best gained $3.32. That is a pattern of frequent small gains with occasional much larger losses, not proof of low risk.

The monthly table includes a 16.34% loss in March 2023 and a 10.96% loss in April 2025. September 2025 contributed a much stronger 45.78%, while 2026 growth through the current partial September was only 1.47%. Long-run growth therefore hides uneven periods. MQL5 also warns that a large drawdown could occur again.

An older signal link, 1849794, still appears in historic discussion and on the former CheaperForex page. It now reports that the signal cannot be found. We use the current main listing’s 1845908 link and do not present the unavailable account as current evidence. The record shown here spans earlier builds and settings; it is not a clean test of only today’s supplied file.

Original backtests: useful questions, not a forecast

News Catcher Pro developer backtest 2015 to 2025
Developer-supplied multi-currency historical simulation, 2015–2025. Retrieved 25 September 2026; not independently reproduced.
News Catcher Pro original multi-currency tester statistics
Original developer tester report, retrieved 25 September 2026. Simulated results, not live account returns; relative equity drawdown is 12.69%.

The developer’s gallery presents a 2015–2025 multi-currency simulation and a report with 1,261 trades, 3.82 profit factor and 12.69% relative equity drawdown. These are developer-supplied results, not our own test. The account history above has materially different drawdown and profit-factor readings.

These are not matched experiments with identical starting conditions. Even so, the comparison shows why the smooth-looking historical curve should not replace inspection of live losses. A reproducible check needs the exact settings, event database, historical prices, spreads, commissions and broker timing. A profitable tester curve without those inputs cannot establish what a new account will experience.

Forecast tools, portfolio mode and the gallery discrepancy

News Catcher Pro dashboard and forecast illustration
Original developer gallery illustration, retrieved 25 September 2026. Its panel displays 4.39 while the public release listing displays 4.38; this is not a verified capture of the supplied build.

The March 2024 release notes document optional machine-learning pattern filtering and forecast filters named ChatGPT and Bard. July 2025 notes describe neural-network retraining; February 2026 notes describe terminal compatibility work. The current gallery uses Google Gemini wording and displays 4.39, while both public release headers show 4.38. We preserve the original image and identify the mismatch rather than inventing a release history.

These illustrations demonstrate the developer’s interface, not a promise that external AI access, credits or subscriptions are included. Check the supplied build’s connection requirements before enabling an optional forecast integration. The basic event-driven strategy and its broker execution still need evaluation independently of AI branding.

Portfolio Mode can coordinate initial entries with Perceptrader AI and Golden Pickaxe, and the notes describe considering Waka Waka orders as well. Unique instance identifiers and the documented delay settings matter when several instances share an account. This controls overlap; it does not cap the entire portfolio’s losses automatically.

Setup and historical-data checks

  1. Use one M5 chart and the exact EURUSD, GBPUSD and EURGBP names shown by your broker, including suffixes.
  2. For MT5, confirm a hedging account. Keep the terminal running continuously on a suitable VPS.
  3. Allow the listed WebRequest addresses: http://timesrv.online, http://valerytools.com and http://valeryservice.com. Verify GMT/DST status rather than relying on the computer’s clock.
  4. For tester work, check the date coverage of NewsEvents.txt in the terminal’s shared Common/Files folder. The public comment attachments are historical; their presence does not prove coverage through today.
  5. Inspect lot size, grid settings, stop behaviour and free-margin limits on demo before using live funds.

The basic setup uses internally stored settings; it does not require a separate SET file. The developer’s public comments discuss additional configurations privately, so we do not promise private-group membership or a custom preset collection. We did not find a separate public user manual linked from the inspected overview; the public overview, release history and setup comments provide the available instructions.

Customer feedback is mixed and mostly older

News Catcher Pro contrasting MQL5 customer reviews
Genuine excerpts captured 25 September 2026: positive feedback from March 2024 and a critical review from November 2023. These are MQL5 customer opinions, not CheaperForex purchase ratings.

Kob Asi’s March 2024 review is a brief endorsement. Sattapong Soasa’s November 2023 review advises against buying and asks for improvement. The developer replied with a reference to public results and offered configuration help. These contrasting opinions are useful context, but neither supplies enough settings or account detail to resolve how the EA would perform for another buyer.

Other visible comments praise communication and support. Much of that feedback predates later releases, so it should not be treated as a fresh independent test. MQL5 customer reviews remain separate from CheaperForex verified-purchase ratings.

Related products from the same developer

Compare Perceptrader AI MT4 or Perceptrader AI MT5 with our Perceptrader review. For the gold-focused sister system, see Golden Pickaxe MT4, Golden Pickaxe MT5 and the Golden Pickaxe review. A stronger-looking result from one system should not be borrowed as evidence for another.

How to get News Catcher Pro

Choose the CheaperForex MT4 offer or CheaperForex MT5 offer for current pricing and platform-specific details. The developer’s MT4 listing and MT5 listing provide the direct MQL5 purchase references.

News Catcher’s most useful distinction is deliberate news timing combined with currency-exposure and exit controls. It is a more suitable research candidate for someone prepared to examine event execution and occasional large losses than for someone seeking frequent trades or a low-drawdown promise. Choose settings on the basis of exposure you can tolerate, not the highest historical win rate.

Developer references

MT5 release history · MT4 public setup comments

Get News Catcher Pro MT4Get News Catcher Pro MT5