Testing Processes
Stage One: testing instruments and timeframes · definition CURRENT · 18 OCT 2026
The current Stage One definition, set by David on 18 Oct 2026. Stage One only: no Stage Two or beyond is defined here. Strategy: Hunter 7 (All-in-One Setup v7) run across all 28 base combinations (7 instruments × 4 timeframes) before any parameter variation, with every result sifted by the Guardian Intelligence layer. The symbol-remap matrix in sections 1–6 below stays as it was and runs alongside this.
Base instruments (7)
| 1 · XAUUSD | Global Prime gold |
| 2 · XAGUSD | Global Prime silver |
| 3 · BTCUSD | Bitcoin |
| 4 · US30 | Global Prime US 30 CFD (Dow) |
| 5 · ES | E-mini S&P 500 futures |
| 6 · YM | Dow futures |
| 7 · MGC | Micro gold futures |
Base grid: 7 instruments × 4 timeframes = 28 combinations
Timeframes 1, 3, 5 and 15 minute. Each cell is one Hunter 7 base run before parameter variation; all 28 are pending.
| Instrument | 1 min | 3 min | 5 min | 15 min |
|---|---|---|---|---|
| 1 · XAUUSD Global Prime gold (CFD) | pending #1 · XAUUSD 1m | pending #2 · XAUUSD 3m | pending #3 · XAUUSD 5m | pending #4 · XAUUSD 15m |
| 2 · XAGUSD Global Prime silver (CFD) | pending #5 · XAGUSD 1m | pending #6 · XAGUSD 3m | pending #7 · XAGUSD 5m | pending #8 · XAGUSD 15m |
| 3 · BTCUSD Bitcoin | pending #9 · BTCUSD 1m | pending #10 · BTCUSD 3m | pending #11 · BTCUSD 5m | pending #12 · BTCUSD 15m |
| 4 · US30 confirm Global Prime US 30 CFD (Dow) | pending #13 · US30 1m | pending #14 · US30 3m | pending #15 · US30 5m | pending #16 · US30 15m |
| 5 · ES E-mini S&P 500 futures | pending #17 · ES 1m | pending #18 · ES 3m | pending #19 · ES 5m | pending #20 · ES 15m |
| 6 · YM confirm Dow futures (E-mini Dow) | pending #21 · YM 1m | pending #22 · YM 3m | pending #23 · YM 5m | pending #24 · YM 15m |
| 7 · MGC Micro gold futures | pending #25 · MGC 1m | pending #26 · MGC 3m | pending #27 · MGC 5m | pending #28 · MGC 15m |
Hunter 7 bias timeframe combos as MoonDog direction filter
Hunter 7's bias on the listed timeframe(s) used as the direction filter for MoonDog trades: a trade is taken only when it agrees with the bias. All five are pending.
| # | Bias timeframe(s) | Rule | Status |
|---|---|---|---|
| B1 | 5m alone | Trade only with the 5m bias | pending |
| B2 | 15m alone | Trade only with the 15m bias | pending |
| B3 | 5m + 15m | Both must agree with the trade | pending |
| B4 | 5m + 1H | Both must agree with the trade | pending |
| B5 | 15m + 1H | Both must agree with the trade | pending |
Extra rules and ideas for Stage One: testing instruments and timeframes
- Regime tagging: each run's results are labelled by market regime (trending vs choppy), so the bias filter's year-dependent behaviour is measured per regime, not just per year. TBD Tagging method still to be decided; proposed: ADX or efficiency ratio on D1.
- Minimum trade-count floor: a filter that removes nearly all trades can't rank best. confirm Floor value still to be confirmed; proposed: at least 50% of the unfiltered trade count, plus a hard minimum number of trades.
- Session-mix testing is carried into Stage One: all sessions, Asia, London, NY and Asia+NY. London-only and all-sessions behaved differently on MGC.
Farm context
| MT5 sessions | 16 live MT5 sessions: PC1 with 7 terminals, PC4 with 9 terminals |
| Redundancy | PC3 as the redundancy backup |
| Scheduler trigger | Completion of the daily 31-instrument data download |
| Testing order | Python parameter grid → NinjaTrader fill validation → Guardian Intelligence hybrid |
| Forward testing | Six EAs live on demo, each shadowing its backtest |
| Promotion gate | No EA is swapped without David's approval (“promote”) |
1 · Symbol remap method
Purpose: test the gold EAs on other markets (EURUSD, GBPUSD, US 100, …) without touching their code, by feeding them another market's real ticks dressed up as gold. If an EA keeps an edge on markets it was never tuned on, that is evidence against curve-fitting; if it only works on 2026 gold, that is evidence for it.
- Source ticks: real broker ticks from a logged-in Global Prime demo terminal (the MT5 tester will not start without a saved login). Export the source symbol's ticks for the test window.
- Build an MT5 custom symbol (
CustomSymbolCreate+CustomTicksReplace), copying gold's contract specs, then rescale prices into a gold-like range so stops/targets in points behave sensibly. - Name it
XAUUSD(or the closest name the terminal allows, e.g.XAUUSD.x), because several EAs check the symbol name. - Sessions: broker gold hours Mon–Fri 01:02–23:59 (server time), not 24/7. MoonDog refuses to trade a symbol with 24/7 sessions.
- Run the EA unchanged in the tester (every tick based on real ticks), record whether it accepts the symbol, then export the trade list.
- Score the trade list in Python: net of real broker fees (added after, since custom symbols show $0), equity curve, H1/H2 split, data gaps excluded.
Gold specs copied onto the custom symbol
| Contract size | 100 (oz per lot), as the broker's XAUUSD |
| Tick size / tick value | As the broker's XAUUSD (e.g. 0.01 / $1 per lot). Both must be non-zero, or EAs divide by zero or refuse to size. |
| Digits | 2 (as XAUUSD) |
| Margin | Gold initial/maintenance margin and leverage of the account |
| Trade sessions | Mon–Fri 01:02–23:59 (quote and trade), not 24/7 |
| Name | XAUUSD or closest allowed |
| Price mapping | Source price rescaled into the gold range; the scale factor is recorded with each result |
Current example: EURUSD-as-XAUUSD acceptance test, 1 week of 2026 (builder script BuildEurAsXau.mq5). Results will land in /workspace/nitro-setups/eurusd_as_xau_2026-10-17/.
2 · EAs under test (no code changes)
| EA | Notes | Page |
|---|---|---|
| Gold Reaper v4.1 | MQL5 port of the Python replica (compiles 0 errors); magic 8001–8009 | Gold Reaper |
| MoonDog v3.34 | Refuses 24/7 sessions | MoonDog |
| Ghost Scalper | Scalper: needs real ticks, 1m OHLC is optimistic | Ghost Scalper |
| My AI Gold | Compounds lot size: fixed-lot runs needed | My AI Gold |
| Range Breakout v5.20 | Multi-symbol from one chart | Range Breakout |
| CapitalX v1.8 | Will not start: needs outside DLLs (not allowed, resold/cracked file) | CapitalX |
3 · Intelligence wrappers (kept separate)
The EAs are always tested raw first. The wrappers are Python only and are applied afterwards to the EA's exported trade list, so a wrapper result can always be compared with the raw result on the same trades:
- Hunter 7 guardian: daily loss limit, equity stop, equity-curve filter, session/news gates, one-per-direction.
- Roman sizing: 4-tier legs (T1/T2/T3 + runner), breakeven rules, and money-management ladders (capped).
Each wrapped result is shown beside its raw result, each with its own curve, net of real broker fees.
4 · Test matrix: EA × symbol LIVE · 30 s
Loading…
| Loading… |
Statuses: pending running accepted (EA loaded and ran on the symbol) refused (EA rejected the symbol) trades (has a scored trade list). Data: /dev/data/testing_processes.json, edited on the box with tp.py.
5 · Results tracking
One row per cell that has been scored: accepted/refused, trades, net, PF, max DD, equity curve. Older results computed at the $25/lot placeholder; being re-stated at real fees.
Job timings
6 · Rules
- All figures net of real broker fees, stated with each result (GP XAUUSD $3.50/lot/side, $7 RT; IBKR MGC $1.92 RT, GC $5.02 RT; NinjaTrader Lifetime ES/NQ $4.34 RT, MES/MNQ $1.28 RT; custom symbols show $0, so fees are added after). Older results computed at the $25/lot placeholder; being re-stated at real fees.
- Equity curve beside every stat; no bare numbers.
- Known data gaps excluded and noted per result.
- Demo accounts / MT5 tester only. No live trades. Bridges stay read-only.
- EAs are run unchanged; no decryption or code edits.
- Nothing is promoted unless David says “promote”.