Turtle Breakout (Breakout)

The classic Turtle rule: buys a breakout above the 20-bar high and exits on a drop below the 10-bar low or a stop 2 average true ranges below entry.

How It Works

  1. Track the previous 20-bar high, the previous 10-bar low, and the 20-bar average range.
  2. Buy when the close breaks above the 20-bar high — the classic Turtle trend entry.
  3. Exit on whichever comes first: the close falling below the 10-bar low (the trend has rolled over), or a safety stop 2 average ranges below the entry price (the trade went wrong quickly).

Worked example. Price closes at 105, above the previous 20-bar high of 104.6, with an average bar range of 1.2 — buy with a safety stop at 105 − 2·1.2 = 102.6. The trend runs until a close under the rising 10-bar low (or a fall through the stop) ends the trade.

The Math Behind The Indicators

Everything runs on closing prices of the traded timeframe: P is a close, Pt today's close, and N counts bars — one bar is one candle of that timeframe, so 20 bars on a 1h chart is 20 hours.

Price Channel (Rolling High / Low)
The highest and lowest close over the previous N bars — the edges of the recent trading range. Closing above the channel top means price just beat every close in that window (a breakout); the channel bottom marks recent support.
2026-07-23T00:16:19.341029 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/
Example: If the previous 5 closes were 100, 103, 101, 102, 104, the channel spans 100 to 104. A close at 105 breaks above the top; a close at 99 breaks below the bottom.
Average Range (ATR)
How much price typically moves per bar. These backtests run on closing prices, so each bar's range is the absolute close-to-close change, and the ATR is the average of the last N ranges. It sizes stops: a stop placed k ATRs away automatically adapts to how volatile the market currently is.
2026-07-23T00:16:24.323278 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/
Example: If the last three close-to-close moves were +2, −1 and +3, the ranges are 2, 1, 3 and the 3-bar ATR is 2. A stop 2 ATRs below an entry at 100 then sits at 96.

Example Chart

Real Data — Score 41 / 100

Metrics Per Trade

Final Metrics

Scores

Resampled Data — Score 45 / 100

Metrics Per Trade

Final Metrics

Scores