MT5 Expert Advisor XAUUSD M15 · M30 · H1 Manual v32.0 Report set August 2026

Quorum Gold

Two trend engines must agree, nine risk guards must consent, and price must trigger the entry itself. Most days nothing qualifies. That is the design.

Edge score
87/100

17 of 19 tests pass

Max drawdown
5.9%

9.5% at Monte Carlo P95

Profit factor
3.10

71.3% win rate

Sample
188

trades · 3.24 years

▸ Before you start — three settings decide everything

1. RiskPercent — sized to your drawdown ceiling, not your ambition.
2. InpPF_DailyResetHour — must match your prop firm's reset, expressed in broker server time.
3. InpPF_ResetState — run once as true on any new account, then switch it off.

Sections 04 and 07 cover all three. If you read nothing else on this page, read those.

§ 01 — Overview

What Quorum Gold does.

A quorum is the minimum number of members who must agree before a decision is valid. Nothing in this system happens on one opinion — and that principle governs both how it enters trades and how it protects the account.

Most gold robots are built around activity. They scalp M1 or M5, open dozens of positions a day, and measure their worth by how busy they look. On an instrument as volatile as gold that model has a structural problem: frequency is not edge, it is exposure. Every additional trade is another spread paid, another slippage event, another chance to be caught on the wrong side of a spike.

Quorum Gold inverts this. Two fully independent trend engines must agree before an entry is even considered. Trend strength must then confirm. Momentum must confirm there is room left in the move. Price itself must trigger the entry through a stop order. And then nine independent risk guards each hold a veto.

The result is a system that spends most of its life doing nothing. That is not a defect — that is the entire design. It runs on XAUUSD with a dedicated set file for M15, M30 or H1, places a stop loss on every position, and uses no grid, no martingale and no averaging down.

What it is not

Not a scalper
It will not open twenty trades a day. Some days it opens none.
Not a recovery system
No grid, no martingale, no averaging down. Losses are taken at the stop.
Not a pass guarantee
The guards enforce loss and drawdown rules precisely. They cannot enforce a firm's consistency rules, minimum trading days, or news restrictions.
Not multi-symbol
Built for XAUUSD. The engine periods and ATR logic are tuned to gold's behaviour.
▸ Temperament check

There will be entire weeks where the panel sits there telling you exactly why no trade qualified, and you will be tempted to think something is broken. Nothing will be broken. The engines will simply not have agreed, or a guard will not have consented.

If a quiet week makes you want to override the system, this is not the right tool for you.

§ 02 — Realistic expectations

Trade frequency.

These figures come from the live trading record, not from a backtest. Read them before you form an opinion about whether the EA is working.

Measure Observed
Trades per monthAbout 12 on average
Trades per weekTwo to three in a typical week
Sessions producing a tradeRoughly four in ten. The other six, nothing happens.
Trades on an active dayUsually exactly one. Busiest day in the record: four.
Longest quiet stretchAlmost two full weeks with no trade at all
Monthly rangeLow single figures up to seventeen
Typical holding timeFour to five hours
Positions held past a dayAbout one in eight
Longest hold in the recordApproximately six days
Longest losing runSix consecutive trades
▸ Why the losing run matters

Six consecutive losses occurred in the live record and the account subsequently recovered. The loss-streak cooldown (InpPF_MaxConsecLosses) is set to 5 by default, which means a run of that length will pause the EA before it completes.

This is deliberate on a prop account, where surviving matters more than recovering quickly. On a personal account you may prefer 7, or to disable the guard entirely. Decide consciously rather than leaving it at a number you never examined.

What this means for evaluation timelines

At two to three trades per week, a ten-day minimum trading requirement is comfortably met over a normal evaluation period. An aggressive minimum-day requirement, however, may not be compatible with a selective system. Check your firm's exact rule before you begin, and note that a quiet fortnight — which has happened — could put a tight deadline at risk.

§ 03 — Requirements

Broker & account requirements.

What you need for Quorum Gold to run correctly.

  • Platform: MetaTrader 5
  • Symbol: XAUUSD (Gold) — your broker's exact symbol may vary (e.g. XAUUSD.i, GOLD)
  • Timeframe: M15, M30 or H1 — load the matching set file from section 03a. The three are separately tuned and their parameters do not transfer.
  • Account type: Hedging
  • Leverage: 1:100 minimum, 1:500 recommended
  • Minimum deposit: 500 USD. 1,000 USD or higher recommended.
  • Brokers: IC Markets or Pepperstone (Raw / ECN). Any low-spread ECN broker works. See our trusted partners.
  • VPS: Strongly recommended for uninterrupted 24/5 operation.
§ 03a — Set files

Three timeframes, three tunings.

Load the file that matches the chart you are running. The engine periods, band factors and risk geometry are tuned per timeframe — a set file is not a starting point to be mixed with another.

Loading a set file

Drag the EA onto the chart, then on the Inputs tab click Load and select the .set file. In the Strategy Tester the same button sits under the Inputs tab of the settings panel. Each file already carries its own MagicNumber, so running two timeframes side by side will not corrupt guard state — but see section 11 on dividing your limits between instances.

What differs between them

Both signal engines are re-tuned per timeframe: lookback periods run 54/185 on M15, 35/154 on M30 and 47/165 on H1, with band factors scaling accordingly. M15 and M30 hold the ADX gate at 20; H1 relaxes it to 15. Take-profit floors tighten as the timeframe lengthens — 5.0, 4.0 and 2.5 ATR respectively. Everything else, including the nine guards, is identical across the three.

▸ Check the risk setting before you run any of them

These files ship at RiskPercent 1.0 on M15 and H1, and 2.0 on M30 — several times the conservative 0.35 discussed in section 07. They are testing configurations, not sizing recommendations for your account.

Set the risk yourself against your own drawdown ceiling using the method in section 07, and re-check it after loading any set file, because loading overwrites whatever you had.

▸ Two more things the files change

ShowInfoPanel is off in all three, since they were built for tester runs. Switch it on for live trading — on a system this selective the panel is how you know why nothing has traded. UseHeikinAshi is also off, against the parameter default in section 09.

§ 04 — Installation & first run

Getting Quorum Gold running.

Step-by-step setup, then the three settings that determine whether the EA works for you.

  1. In MetaTrader 5, open File → Open Data Folder.
  2. Navigate to MQL5 / Experts and copy the EA file there. (Purchases from MQL5 Market install automatically and appear in the Navigator under Expert Advisors.)
  3. Restart MetaTrader 5, or right-click the Navigator and choose Refresh.
  4. Open an XAUUSD chart on your chosen timeframe (M15, M30 or H1) and drag the EA onto it.
  5. On the Common tab, tick Allow Algo Trading. Confirm the global AutoTrading button in the toolbar is green.

The three settings that matter

01
Set your risk
Choose LotSizingMethod, then set either FixedLotSize or RiskPercent. Risk-based sizing calculates lots from the actual stop distance of each specific trade, so risk stays constant even as volatility changes the stop width. The shipped default of 0.35 is conservative and intended for a 10% drawdown ceiling — a starting point, not a recommendation for your account.
02
Set the daily reset hour
InpPF_DailyResetHour defines when the EA considers a new trading day to begin. It is expressed in broker server hours — not GMT, not your local time. Find your firm's stated reset time, convert it to your broker's server hour, and set it here.
03
Baseline the guards
High-water marks, the daily snapshot and the trade count are stored persistently, keyed to symbol and magic number. On a fresh account that reuses the same symbol and magic, those stored values would be wrong. Set InpPF_ResetState to true, let the EA initialise once, confirm the journal shows the state cleared, then set it back to false.
▸ Most common cause of evaluation failure

Prop firms rarely reset the daily loss limit at server midnight. If InpPF_DailyResetHour does not match your firm's actual cutoff, the EA will begin a fresh daily loss allowance while the firm is still counting yesterday's loss — and breach a limit it believes it is safely under.

▸ Leaving reset state on

If InpPF_ResetState is left at true, the guards re-baseline every single time the EA initialises — including after a VPS reboot. Your drawdown protection would effectively reset itself whenever it mattered most. Always switch it back off.

§ 05 — How the strategy works

Five stages, four exits.

Every stage must consent before an order is placed, and every position is managed by four independent exit paths.

Stage 1 — Two independent engines

Each engine builds an adaptive volatility band around a custom-weighted price basis, using its own lookback period and its own band factor. One reads the shorter structural swing; the other holds the broader trend. Both run continuously and independently on every bar. By default both must return the same direction — disagreement means no trade. Setting RequireBothEquations to false allows either engine to trigger, which substantially increases frequency and substantially reduces selectivity.

Stage 2 — Trend strength

An ADX gate verifies the market is genuinely trending. Directional signals generated inside dead ranges are discarded before reaching the order stage. Raising ADX_MinLevel makes the EA more selective; lowering it admits weaker trends.

Stage 3 — Momentum room

An optional RSI entry filter rejects buys into overbought conditions and sells into oversold ones, preventing entries at the precise point a move is already spent. Disabled by default.

Stage 4 — Entry, never at market

Quorum Gold places a stop order beyond the confirming candle, offset by TickOffset ticks. Price must prove the move before capital is committed. If the signal invalidates before the order fills, the pending order is cancelled and nothing was risked.

Stage 5 — Everything scales to volatility

Stop loss, take profit, break-even trigger, trailing distance, maximum spread and every exit threshold are expressed as multiples of live ATR rather than fixed pips. Gold in a quiet Asian session and gold during a payrolls release are effectively different instruments; the EA sizes itself to whichever it is currently trading.

The four exits

Every position is managed through four independent exit paths. Whichever triggers first wins.

Exit Behaviour
Structural SL / TPSet at entry from the engines' own band levels, then bounded by ATR minimum and maximum limits so a single distorted candle cannot produce an absurd stop.
Momentum exhaustionWhen RSI reaches an extreme and the position is already in meaningful profit, the move is banked. A minimum-profit gate means this path never closes at a loss.
Opposite signalIf the engines flip against an open position, the EA exits rather than hoping. Configurable profit threshold and optional break-even allowance.
Time-basedA trade that has gone nowhere after a set number of bars is closed, freeing the account for the next setup. Disabled by default.

Alongside these: automatic break-even with a configurable offset, and an ATR trailing stop that steps rather than drags.

When it will not trade

Independently of the risk guards, an entry is blocked if any of the following apply: the day or month filter excludes the current period; the session filter is active and the current time falls outside it; the market-open check fails on tick freshness, trade mode or session data; the news blackout window is active; or the spread is wide relative to current ATR.

§ 06 — Prop firm guard suite

Nine guards, each with a veto.

The guards run as a separate layer above the strategy, evaluated before the signal logic on every tick. The strategy cannot talk its way past them. Any single guard can veto an entry or flatten everything already open.

# Guard What it does
01Daily loss limitTwo thresholds, not one. Crossing the soft band scales lot size down progressively as the day deteriorates. Crossing the hard band flattens and halts until the reset hour.
02Max drawdownTrailing or static high-water mark, on equity or balance, with a configurable buffer that stops the EA a set percentage before the firm's actual limit.
03Equity circuit breakerTwo triggers: equity falling below its high-water mark by a set percentage, and floating loss exceeding a set percentage of equity. Either flattens immediately.
04Trade & position capsMaximum new trades per day and maximum simultaneous positions. Counted on the executed fill, so cancelled pending orders never consume the daily budget.
05Spread & slippageHard points cap on entries, plus a clamp on the deviation accepted at fill.
06Friday cutoffTwo separate hours: one after which no new trades open, one at which everything is flattened. No weekend gap exposure.
07Margin & equity floorRefuses entries below a true broker margin level (equity divided by used margin), and optionally below a percentage of the equity high-water mark.
08Loss streak cooldownPauses the EA after a configurable run of consecutive losses. Judged on net realised profit per position, not on individual deals.
09Hard equity floorPermanent capital protection. Below a set percentage of initial equity the EA halts and stays halted, deliberately not auto-recovering by default.

Engineering details that matter in practice

  • State survives restarts. High-water marks, the daily equity and balance snapshot, and the trade count are written to disk and reloaded on initialisation. A VPS reboot at midday does not hand the EA a fresh daily loss allowance.
  • Complete flatten semantics. A halt closes positions and deletes every pending order. Because this EA enters via stop orders, a guard that only closed positions would leave live orders that fill after the EA has supposedly stood down.
  • Net position accounting. A position closing across multiple deals is judged on its net result, so a trade that banks partial profit then scratches out is not miscounted as a loss.
  • Fail-loud validation. The EA refuses to initialise on contradictory risk settings — soft loss above hard loss, buffer larger than the limit, an invalid scale factor. It will not start quietly with protection disabled.
  • Halt taxonomy. Daily halts, permanent halts and capital-floor halts are distinct states with distinct recovery rules. The panel always tells you which one you are in.
§ 07 — Configuring for your prop firm

Presets by firm rules.

The shipped defaults are configured for a firm using a 5% daily loss limit and a 10% maximum overall loss. If your firm differs, adjust using the table below.

Parameter 10% / 5% 8% / 4% 6% / 3%
InpPF_MaxDD_Pct10.08.06.0
InpPF_MaxDD_BufferPct1.51.01.0
InpPF_DailyHardPct4.03.02.0
InpPF_DailySoftPct2.01.51.0
InpPF_EquityFloorPct91.093.095.0

How the guards divide the work

The three drawdown-related guards are deliberately configured to measure different things. If two of them measure the same quantity at different thresholds, the looser one becomes unreachable dead code.

Guard Measures
02 — Max drawdownEquity against initial equity, static. This is the firm's overall loss rule. Trips 1.5% before the limit.
03 — Equity breakerEquity against its running peak, plus floating loss as a share of equity. Catches an intraday collapse from a high point that the static rule would miss.
09 — Equity floorA non-recovering backstop just under the firm's limit. Does not participate in the daily reset.
▸ Daily reset and permanent halts

InpPF_DailyDrawdownReset is enabled by default. It clears daily halts, clears permanent halts, and re-baselines the drawdown high-water marks each day. This means a max-drawdown halt at 8.5% down will clear the following morning and the EA will resume with only 1.5% of room remaining. Guard 09 exists precisely for this reason: it does not reset, so at 9% down the EA halts and stays halted.

If you disable the daily reset, guard 02 becomes permanent and guard 09 becomes redundant. Both configurations are valid. Choose one deliberately.

Sizing risk to a drawdown ceiling

The single most important decision is RiskPercent. A drawdown ceiling is not a suggestion; if your risk setting produces historical drawdowns near the limit, you have no margin for an unusual week.

Method: backtest at least twelve months at your intended risk. Read the maximum drawdown from the report. Target a figure around half of your firm's limit. If your firm allows 10% and your backtest shows 9%, reduce risk until it shows 5% or less. Then verify the guards never fired during the run — if they did, your risk is still too high and you are relying on the safety net rather than on position sizing.

▸ Guards are a net, not a plan

An account that regularly triggers its guards is an account sized wrongly. The guards exist to survive the abnormal week, not to manage the normal one.

§ 08 — Reading the on-chart panel

Your primary diagnostic.

On a selective system the panel is how you know what the EA is thinking. When nothing has traded for a week, it tells you precisely why.

=== ATG EA v32.0 - PROP FIRM EDITION ===
ATR: 12.4500 (124.5 pips)
Signal: NONE | Position: NONE

=== TIME FILTERS ===
Day: OFF    Month: OFF
Session: OFF    Market: OPEN

=== EQUATIONS ===
Eq1: BUY  (P:65,  F:7.5)
Eq2: SELL (P:133, F:10.5)
Logic: BOTH

=== CONFIRMATION ===
ADX: 18.4 >= 15 OK
RSI Entry: OFF

=== PROP FIRM ===
Status: ACTIVE
Daily loss: 0.84% / 4.0%  [##--------]
Max DD:     2.10% / 10.0% [##--------]
Trades today: 3/5 | Margin: 1240%
Day P/L: +48.20 | W/N: 2/3

In the example above, no trade is open because Eq1 reads BUY while Eq2 reads SELL. The engines disagree, so under Logic: BOTH no signal is produced. Nothing is wrong.

Status values

Status Meaning
ACTIVEAll guards satisfied. The EA will trade when a signal qualifies.
SCALED x0.62Daily soft band crossed. Position size reduced to 62% of normal.
DAY HALTDaily hard loss reached. Flattened and halted until the reset hour.
PF HALTMax drawdown or equity breaker tripped. Halted until the daily re-baseline, or until reload if the daily reset is disabled.
FLOOR HALTHard equity floor breached. Does not auto-recover.
COOLDOWNLoss-streak pause in effect. The panel shows when it expires.
PF OFFThe guard suite is disabled. Not recommended on a funded account.

The panel can be switched off with ShowInfoPanel. Do this during optimisation runs, where redrawing it every bar wastes cycles.

§ 09 — Parameters

Input parameter reference.

Every input the EA accepts, with defaults and behaviour notes, grouped by function.

Parameter Default Description
EA configuration
MagicNumber1003Unique identifier. Change it for each additional chart.
TradeCommentATG EAComment attached to orders.
UseHeikinAshitrueEvaluate signal candles on Heikin Ashi rather than raw price.
ShowInfoPaneltrueDraw the on-chart panel. Disable during optimisation.
Position sizing
LotSizingMethodRISKFixed lots, or risk percentage of balance.
FixedLotSize0.01Lot size in fixed mode.
RiskPercent0.35Percentage of balance risked per trade, calculated against that trade's actual stop distance.
MaxLotSize5.0Hard ceiling the EA will never exceed.
Risk geometry (ATR-based)
ATR_Period14ATR period used for all risk calculations.
DynamicSL1.5Multiplier applied to the structural stop distance.
TakeProfitMultiplier2.0Take profit as a multiple of the final stop distance.
MinStopLossATR1.0Floor on stop distance, in ATR multiples.
MaxStopLossATR5.0Ceiling on stop distance, in ATR multiples.
MinTakeProfitATR1.5Floor on take profit distance.
TickOffset11Ticks beyond the signal candle for the stop entry order.
MaxSpreadATR0.5Block entries when spread exceeds this fraction of ATR.
Signal engines
UseEquation1trueEnable the first engine.
GoldenPeriod165Volatility lookback for engine 1.
NomadFactor17.5Band width factor for engine 1.
UseEquation2trueEnable the second engine.
GoldenPeriod2133Volatility lookback for engine 2.
NomadFactor210.5Band width factor for engine 2.
CustomPriceWeight1.6Weighting of close within the custom price basis.
VolatilityDamping0.6Smoothing applied to the volatility series.
RequireBothEquationstrueRequire agreement. Setting false greatly increases frequency.
Confirmation filters
UseADXConfirmationtrueRequire a trending market.
ADX_Period14ADX period.
ADX_MinLevel15.0Minimum ADX to permit an entry. Higher is more selective.
UseRSIEntryConfirmationfalseReject entries with no momentum room left.
RSI_MaxForBuy70.0RSI must be below this for a buy.
RSI_MinForSell30.0RSI must be above this for a sell.
Exit systems
UseRSIDynamicExittrueBank the move on momentum exhaustion.
RSI_BuyExitLevel70.0Overbought level closing a long.
RSI_SellExitLevel30.0Oversold level closing a short.
MinProfitForRSIExitATR2.0Minimum profit before this exit can fire.
UseOppositeSignalExittrueExit when the engines flip against the position.
MinProfitForSignalExitATR0.5Minimum profit before this exit can fire.
UseTimeBasedExitfalseClose positions that have gone nowhere.
MaxHoldingBars50Bars before the time exit becomes eligible.
UseBreakEventrueMove the stop to break even once in profit.
BreakEvenATR1.5Profit required to trigger break even.
BreakEvenOffsetATR0.3Distance beyond entry the stop is placed.
UseTrailingStopfalseEnable the ATR trailing stop.
TrailingStartATR2.0Profit required before trailing begins.
TrailingStopATR1.0Trailing distance behind price.
Time and session filters
UseDayFilterfalseEnable per-weekday control.
UseMonthFilterfalseEnable per-month control.
UseSessionFilterfalseRestrict trading to defined sessions.
SessionTimezoneGMTReference clock for session windows.
UseLondonSessionfalsePreset: 08:00–16:00 GMT.
UseNewYorkSessionfalsePreset: 13:00–21:00 GMT.
UseTokyoSessionfalsePreset: 00:00–09:00 GMT.
UseLondonNYOverlapfalsePreset: 13:00–16:00 GMT.
CheckMarketOpentrueVerify session data, tick freshness and trade mode before acting.
UseNewsFilterfalseBlackout window around listed release times.
NewsAvoidMinutes30Minutes either side of a listed time.
Prop firm guards
InpPF_EnabletrueMaster switch for the guard suite.
InpPF_DailyDrawdownResettrueClear halts and re-baseline drawdown each day.
InpPF_DailyResetHour0Broker server hour at which a new trading day begins.
InpPF_ResetStatefalseWipe stored state. Run once on a new account, then switch off.
InpPF_DailySoftPct2.0Daily loss at which lot scaling begins.
InpPF_DailyHardPct4.0Daily loss at which the EA flattens and halts.
InpPF_SoftMinScale0.25Lot multiplier at the hard threshold.
InpPF_MaxDD_Pct10.0Your firm's maximum overall loss.
InpPF_MaxDD_BufferPct1.5Stop this far before the limit.
InpPF_MaxDD_TrailingfalseFalse measures against initial equity; true against the running peak.
InpPF_EquityTrailPct8.0Flatten if equity falls this far below its peak.
InpPF_EquityFloatLossPct4.0Flatten if floating loss exceeds this share of equity.
InpPF_MaxTradesPerDay5New trades permitted per day. 0 disables.
InpPF_MaxConcurrent1Simultaneous positions permitted.
InpPF_MaxSpreadPoints60.0Hard spread cap on entries, in points.
InpPF_MaxSlippagePoints25Maximum deviation accepted at fill.
InpPF_FridayCutoffHour19No new trades after this GMT hour on Friday.
InpPF_FridayFlattenHour20Flatten everything at this GMT hour on Friday.
InpPF_MinMarginLevelPct300.0Refuse entries below this margin level.
InpPF_MaxConsecLosses5Consecutive losses before a cooldown.
InpPF_CooldownBars8Bars paused after a cooldown trip.
InpPF_EquityFloorPct91.0Halt permanently below this share of initial equity.
InpPF_FloorAutoRecoverfalseWhether the floor halt clears on recovery.
InpPF_VerboseLogfalseDetailed guard logging to the journal.
▸ Engine parameters are interdependent

The two periods and their band factors are tuned as a set. Changing one in isolation usually degrades the pair. If you optimise, optimise them together and validate out of sample.

▸ On the news filter

This filter uses a list of times you supply, not a live economic calendar. It will not adapt to schedule changes or one-off events. If your prop firm enforces a strict news rule, treat this as a convenience rather than as compliance.

§ 10 — Backtesting correctly

How to test this EA.

A selective system needs a long sample. Short tests produce numbers you cannot act on.

Setting Use
ModellingEvery tick based on real ticks
SymbolXAUUSD
TimeframeM15, M30 or H1 — matching the set file loaded
Deposit1000 or higher
PeriodTwelve months minimum
ParametersLoad the set file for that timeframe, then adjust lot sizing only
▸ Short tests are meaningless here

This EA averages twelve trades per month. A one-month backtest produces a sample of about twelve trades — far too few to distinguish skill from luck. A two-week test may produce three. Test twelve months or more; anything less tells you nothing you can act on.

Set the daily reset for long tests

InpPF_DailyDrawdownReset should be true for extended backtests. With it disabled, a single drawdown breach halts the EA permanently and the remainder of the test produces a flat line that tells you nothing.

Verify the guards did not carry the result

After a run, check the journal for halt messages. A profitable backtest in which the guards fired repeatedly is not a validation of your settings — it is evidence that your risk is too high and the safety net did the work. Reduce RiskPercent and test again until the guards stay silent through a normal period.

Expect broker variation

Results differ between brokers because of spread, execution speed, slippage and tick data quality. This is true of every EA. Test on data from the broker you intend to trade with.

§ 11 — Troubleshooting

Common situations.

Most reported "faults" on a selective system are the system working as designed. Check the panel first.

It has not traded for days. Is it broken?

Almost certainly not. Check the panel — it will show which engine disagreed, which filter blocked, or which guard vetoed. The longest quiet stretch in the live record was close to two weeks. Confirm the status reads ACTIVE and let it wait.

The EA will not initialise

Check the journal. The EA deliberately refuses to start on contradictory risk settings: a soft daily loss above the hard daily loss, a drawdown buffer larger than the drawdown limit, or a scale factor outside 0 to 1. The message names the offending parameter.

The panel reads PF HALT and nothing trades

A drawdown or equity guard has tripped. The Reason line names which. If InpPF_DailyDrawdownReset is enabled, it clears at the next daily reset. If disabled, remove and re-attach the EA once you have addressed the cause.

Lot sizes are smaller than expected

Check the panel for a SCALED status. The daily soft band reduces size progressively as a day deteriorates. This is intended behaviour and resets with the trading day.

Drawdown figures look wrong on a new account

Stored state from a previous account is being reused. Run once with InpPF_ResetState set to true, confirm the journal reports the state cleared, then set it back to false.

The daily reset is happening at the wrong time

InpPF_DailyResetHour is expressed in broker server hours, not GMT and not local time. Check your broker's server clock in the Market Watch window and convert your firm's stated reset time accordingly.

Trades open on days I disabled

The day filter uses broker server time. The session filter uses whichever clock SessionTimezone specifies. These are separate settings and can disagree. Verify both.

Multiple charts, unexpected behaviour

Each instance must have a unique MagicNumber. Guard state is keyed to symbol and magic, so two instances sharing a magic number will corrupt each other's drawdown tracking. Note also that instances do not see each other's exposure — on a single funded account, divide your limits between them.

§ 12 — Reports

The testing, in full.

Five reports generated with Edge Matrix from the MT5 backtest of the M15 set file — 188 closed positions across 3.24 years. Each opens as the complete document, method notes included.

▸ Who produced these

Edge Matrix is our own analysis platform, not a third-party auditor. The reports are generated from the raw MT5 backtest and show their working — every test names its method, and the two tests that score below threshold are printed alongside the ones that pass. Read them as method disclosure rather than as an independent audit.

§ 13 — What the testing shows

Including where it is soft.

The headline numbers are in section 12. These are the findings that should change how you size the account.

A Welch t-test on the profit distribution returns t = 5.75 against a 99% two-tailed threshold of 2.576, so the edge is not a sampling artefact at this sample size. All six equal calendar periods were profitable, which argues against the result depending on a single favourable regime.

Size against 9.5%, not 5.9%

Reshuffling the trade order ten thousand times widens the 95th-percentile drawdown to 9.5% — roughly 1.6× the historical 5.9%. The historical sequence sits at the 4th percentile of that distribution, meaning the backtest did not depend on lucky ordering, but it does mean the historical figure is optimistic as a sizing input. Use the Monte Carlo figure when you set RiskPercent against a firm's drawdown ceiling.

Expect to be underwater often

Equity sits below its high-water mark 38% of the time. The episodes are shallow — 2.8% on average, with the longest single episode running 82 days — and recovery is fast, so the issue is the frequency of small drawdowns rather than their depth. If a month spent below the previous peak would make you intervene, size smaller.

The two weakest tests

Edge consistency scores 63/100 on day-of-week variance: no weekday is structurally unprofitable, but edge quality is uneven across sessions. Monte Carlo robustness scores 66/100, reflecting the same drawdown expansion described above. Both are printed in the validation report with their reasoning.

Sample size caveat

188 trades is about 75% of the estimated statistical minimum for this instrument and timeframe. At that sample, a measured 71.3% win rate carries a 95% confidence interval of roughly 64–78%. The direction of the edge is well supported; its precise magnitude is not.

§ 14 — FAQ

Frequently asked questions.

Can I run Quorum Gold on multiple charts?

Yes, but each instance must be given a unique MagicNumber. Guard state — high-water marks, the daily snapshot, the trade count — is stored per symbol and magic number, so two instances sharing a magic will corrupt each other's drawdown tracking. Instances also do not see each other's exposure, so on a single funded account you must divide your daily loss and drawdown limits between them.

Does Quorum Gold work on prop firm accounts?

It is built for them. Nine risk guards run above the strategy and can veto any entry or flatten everything open: dual-threshold daily loss, max drawdown with a pre-limit buffer, an equity circuit breaker, trade and position caps, spread and slippage limits, a Friday cutoff, a margin floor, a loss-streak cooldown and a non-recovering hard equity floor. Shipped defaults target a firm with a 5% daily loss and 10% overall loss rule; § 07 gives presets for 8%/4% and 6%/3%. The guards enforce loss and drawdown thresholds as you configure them — they cannot enforce consistency rules, minimum trading day requirements, or news-event restrictions.

Which broker do you recommend?

IC Markets or Pepperstone on a Raw / ECN account. Any low-spread ECN broker with a hedging account type works. See our trusted partners page. A VPS is strongly recommended so the EA runs uninterrupted.

Why has it not traded for a week?

Because nothing qualified. The system averages about twelve trades a month, and roughly six sessions in ten produce no trade at all; the longest quiet stretch in the live record was close to two weeks. The on-chart panel names the exact reason — engines disagreeing, ADX below the gate, a filter or a guard blocking. If the status reads ACTIVE, nothing is wrong.

How often should I update the EA?

MQL5 Market notifies you when a new build is published and updates install through the platform. Run the latest version, and after any update confirm your inputs — particularly RiskPercent, InpPF_DailyResetHour and the guard percentages — still match your account and your firm's published rules.

Can I get a refund if it doesn't perform as expected?

Refunds on MQL5 Market are subject to MQL5's official refund policy. Contact MQL5 support directly for refund requests.

Is source code included?

No. Quorum Gold EA is distributed as a compiled MQL5 executable (.ex5). Source code is not included with the standard MQL5 Market license.

§ 15 — Support

Getting help.

Direct support is available via MQL5 Market messaging. For questions about setup, parameters, or prop-firm-specific configuration, contact the developer through your MQL5 account. After purchase, send a private message to receive access to the private user group, where setup help and configuration guidance are available.
▸ Add your preferred support channels
Update this section with your preferred contact method(s): MQL5 messaging, Telegram, Discord, email, etc.
Risk disclaimer

Trading gold and contracts for difference carries substantial risk and is not suitable for every investor. You can lose your entire deposit. Past performance, including both backtested results and live trading results, does not indicate future results. Trade frequency figures on this page describe the historical record and will vary with market conditions.

Outcomes differ between brokers because of spread, slippage, execution speed and liquidity. Two accounts running identical settings at different brokers will not produce identical results.

Quorum Gold applies predefined risk controls and places a stop loss on every position. No automated system eliminates risk or guarantees results. The prop firm guard suite enforces loss and drawdown thresholds as configured; it cannot enforce a firm's consistency rules, minimum trading day requirements, or news-event restrictions, and it cannot protect against gaps that exceed your stop distance.

Test on a demonstration account before committing real capital. Configure the guards to your firm's actual published rules and verify their behaviour in the strategy tester before relying on them.