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.
Buried · FragileThe gold result did not travel.
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.
| Variant | Rules | Trades | Net after costs | R per trade | Pips | Winners (95% range) | Profit factor | Drawdown incl. open losses | Verdict |
|---|---|---|---|---|---|---|---|---|---|
| EUR-TT-S1-1U | System 1 (20/10), one unit | 202 | +26 R | +0.13 R | +4,879 pips | 38.6% (32% to 45%) | 1.31 | -17.6 R | Buried |
| EUR-TT-S1-4U | System 1 (20/10), up to 4 units | 203 | +26 R | +0.13 R | +8,761 pips | 24.6% (19% to 31%) | 1.10 | -68.4 R | Buried |
| EUR-TT-S2-1U | System 2 (55/20), one unit | 122 | +15 R | +0.12 R | +1,680 pips | 29.5% (22% to 38%) | 1.21 | -22.9 R | Buried |
| EUR-TT-S2-4U | System 2 (55/20), up to 4 units | 136 | +82 R | +0.60 R | +11,163 pips | 21.3% (15% to 29%) | 1.41 | -60.4 R | Buried |
Cumulative net R by month. * Holdout already used before this test. EUR/USD over the same data: 1.2593 to 1.13685.
By period
| Variant | Development 2004 to 2012 (trades) | Validation 2013 to 2019 (trades) | Holdout* 2020 to 2026 (trades) | Development t | Validation PF |
|---|---|---|---|---|---|
| EUR-TT-S1-1U | +27 R (67) | -6 R (74) | +5 R (61) | 2.26 | 0.82 |
| EUR-TT-S1-4U | +66 R (67) | -19 R (74) | -21 R (62) | 1.74 | 0.83 |
| EUR-TT-S2-1U | +15 R (42) | +8 R (38) | -8 R (42) | 1.44 | 1.28 |
| EUR-TT-S2-4U | +59 R (45) | +55 R (45) | -32 R (46) | 1.81 | 1.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
| Variant | Control percentile, gold | Control percentile, EUR/USD | Holdout, gold | Holdout, EUR/USD | Gold: longs / shorts | EUR/USD: longs / shorts |
|---|---|---|---|---|---|---|
| S1-1U | 94.0 | 97.6 | +15 R | +5 R | +47.5 R / -14.4 R | +5.4 R / +20.3 R |
| S1-4U | 82.8 | 79.8 | +48 R | -21 R | +128.3 R / -49.2 R | -11.4 R / +37.3 R |
| S2-1U | 98.6 | 60.0 | +29 R | -8 R | +75.3 R / -11.6 R | +3.3 R / +11.8 R |
| S2-4U | 97.2 | 69.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
| Variant | Longs: trades / net | Shorts: trades / net | 10 best trades | Net without them | Average units | Average days held |
|---|---|---|---|---|---|---|
| EUR-TT-S1-1U | 104 / +5.4 R | 98 / +20.3 R | +39.9 R | -14.2 R | 1.00 | 23 |
| EUR-TT-S1-4U | 104 / -11.4 R | 99 / +37.3 R | +141.1 R | -115.2 R | 3.05 | 17 |
| EUR-TT-S2-1U | 59 / +3.3 R | 63 / +11.8 R | +58.0 R | -42.9 R | 1.00 | 35 |
| EUR-TT-S2-4U | 64 / +26.4 R | 72 / +55.3 R | +209.7 R | -128.0 R | 3.04 | 26 |
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.
| Variant | Net, no financing | Net, 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.
| Variant | Trades | Real average per trade | Control trades (mean) | Control median | Control 5th to 95th | Percentile (95 needed) |
|---|---|---|---|---|---|---|
| EUR-TT-S1-1U | 202 | +0.13 R | 166 | -0.02 R | -0.13 R to +0.10 R | 97.6 |
| EUR-TT-S1-4U | 203 | +0.13 R | 169 | -0.06 R | -0.39 R to +0.32 R | 79.8 |
| EUR-TT-S2-1U | 122 | +0.12 R | 98 | +0.08 R | -0.15 R to +0.32 R | 60.0 |
| EUR-TT-S2-4U | 136 | +0.60 R | 110 | +0.27 R | -0.55 R to +1.09 R | 69.6 |
08The gates
| Variant | Trades | 1. PF ≥ 1.2 in validation | 2. ≥ 50 trades in each period | 3. t ≥ 2.5 on development | 4. Above the 95th percentile of the time-shifted control | 5. Positive without the 10 best trades | 6. Holdout net positive (already used) |
|---|---|---|---|---|---|---|---|
| EUR-TT-S1-1U | 202 | fail | pass | fail | pass | fail | pass |
| EUR-TT-S1-4U | 203 | fail | pass | fail | fail | fail | fail |
| EUR-TT-S2-1U | 122 | pass | fail | fail | fail | fail | fail |
| EUR-TT-S2-4U | 136 | pass | fail | fail | fail | fail | fail |
09Verdict by variant
| Variant | Cause | Gates failed | Verdict |
|---|---|---|---|
| EUR-TT-S1-1U | Fragile | 1, 3, 5 | Buried |
| EUR-TT-S1-4U | No proven edge | 1, 3, 4, 5, 6 | Buried |
| EUR-TT-S2-1U | No proven edge | 2, 3, 4, 5, 6 | Buried |
| EUR-TT-S2-4U | No proven edge | 2, 3, 4, 5, 6 | Buried |
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
tt_eur_spec.md · tt_spec.md
tt_lib.js · tt_ref.js · tt_selftest.js · tt_run.js
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
tt_selftest_result.txt · tt_results.txt · tt_results_clock.txt · tt_summary.json
EUR-TT-S1-1U · EUR-TT-S1-4U · EUR-TT-S2-1U · EUR-TT-S2-4U
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 check | Trades | Net | Control percentile | Verdict |
|---|---|---|---|---|
| EUR-TT-S1-1U | 202 → 205 | +25.6 R → +25.8 R | 97.6 → 97.2 | Buried (unchanged) |
| EUR-TT-S1-4U | 203 → 206 | +25.9 R → +30.6 R | 79.8 → 82.4 | Buried (unchanged) |
| EUR-TT-S2-1U | 122 → 124 | +15.1 R → +14.7 R | 60.0 → 60.0 | Buried (unchanged) |
| EUR-TT-S2-4U | 136 → 139 | +81.7 R → +79.6 R | 69.6 → 73.0 | Buried (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:
| Variant | Trades | Removed | R per trade | Verdict |
|---|---|---|---|---|
| EUR-TT-S1-1U | 202 | 29 | +0.13 R → -0.01 R | Buried → Buried |
| EUR-TT-S1-4U | 203 | 23 | +0.13 R → -0.33 R | Buried → Buried |
| EUR-TT-S2-1U | 122 | 24 | +0.12 R → -0.33 R | Buried → Buried |
| EUR-TT-S2-4U | 136 | 20 | +0.60 R → -0.66 R | Buried → 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
- Turtle trading strategy backtest
- Forex strategy backtest
- Golden cross backtest eur usd
- Donchian channel breakout strategy backtest
- Trend following vs mean reversion: this test next to the others of its style
- Free prop firm challenge calculator
- What all the backtests found so far
- The backtesting protocol
- How to backtest a trading strategy without fooling yourself
- Backtesting glossary