Backtest report: how the harness performs, by market and risk profile
Period 2024-10-24 to 2026-10-24 (year 1 to 2025-10-24, year 2 after) - broker prices (FTMO cTrader feed) - app commit d5133c2bc0 - generated 2026-10-25
Summary
- US indices (US500, US100, US30): a proven edge. The daily dip strategy was positive in both years, on every profile, and never reached its drawdown halt.
- Metals (gold, silver) and FX: no proven edge. Gold was the weakest market; FX was about break-even (euro and pound pairs positive, others negative). These markets trade at half the profile's risk until live evaluation shows the AI adds an edge.
- The risk engine works as designed. Every profile's per-trade risk, open-position limit, daily loss limit and drawdown halt held exactly in simulation.
Risk profiles
In the market tables, each year is also run as its own fresh account; the two-year column is one continuous account, which stops for good if its drawdown halt is reached.
| Profile | Risk/trade | Max open | Daily loss pause | Drawdown halt | Min AI confidence | Target | Market multipliers |
|---|---|---|---|---|---|---|---|
| Conservative | 1.0% | 5 | 2.0% | 8% | 70% | 2.5R | indices 0.8, gold 0.5, FX majors 0.5 |
| Moderate | 1.5% | 8 | 4.0% | 15% | 60% | 2.0R | indices 0.9, gold 0.5, FX majors 0.5 |
| Aggressive | 2.5% | 12 | 8.3% | 25% | 55% | 2.0R | indices 1.0, gold 0.5, FX majors 0.5 |
Actual risk per trade = profile risk x market multiplier (x a volatility reduction in high/extreme volatility). Users can also create custom profiles.
US indices - daily dip
When a US index closes in the bottom fifth of its daily range, buy after the close and exit 35 minutes before the next daily close; protective stop 2.5 x the 20-day average range. Never held over a weekend.
| Profile | Risk/trade | Trades | Year 1 (own account) | Year 2 (own account) | Two years (one account) | Max DD | Halt reached | 1-yr typical / bad (5%) |
|---|---|---|---|---|---|---|---|---|
| Conservative | 0.80% | 264 | +6.7% | +10.5% | +17.9% | 2.8% | never | +8.5% / +0.6% |
| Moderate | 1.35% | 264 | +11.5% | +18.4% | +32.0% | 4.7% | never | +14.7% / +1.0% |
| Aggressive | 2.50% | 264 | +22.0% | +36.5% | +66.5% | 8.6% | never | +28.6% / +1.7% |
Metals - gold and silver
H4 supply/demand zone, price returns and an M15 bar closes back out of the zone; market entry; stop beyond the zone; target 2R (2.5R on Conservative); breakeven at 45% of the way.
| Profile | Risk/trade | Trades | Year 1 (own account) | Year 2 (own account) | Two years (one account) | Max DD | Halt reached | 1-yr typical / bad (5%) |
|---|---|---|---|---|---|---|---|---|
| Conservative | 0.50% | 194 | -1.6% | -0.1% | -1.7% | 6.1% | never | -1.0% / -10.2% |
| Moderate | 0.75% | 201 | -9.2% | -2.4% | -11.3% | 12.7% | never | -6.1% / -17.2% |
| Aggressive | 1.25% | 204 | -15.0% | -3.5% | -18.0% | 21.3% | never | -9.5% / -27.4% |
FX - EURUSD, GBPUSD, USDJPY, AUDUSD
Same rules as metals.
| Profile | Risk/trade | Trades | Year 1 (own account) | Year 2 (own account) | Two years (one account) | Max DD | Halt reached | 1-yr typical / bad (5%) |
|---|---|---|---|---|---|---|---|---|
| Conservative | 0.50% | 163 | -5.2% | +4.9% | -5.2% | 8.6% | 2025-08-13 | -1.1% / -14.1% |
| Moderate | 0.75% | 170 | -13.3% | +12.1% | -13.3% | 16.3% | 2025-08-13 | -3.7% / -19.3% |
| Aggressive | 1.25% | 171 | -22.5% | +19.1% | -22.5% | 26.8% | 2025-08-13 | -7.5% / -31.4% |
All markets on one account
Indices, metals and FX trading together, sharing the profile's open-position limit, daily loss pause and drawdown halt.
| Profile | Trades | Two years | Max DD | Halt reached | 1-yr typical | 1-yr bad (5%) | Chance of reaching halt in a year |
|---|---|---|---|---|---|---|---|
| Conservative | 902 | +16.8% | 7.0% | never | +6.2% | -12.6% | 73% |
| Moderate | 201 | -14.8% | 15.7% | 2025-04-06 | +4.1% | -21.8% | 51% |
| Aggressive | 201 | -24.3% | 25.4% | 2025-04-06 | +7.7% | -34.1% | 49% |
Account equity from 100,000 with all markets combined (the line ends where a profile's drawdown halt stops trading).
Per symbol and year
| Symbol | Group | Year 1 trades | Year 1 avg | Year 2 trades | Year 2 avg |
|---|---|---|---|---|---|
| US500.cash | US indices | 41 | +0.057R | 39 | +0.111R |
| US100.cash | US indices | 39 | +0.071R | 43 | +0.080R |
| US30.cash | US indices | 53 | +0.057R | 49 | +0.098R |
| XAUUSD | Metals | 47 | -0.158R | 55 | -0.147R |
| XAGUSD | Metals | 55 | -0.092R | 44 | +0.120R |
| EURUSD | FX | 61 | +0.097R | 67 | +0.122R |
| GBPUSD | FX | 55 | +0.044R | 72 | +0.124R |
| USDJPY | FX | 61 | -0.179R | 58 | -0.004R |
| AUDUSD | FX | 61 | -0.363R | 51 | -0.013R |
Average result per trade in R (1R = the amount risked). With about 60 trades a symbol a year, one year's average can differ by about 0.15R by chance alone.
How the AI fits in
The harness above is the core. In the live product, an AI receives everything the harness sees - every timeframe, the major levels and intraday range (market map), supply/demand zones, swing structure, the economic calendar and news, account and broker limits - and decides: take the harness setup, decline it, or take another setup on any timeframe (sweep and rejection, or break, retest and continuation at a level). Every AI decision must pass the same deterministic risk gates. The AI's contribution beyond the harness is not part of these results; it is being measured in live and demo forward testing, and this report will be updated with that comparison.
How the test was done
- Every closed M15 bar (daily bar for the index strategy) evaluated; nothing sampled; rules fixed before testing.
- Fills on 1-minute broker bars; stop assumed first when one minute touches both stop and target.
- Costs: measured bid/ask spread by hour of day from broker ticks; commission: forex $5/lot round turn, metals 0.0014% and energy 0.001% per side, indices none; swap from broker rates.
- Random-entry baselines and year-1/year-2 splits used to separate edge from chance; a Monte Carlo of 2,000 one-year sequences resampled by trading day from the real trades (seed 20261025).
- Not simulated: the AI layer, news reactions beyond price, slippage beyond the measured spread, broker outages.
Research record
Every idea tested in October 2026, including those that failed. Full scripts and results are in the RezSync Algo repository (docs/research/2026-10-strategy-search).
| Idea | Markets | Result |
|---|---|---|
| H4 supply/demand zones (the original harness) | Gold, FX, indices | about random (25% vs 23% reach +2R) |
| Previous day/week highs and lows, round numbers | 7 symbols | no better than shifted fake lines |
| Multi-touch major levels (marked as traders mark them) | 7 symbols | no better than shifted fake lines, with or without EMA trend |
| Fading or breaking H4 zones | 6 symbols | lose (-0.13R) |
| Intraday M15 ranges: fade, breakout, failed breakout | 6 symbols | about random, also before costs |
| Opening-range breakouts (London, New York) | Gold | fail |
| Intraday momentum (first half hour) | US indices | fails in 2024-26 |
| Trend following 55/20, 24 markets | 24 markets | fails after costs and swap |
| London sweep of the Asian range (ICT/TJR) | Gold, FX | loses (-0.13 to -0.16R) |
| ICT Silver Bullet | Gold, US indices | about random |
| Internal bar strength (daily dip) | US indices | PASSED: positive in every period |
| FX 4pm fix reversal, month-end | 6 FX pairs | strong 2024-26, flat 2021-24: watch list |
| Break and retest with the trend (M15/H1/H4) | 6 symbols | about random, also before costs |
| Rule designed from the data (year 1), validated on year 2 | Gold, FX | passed year 1, failed year 2 |
| Range break-retest and strong sweep-rejection (M5) | 6 symbols | lose |
| Top-down: two-year H4 zones + M15 entries | 6 symbols | about break-even, same at fake zones |
| Order-flow ideas: stop/target clusters, cascades, fix windows | 6 symbols | no edge at retail costs |
| Kronos market foundation model (direction / volatility) | Gold, EURUSD | direction a coin flip; volatility mixed |
| Take profit at the next level vs fixed 2R | 6 symbols | no method better; fixed 2R kept |
| Trade management (breakeven, partial, trailing, 1:1) | 6 symbols | all within 0.02R; current kept |
Reproduce
Commit d5133c2bc0501056b54dab3f70bbb254d14303ba; command python docs/research/2026-10-strategy-search/final_report.py <out>; data fingerprints (SHA-256) and the trade list's fingerprint are in manifest.json; every trade is in trades.csv.