Markets › FX · EUR/USD spot (daily bars)

Turtle Trading Backtest: Daily EUR/USD, 2004 to 2026

The same Turtle rules as our gold test, unchanged, on 22 years of daily EUR/USD: the out-of-market check the gold result needed.

EUR/USD spot · daily bars, 17:00 to 17:00 New York · Protocol v1.0 plus the 8 Oct 2026 rules

Buried · Fragile

The gold result did not travel.

BornFrozen 11 Oct 2026 (tt_eur_spec.md), before any Turtle level was computed on EUR/USD
Died11 Oct 2026

Variants tried: 4 · Passed every gate: 0 · Holdout opened: yes (already used)

Short answer: not on EUR/USD. We ran the Turtle rules of our gold test, unchanged, on 22 years of daily EUR/USD as an out-of-market check. System 2, the most encouraging result on gold, did not beat the control here and lost in the holdout; all four variants were buried.How much costs took here, compared across all 54 of our tests →Did the same rules work on other markets? The cross-market scoreboard →

00The verdict in three lines

  • Our Turtle test on daily gold ended positive in every period, and System 2 beat the time-shifted control, but it was one market that rose about elevenfold. Its own conclusion named the next step: the same rules, unchanged, on a market we had not used for them. This is that test, on EUR/USD from 2004 to 2026, with the rules, costs, gates and what would count as a failure fixed in advance.
  • The gold result did not repeat. System 2 sat at the 60.0th and 69.6th percentiles of the control (it was above the 95th on gold) and lost in the holdout. Only System 1 with one unit beat the control (97.6), with a development t-statistic of 2.26 against the 2.5 needed and a losing validation period.
  • All four Buried. As we wrote before the run, a clear failure here weakens the gold result: the Turtle rules made money on the big moves of each market, up on gold and down on EUR/USD, more than from the breakout itself.

01What we tested

The rules of the gold test, unchanged: N, the 20-day average true range; System 1, 20-day breakouts with the skip rule and the 55-day failsafe, exit at the opposite 10-day extreme; System 2, 55-day breakouts, exit at the opposite 20-day extreme; a 2N stop; pyramiding to four units at N/2 steps in the 4U variants; R = 2N at the first entry. Only the market values change: one tick is 0.00001, and the cost is about 1 pip per round trip per unit, the cost model of every EUR/USD test on the site. Four variants, named EUR-TT-S1-1U to EUR-TT-S2-4U.

A higher bar: with the gold test, eight Turtle variants have now been tried, so the protocol requires a development t-statistic of 2.5 instead of 2.0.

02Data and costs

EUR/USD spot, the 1-minute bid history of an IC Markets MetaTrader 4 demo server, January 2004 to 28 September 2026, built into 5,906 trading days of 17:00 to 17:00 New York. Periods by the first entry: development 2004 to 2012, validation 2013 to 2019, holdout 2020 to 2026. These periods are not new: the same file and years were used by our earlier EUR/USD tests, so the holdout is reported as already used. Engine check: the engine of the gold test was given the market as a parameter; the gold run reproduced exactly with it, and the self-test passed again, including the four EUR/USD variants trade by trade against an independent re-implementation (tt_selftest_result.txt).

03Results

Net R is the sum of the trades' results after costs; pips add up all units. The 95% range is the Wilson interval for the win rate. The drawdown includes open losses.

VariantRulesTradesNet after costsR per tradePipsWinners (95% range)Profit factorDrawdown incl. open lossesVerdict
EUR-TT-S1-1USystem 1 (20/10), one unit202+26 R+0.13 R+4,879 pips38.6% (32% to 45%)1.31-17.6 RBuried
EUR-TT-S1-4USystem 1 (20/10), up to 4 units203+26 R+0.13 R+8,761 pips24.6% (19% to 31%)1.10-68.4 RBuried
EUR-TT-S2-1USystem 2 (55/20), one unit122+15 R+0.12 R+1,680 pips29.5% (22% to 38%)1.21-22.9 RBuried
EUR-TT-S2-4USystem 2 (55/20), up to 4 units136+82 R+0.60 R+11,163 pips21.3% (15% to 29%)1.41-60.4 RBuried
-050100200620102014201820222026validationholdout*EUR-TT-S1-1UEUR-TT-S2-1UEUR-TT-S2-4U

Cumulative net R by month. * Holdout already used before this test. EUR/USD over the same data: 1.2593 to 1.13685.

By period

VariantDevelopment 2004 to 2012 (trades)Validation 2013 to 2019 (trades)Holdout* 2020 to 2026 (trades)Development tValidation PF
EUR-TT-S1-1U+27 R (67)-6 R (74)+5 R (61)2.260.82
EUR-TT-S1-4U+66 R (67)-19 R (74)-21 R (62)1.740.83
EUR-TT-S2-1U+15 R (42)+8 R (38)-8 R (42)1.441.28
EUR-TT-S2-4U+59 R (45)+55 R (45)-32 R (46)1.811.76

All four made money in development; three of the four lost in the holdout, and System 1 lost in validation.

04Gold against EUR/USD

VariantControl percentile, goldControl percentile, EUR/USDHoldout, goldHoldout, EUR/USDGold: longs / shortsEUR/USD: longs / shorts
S1-1U94.097.6+15 R+5 R+47.5 R / -14.4 R+5.4 R / +20.3 R
S1-4U82.879.8+48 R-21 R+128.3 R / -49.2 R-11.4 R / +37.3 R
S2-1U98.660.0+29 R-8 R+75.3 R / -11.6 R+3.3 R / +11.8 R
S2-4U97.269.6+88 R-32 R+256.5 R / -31.8 R+26.4 R / +55.3 R

On gold the long side made the money and the short side lost; on EUR/USD, which fell from 1.2593 to 1.13685, the short side made more. System 2, the most encouraging result on gold, is unremarkable here.

05Where the result comes from

VariantLongs: trades / netShorts: trades / net10 best tradesNet without themAverage unitsAverage days held
EUR-TT-S1-1U104 / +5.4 R98 / +20.3 R+39.9 R-14.2 R1.0023
EUR-TT-S1-4U104 / -11.4 R99 / +37.3 R+141.1 R-115.2 R3.0517
EUR-TT-S2-1U59 / +3.3 R63 / +11.8 R+58.0 R-42.9 R1.0035
EUR-TT-S2-4U64 / +26.4 R72 / +55.3 R+209.7 R-128.0 R3.0426

Without its ten best trades each variant ends below zero, as on gold.

06Financing

Scenario A: 2% a year of the entry price for every calendar day held, charged to longs and shorts alike. Scenario B: today's IC Markets EUR/USD swap (long -7.99, short +1.31 points per lot per night, Wednesday counting three), applied to every year: not a historical swap; it favours shorts.

VariantNet, no financingNet, scenario A (2% a year)Net, scenario B (today's swap)
EUR-TT-S1-1U+25.6 R+7.8 R+16.7 R
EUR-TT-S1-4U+25.9 R-20.5 R+4.2 R
EUR-TT-S2-1U+15.1 R-2.2 R+7.2 R
EUR-TT-S2-4U+81.7 R+30.0 R+58.1 R

07Is it the timing or the market?

The same time-shifted entry control as on gold: the real entry days moved together by one random offset of at least 5% of the series, same directions, same N, stop, exits, pyramiding and costs; 500 runs with fixed seeds; the bar is the 95th percentile of the average net R per trade.

VariantTradesReal average per tradeControl trades (mean)Control medianControl 5th to 95thPercentile (95 needed)
EUR-TT-S1-1U202+0.13 R166-0.02 R-0.13 R to +0.10 R97.6
EUR-TT-S1-4U203+0.13 R169-0.06 R-0.39 R to +0.32 R79.8
EUR-TT-S2-1U122+0.12 R98+0.08 R-0.15 R to +0.32 R60.0
EUR-TT-S2-4U136+0.60 R110+0.27 R-0.55 R to +1.09 R69.6

08The gates

VariantTrades1. PF ≥ 1.2 in validation2. ≥ 50 trades in each period3. t ≥ 2.5 on development4. Above the 95th percentile of the time-shifted control5. Positive without the 10 best trades6. Holdout net positive (already used)
EUR-TT-S1-1U202failpassfailpassfailpass
EUR-TT-S1-4U203failpassfailfailfailfail
EUR-TT-S2-1U122passfailfailfailfailfail
EUR-TT-S2-4U136passfailfailfailfailfail

09Verdict by variant

VariantCauseGates failedVerdict
EUR-TT-S1-1UFragile1, 3, 5Buried
EUR-TT-S1-4UNo proven edge1, 3, 4, 5, 6Buried
EUR-TT-S2-1UNo proven edge2, 3, 4, 5, 6Buried
EUR-TT-S2-4UNo proven edge2, 3, 4, 5, 6Buried

Fragile (System 1, one unit): it beat the control, but its development t-statistic stayed below 2.5, it lost in validation and it ends below zero without its ten best trades. No proven edge (the other three): below the control's 95th percentile and negative in the holdout. Not tested: a portfolio of markets, other breakout lengths, other exits, live fills.

TWhat this shows, and what to take into your own tests

What the results show

  • The check failed for the system that looked best on gold: System 2 sat at the 60.0th and 69.6th percentiles of the control here, against 98.6 and 97.2 on gold, and lost in the holdout.
  • System 1 with one unit beat the control (97.6) and reached a development t-statistic of 2.26, short of the 2.5 needed, then lost in validation.
  • On EUR/USD the short side made more than the long side, the opposite of gold: Turtle results here follow the market's big moves, down for EUR/USD and up for gold.
  • Without its 10 best trades each variant ends below zero, as on gold.

What remains unknown

  • Whether the rules work on a portfolio of markets, the way the Turtles traded. We tested two markets, one at a time.
  • Other breakout lengths and exits; we used the original parameters only.

Why it did not pass

The out-of-market check is the point of this test, and it did not confirm the gold result. A trend system makes its money from a few large moves; on gold those moves were mostly up and long trades caught them, here the larger moves were down. That is what a system following the market's direction does, and it is not the same as an edge in the breakout itself.

What you can apply to your own tests

  • Before you trust a result on one market, run the same rules, unchanged, on another one. Decide in advance what result would weaken the first.
  • Look at which side made the money. If it is always the side of the market's long trend, the system may be measuring that trend.
  • Raise the bar as you try more variants of the same idea: here eight Turtle variants had been tried, so the development t-statistic had to reach 2.5.

A note on the numbers: drawdown figures are measured on closed trades unless a table says it includes open losses. Open losses inside a trade are not counted in a closed-trade drawdown, so real account risk is higher, especially for systems with no stop. Backtests are not live trading.

FAQCommon questions

Does Turtle Trading work on forex?

Not in our test on EUR/USD. System 2 with one unit made +15 R over 22 years but sat at the 60.0th percentile of a control that enters on other days with the same exits, and lost in the holdout. System 1 with one unit beat that control (97.6) but missed the significance bar and lost in validation.

Why test the Turtle rules on a second market?

Our gold test ended positive in every period, but gold rose about elevenfold, so the result could be the trend of one market. On gold System 2 beat the control (percentile 98.6); on EUR/USD it did not, which weakens the gold result.

How was the EUR/USD Turtle test run?

With the rules of the gold test unchanged, about 1 pip of costs per unit, on EUR/USD spot 1-minute broker data from 2004 to 2026 built into daily bars, with rules written and dated before the data was run, costs included on every trade, results split into development, validation and holdout periods, a random-entry control as the benchmark, and every variant reported. Read the protocol.

10Check our arithmetic

Frozen specificationThe EUR/USD values and what would count as a failure, dated before any level was computed on EUR/USD; the rules are those of the gold specification.
tt_eur_spec.md · tt_spec.md
CodeThe engine, the independent re-implementation, the self-test and the run (node tt_run.js --market=EUR). Needs your own MT4 EUR/USD history.
tt_lib.js · tt_ref.js · tt_selftest.js · tt_run.js
Shared code it usesThe MT4 loaders, statistics and control helpers.
control_audit_lib.js · em_lib.js · fb_clock.js · fx_data.js · gh_lib.js · gx_lib.js · hourly_lib.js · ma_lib.js · rb_lib.js · rsi2_protocol.js
ResultsSelf-test result, the console output of the run and of the clock check, and all numbers as one file.
tt_selftest_result.txt · tt_results.txt · tt_results_clock.txt · tt_summary.json
Trade logs (CSV)Every trade of every variant, with units, R and both financing scenarios.
EUR-TT-S1-1U · EUR-TT-S1-4U · EUR-TT-S2-1U · EUR-TT-S2-4U
Data recordFile hashes, the gap audit of the EUR/USD file and the clock audit.
data_manifest.md · data_holes_eur.json · clock_audit_compare.txt

Code provenance: our own code, written from the published Turtle rules and the standard true range. No third-party source code is used or published.

11Data notes

Clock. The time stamps of this file are about one hour early in most weeks of 2004 to 2014 (our clock audit). For daily bars split at 17:00 New York this moves one hour of trading into the neighbouring day in those weeks, which changes a few trades. We ran the test again on a copy with corrected time stamps: a few trades more or less, no gate and no verdict changed:

Clock checkTradesNetControl percentileVerdict
EUR-TT-S1-1U202 → 205+25.6 R → +25.8 R97.6 → 97.2Buried (unchanged)
EUR-TT-S1-4U203 → 206+25.9 R → +30.6 R79.8 → 82.4Buried (unchanged)
EUR-TT-S2-1U122 → 124+15.1 R → +14.7 R60.0 → 60.0Buried (unchanged)
EUR-TT-S2-4U136 → 139+81.7 R → +79.6 R69.6 → 73.0Buried (unchanged)

Gaps. Removing the trades open across a suspect or unclear gap in the data (data_holes_eur.json) changes no verdict, and leaves each variant at or below zero on average:

VariantTradesRemovedR per tradeVerdict
EUR-TT-S1-1U20229+0.13 R → -0.01 RBuried → Buried
EUR-TT-S1-4U20323+0.13 R → -0.33 RBuried → Buried
EUR-TT-S2-1U12224+0.12 R → -0.33 RBuried → Buried
EUR-TT-S2-4U13620+0.60 R → -0.66 RBuried → Buried

Source. A broker's demo history, not an exchange record; costs are constant across years, which flatters 2004 to 2012.

12Corrections

22 Oct 2026, navigation: added a link to the new guide comparing trading costs across all our tests. No result changed. Before the article, the run was repeated after two labels in its console output were fixed (scenario A was labelled 3% a year although 2% was used, and a column said dollars per ounce); every number was identical. 22 Oct 2026, navigation: added a link to the new cross-market scoreboard, which includes this test. No result changed. 22 Oct 2026, navigation: added a link to the new guide comparing trend following and mean reversion across all our tests. No result changed.

+More tests and guides