/* 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); } }; } })();

YZH AlgoCore EA MT5 Review: Profiles, Recovery and Test Evidence

YZH AlgoCore EA MT5 uses automatic instrument profiles to combine selective entries with scaling and layered recovery. Its strongest practical attraction is a shared workflow across gold, Bitcoin and four FX pairs. The main consideration is exposure during recovery: conditional entries and margin checks do not make an open basket immune to sustained adverse movement.

Ready to Buy YZH AlgoCore EA MT5?

$399.96 with crypto · $499.95 by card

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

View YZH AlgoCore pricing

YZH AlgoCore EA MT5 black and gold robot cover
CheaperForex promotional artwork retaining the source product identity; not a software screenshot.

Evidence checked 25 September 2026. We read Yusuf Ziya Hazeral’s listing, release history, public comments and customer feedback, and inspected the original gallery. We have not run the software or independently reproduced its tests. This is an assessment of the available features and evidence.

Automatic profiles do not create an automatic six-market portfolio

The current overview supports XAUUSD, EURUSD, GBPUSD, GBPJPY, USDJPY and BTCUSD. It says the EA identifies the chart symbol and selects the corresponding internal profile, including timeframe and scaling behaviour. That is a useful reduction in manual configuration, especially when comparing several supported markets.

It does not establish that attaching the EA once deploys all six symbols. Treat each intended chart and profile as a separate setup check. If several instances share an account, consider their combined margin and correlated exposure: a gold position and a dollar currency pair can react to the same news event. XAUUSD remains the primary optimisation focus in the developer’s July notes, so equal support is not evidence of equally extensive testing on every instrument.

How entries, recovery and exits fit together

The initial sequence starts from a strategy signal. Further scaling is described as conditional, rather than opening mechanically at every interval. The recovery layer can add protective exposure, pair positions and manage the aggregate group. A margin check runs before new orders, while a stall-exit mechanism addresses groups that cease progressing.

Those mechanisms address different problems. A margin check can reject an additional order but cannot remove the market risk of positions already open. A hedge may change directional exposure while leaving costs and gross volume substantial. Closing a stalled group can free margin, but the public description does not justify treating every such exit as profitable.

YZH AlgoCore developer input settings screenshot
Original developer gallery image, retrieved 25 September 2026. These historical input values illustrate controls, not recommended settings for your account.

The original settings image includes grid-step and hedge controls, alongside custom volume and daily limits. It would therefore be misleading to describe this as a no-grid system simply because its first entry is selective. The pictured values are historical examples, not a current recommended preset. No public manual or downloadable recommended SET file was linked in the material we inspected; the developer offers additional material privately to verified direct purchasers.

Why the July maintenance notes matter

The 27 July release notes describe fixes to protective-position sizing that could leave recovery books stuck, continuation after a daily-loss limit, and percentage-based daily target activation. They also discuss a micro-account entry-blocking loophole and make the group profit target per lot adjustable. These changes concern operating behaviour that a buyer should actually test.

The mid-July notes explain changes to net-budget validation when pairing winners and losers, second-layer exposure balancing and pre-trade margin validation. They also describe keeping closing logic active while news or session filters prohibit new entries. The intended separation is sensible: an entry restriction should not automatically strand an otherwise eligible exit.

These are developer-reported corrections, not proof that all future edge cases are eliminated. On a demo account, inspect the sequence when a daily limit is reached, whether resumption matches the chosen setting, and how a small-volume group reaches its target. Retain journal messages and settings when investigating unexpected behaviour. An older equity curve cannot verify code introduced after the curve’s end date.

Reading the original tester evidence

YZH AlgoCore developer balance and equity curve
Original gallery curve spanning August 2025–May 2026, retrieved 25 September 2026. Historical simulation evidence predates the July recovery updates.
YZH AlgoCore original Strategy Tester statistics
Developer-supplied historical simulation, retrieved 25 September 2026. The report shows 48.17% relative equity drawdown; it is not a verified live account.

One original report displays a 5,000 starting deposit, 75,507.57 total net profit and a profit factor of 1.60 across 21,307 trades. More revealing for risk is its 48.17% relative equity drawdown, compared with 19.17% relative balance drawdown. The difference shows why examining only closed-trade balance can understate the experience of holding losing positions.

The report also displays maximal equity drawdown as 9,094.97 with 14.80% beside it. That field is not interchangeable with the relative-equity-drawdown field. Picking the smaller percentage would obscure a materially different measure of exposure. The historical curve shown separately in the gallery spans August 2025 to May 2026 and includes a sharp setback around late January.

These are developer-supplied simulations. We have not obtained a complete tester export, exact current-build preset and independently reproduced execution-cost assumptions. The image’s 100% history-quality label does not establish live profitability. A useful comparison would hold the broker specifications, data range and costs constant, then evaluate each intended profile, its maximum concurrent volume and its longest recovery sequence.

Is there a working live signal?

No working public signal appeared in the current overview or seller page at our check. An older indexed description referenced signal 2391586; opening that address returned MQL5’s signal-not-found page. We cannot inspect its results or determine from that error alone why it became unavailable. We therefore make no claim of a current verified live record.

This gap matters particularly for a recovery strategy. Forward evidence would help show holding periods, floating drawdowns and execution behaviour across adverse conditions. It cannot be replaced by a high-growth screenshot or a positive customer comment.

What the visible customer feedback actually says

YZH AlgoCore MQL5 customer review opening excerpt
Genuine MQL5 review opening by Iskender Egrikale, captured 25 September 2026. The source carries a June timestamp and a July update in the body. Customer opinion, not independently verified performance.

Iskender Egrikale’s Turkish-language review describes starting on demo before moving to a live account, using XAUUSD and appreciating more selective entries and the developer’s continued changes. This is our English paraphrase, not a literal translation. The review carries a June timestamp and a 15 July update in its text.

The review tab showed four ratings, but three other entries displayed no customer-written comment; the accompanying long passages were developer replies. They should not be counted as four detailed independent testimonials. The substantive review is useful experience feedback, but it does not supply a verified account history, complete settings or evidence across all six instruments. We keep third-party opinions separate from CheaperForex verified-purchase ratings.

Who should consider YZH AlgoCore?

The feature set suits an MT5 user who wants automatic symbol profiles and is willing to monitor group exposure, margin and recovery behaviour. It is less suitable for someone whose requirement is strictly one position at a time or a current public live track record. Its strongest documented feature is coordinated entry and position management; the evidence limitation is the gap between older simulations and the maintained recovery engine.

View the YZH AlgoCore EA MT5 product and current price for the standalone offer. The developer listing provides the direct marketplace specifications. Before using real funds, validate the recognised symbol, volume, daily limits and closing behaviour on your own broker.

Verify it yourself

Get YZH AlgoCore EA MT5 at CheaperForex