The short version. The Turtle trading rules are a complete, mechanical trend-following system: Donchian channel breakouts for entries, position size set by volatility (N), a new unit every half N while the trade works, a stop 2N away, and an exit on the opposite channel. Four layers of risk limits sit on top. This post goes through each rule as the 2003 "Original Turtle Trading Rules" PDF states it, with its own worked examples, and then lists the six places where the PDF leaves you to decide.

This is part 2 of 5. Part 1 covered the 1983 experiment. In my backtest on 26 Exness markets (2020 to 2026) these exact rules lost 57.7%; parts 3 and 4 show how I built the test and what came out of it.

What is N in the Turtle system?

N is the average daily range, and almost every other rule is written in units of it.

True range = max(High − Low, High − previous Close, previous Close − Low)
N          = (19 × previous N + today's true range) / 20

That's a 20-day Wilder average of true range, which is what most charting tools call ATR(20). The first N is a simple average of the first 20 true ranges. True range counts gaps, so a market that opens far from yesterday's close gets a larger N even if the day itself is quiet.

One detail most code gets wrong: the Turtles recalculated N and their position sizes once a week, on Monday, not on every bar. I did the same.

N on real gold daily bars, late October 2024: N about $31 a day

How big is one Turtle unit?

One unit is sized so that a move of 1N equals 1% of the account:

Unit = 1% of account / (N × dollars per point)      (rounded down)

The PDF's own example is heating oil: N = 0.0141, $42,000 per point, a $1,000,000 account. That's 0.01 × 1,000,000 / (0.0141 × 42,000) = 16.88, so 16 contracts.

The effect is that every unit carries the same risk in every market. A quiet market gets more contracts, a wild one fewer. It also means small accounts struggle: the same heating oil example on $100,000 leaves you with 1 contract, and rounding starts to dominate.

Unit sizing: more contracts in a quiet market, fewer in a wild one, the same 1% risk per N

What are the two Turtle entry systems?

Both are breakouts, both enter long or short.

Entry Exit
System 1 20-day high (long) / 20-day low (short) 10-day low / 10-day high
System 2 55-day high / 55-day low 20-day low / 20-day high

A breakout means price trades one tick beyond the high or low of the previous N days, not counting today. The Turtles entered during the day, the moment price crossed, not at the close. If the market opened beyond the level, they filled at the open.

System 1 and System 2 breakout levels on real gold daily bars, Nov 2024 to Mar 2025

What is the System 1 breakout filter?

This is the rule most implementations get wrong.

System 1 skips a breakout if the last 20-day breakout would have been a winner. "Last" means the last one, whether you took it or not, so you have to track imaginary trades. Direction doesn't matter: a losing short last time means you can take a long this time. A breakout counts as a loss if price moved 2N against it before a profitable 10-day exit.

Then there's the failsafe. If you skipped a 20-day breakout and price keeps going to a 55-day breakout, you enter anyway, so the filter can't make you miss a big trend.

The System 1 filter: a winning imaginary breakout, a skipped breakout, and the 55-day failsafe

How does Turtle pyramiding work?

The Turtles never bought the full position at once. They added one unit every half N in their favour, measured from the actual fill of the previous unit, up to 4 units per market. All four can go in on the same day.

The PDF's crude oil example, N = 1.20:

After Units at Stop for the whole position
Unit 1 28.30 25.90
Unit 2 28.90 26.50
Unit 3 29.50 27.10
Unit 4 30.10 27.70

Pyramiding on the crude oil example: four units half an N apart, the stop rising with each one

Where do the Turtles put the stop?

The stop is 2N from entry, which is 2% of the account per unit. Every time a unit is added, the stops of the earlier units move up by half N, so the whole position exits 2N below the newest unit.

There's a subtle case. If price gaps past an add level, say unit 4 fills at 30.80 instead of 30.10, unit 4 gets its own stop at 28.40 (2N below its real fill) while units 1 to 3 stay at 27.70. My simulator handles this, and part 3 shows a real gold trade where it mattered.

The gap case: unit 4 fills at 30.80 and keeps its own stop at 28.40; units 1 to 3 keep 27.70

The PDF also describes an alternative, the "Whipsaw" stop: half N per unit, re-enter if price comes back to the original entry. It says this made more money but was harder to trade. I didn't test it.

When do the Turtles take profit?

They don't, not at a target. System 1 exits on a 10-day low (for longs), System 2 on a 20-day low, all units at once. The PDF calls this the hardest part of the system: you routinely watch 20% to 40% of an open profit disappear, sometimes all of it, before the exit triggers.

Exits on the 10-day and 20-day lows, and the open profit given back before them

What are the Turtle risk limits?

Risk is capped in units:

Level Scope Max units
1 One market 4
2 Closely related markets, same direction 6
3 Loosely related markets, same direction 10
4 One direction overall 12 long and 12 short

On top of that is the drawdown rule. Every time the account falls 10% below its value at the start of the year, you trade as if it were 20% smaller. Lose $100,000 of $1,000,000 and you size for $800,000; lose another $80,000 and you size for $640,000. That stays in place until the account gets back to its start-of-year level.

When several markets break out at once, the PDF says to take the strongest one, measured for example by (price − price 3 months ago) / N. I used that to decide which order signals are filled in.

The four unit limits and the drawdown rule

The correlation groups are the one place I had to translate. The 1983 futures list doesn't map onto a modern CFD basket, so I grouped markets myself: EURUSD, GBPUSD and USDCHF as closely related (USDCHF with the sign flipped), AUDUSD with NZDUSD, AUDCAD with NZDCAD, US and UK oil, gold with silver, DE30 with STOXX50. Looser groups cover all USD pairs, the AUD/NZD pairs, energy, metals and stock indices.

What does the original PDF leave open?

Six things, and you have to pick an answer for each before you can write code:

  1. Do System 1 and System 2 share the 4-unit limit? I count them together, split capital 50/50 between them, and don't allow the two systems to hold opposite directions in the same market.
  2. Is the exit checked intraday or on the close? Intraday, as the PDF describes. Some published versions use the close.
  3. Does the imaginary trade for the filter pyramid? No. It's a loss if it hits −2N first, otherwise it's judged at its 10-day exit.
  4. What if one day touches both a stop and an entry? I decide from minute data, and if a single minute bar touches both, the stop goes first (the conservative choice).
  5. What happens to a signal blocked by a limit? The entry is skipped for that day; a blocked add moves its level another half N out.
  6. How is the account reset each year? The notional account is set to equity at the start of each year. Dennis adjusted it by judgment; this is the mechanical version.

Should Turtle trading use shorter timeframes today?

A common idea: markets move faster now, so daily bars are too slow and an hourly chart would be the modern equivalent. I don't think that works, and the cost side alone shows why.

The spread stays about the same on every timeframe, but N shrinks as the bars get shorter. Here's gold on Exness Raw Spread, medians from 2020 to 2026:

Timeframe Median spread Median N Spread as % of N
D1 $0.067 $25.78 0.30%
H4 $0.064 $10.57 0.69%
H1 $0.063 $5.45 1.33%
M15 $0.063 $2.67 2.68%

Every entry and exit pays the spread, and a breakout system trades far more often on shorter bars. So costs per unit of risk are about 4 times heavier on H1 and 9 times heavier on M15. On top of that, research on trend following (Moskowitz, Ooi and Pedersen, 2012, 58 markets) found the effect strongest over 1 to 12 month lookbacks, not hours. So I kept daily bars, as written.

Spread as a percentage of N on gold for D1, H4, H1 and M15, Exness Raw Spread medians 2020 to 2026

What I can't verify

  • How the Turtles traded in practice. I follow the PDF. Individual Turtles adapted the rules, and the PDF itself says some of them did.
  • The futures side. I tested CFDs on Exness, not the 1983 futures list. There's no contract roll, but there is overnight swap, which I've only measured on 3 of the 26 markets.
  • The Whipsaw stop. Not tested.

Next, part 3 covers the Python simulator and the three checks that tell me the losses in part 4 aren't a coding bug.

Research, not financial advice. Past results do not predict future results.