← All ideas
#006BreakoutPosition

Turtles: 4-week breakout, 2-week exit

Long on a 20-bar high breakout, exit on a 10-bar low breakout. Two rules and two parameters. Brent Penfold advises measuring any trend strategy of your own against it, Kevin Davey shows a simple 20-bar breakout without filters.

The Algorithmic Advantage · Brent Penfold · Watch video

Markets

Futures, Indices, Forex, Commodities, Bonds

Timeframe

D1

Data

OHLC

Rules

Author's rules

Difficulty

Easy

Status

Untested

The author named entry, exit and parameters.

TradingView ports directly
EasyLanguage has pitfalls
MetaTrader 5 has pitfalls

Idea in brief

A long is opened when price makes a new high of the last four weeks (20 daily bars). The stop and the exit are one and the same: a breakout of the low of the last two weeks (10 bars). There are no other rules. Brent Penfold calls this the turtle system and stresses its lineage: the turtles were trained in 1983, and the idea itself builds on Richard Donchian's four-week rule from the 1960s.

Penfold does not suggest trading it as is, but keeping it as a benchmark. Any trend system of your own should beat the turtles on the same portfolio and period. According to Penfold, most developers, if they are honest with themselves, cannot do this.

Kevin Davey gives almost the same construction as an example of simplicity: a breakout of the 20-bar high goes long, a breakout of the low goes short, with no filters. This is variant B.

Why it might work

Penfold explains the system's longevity by the fact that beneath the surface markets do not change. The names of crises and the technologies change, but the cycle stays the same: calm periods with narrow ranges alternate with nervous periods with wide ones. A breakout of the four-week high catches the transition from a calm phase to a directional one. A rule published 60 years ago provides a long out-of-sample stretch by itself, and that is an argument against overfitting.

The second argument concerns efficiency. Per contract, the 50/200 moving average crossover gives a smoother curve and more money. But its stop is huge, and with a fixed risk per trade the position ends up small. The turtles' stop at the two-week low is much closer, and for the same risk in money several times more contracts can be traded. When a trend gets going, the gain grows proportionally. That is why the author suggests comparing systems with money management included, not by the single-contract curve.

Davey adds the honest side. A simple breakout can make money on different markets, but there is a lot of pain along the way: most breakouts are false. The urge to filter them out leads to a perfect backtest on the past and to overfitting. Davey chooses the simple system and lives with its drawdowns.

Rules

Core system: turtles 20/10 (author)

// daily bars, each market separately
Entry20 = highest High over the last 20 closed bars     // author: 4 weeks
Exit10  = lowest  Low  over the last 10 closed bars     // author: 2 weeks
// Finetiq: 4 weeks = 20 bars, 2 weeks = 10 bars. Levels are recalculated at the close of each bar

IF position = FLAT
    BUY STOP at Entry20                  // author: breakout of the 4-week high

IF position = LONG
    SELL STOP at Exit10                  // author: stop and exit, no separate target
// the stop trails by itself: the 10-bar low rises together with price

// the short is a mirror image
ShortEntry20 = lowest  Low  over the last 20 closed bars
ShortExit10  = highest High over the last 10 closed bars
IF position = FLAT
    SELL SHORT STOP at ShortEntry20      // Finetiq: the video walks through a long example
IF position = SHORT
    BUY STOP at ShortExit10              // Finetiq

// Finetiq: after an exit, a new entry only on a new breakout of the 20-bar channel

Position size (author's logic, percentage Finetiq)

// author: the risk in money is the same, the stop distance sets the number of contracts
RiskMoney    = Equity * 0.5%                        // Finetiq: the author's example simply uses $100
StopDistance = Entry20 - Exit10                     // for a long, at the moment of entry
Contracts    = floor(RiskMoney / (StopDistance * PointValue))
// author's example: $100 of risk with a $25 stop per contract = 4 contracts
// author: the same risk for every market in the portfolio

Variant B. Davey: 20-bar breakout without filters

// the author did not name the timeframe. Davey trades futures, including on 1440-minute bars
Upper = highest High over the last 20 closed bars
Lower = lowest  Low  over the last 20 closed bars

BUY STOP at Upper                        // author: upside breakout, long
SELL SHORT STOP at Lower                 // author: downside breakout, short
// Finetiq: the author did not name an exit. The opposite breakout reverses the position
// no false breakout filters, deliberately (author)

Parameters

Parameter Value Source
Entry breakout of the 4-week high (20 bars) author
Stop and exit breakout of the 2-week low (10 bars) author
Target none author
Short mirror image Finetiq
Portfolio for comparison diversified futures, the author uses P24 author
Risk per trade the same in money, contracts sized by the stop author
Risk percentage 0.5% of capital Finetiq
Variant B: entry 20-bar breakout in both directions author
Variant B: exit reversal on the opposite breakout Finetiq
Variant B: filters none author

What to test

  1. A benchmark for your own systems. Run 20/10 on your own set of markets and period with the same costs as your strategy. Compare at equal risk per trade, not by single-contract curves. This is the author's main advice.
  2. The 50/200 experiment. Repeat Penfold's comparison: a SMA 50 and 200 crossover versus 20/10 on the same portfolio. First with one contract each, then with equal risk in money. The author claims the winner changes.
  3. Length neighborhood. Entry 15, 20, 30, 40 bars, exit 5, 10, 15, 20 bars. The name of the 40in20out.com website mentioned by the author points to a 40/20 pair (Finetiq reading). Compare it with 20/10.
  4. Long and short separately. On stock indices the short side can drag down the result. Split the statistics by direction and by sector.
  5. 10-bar exit versus reversal. The core system versus variant B. A closer stop gives more contracts for the same risk, but also more stop-outs before the trend continues.
  6. One filter by Davey's rules. Add one false breakout filter, fit it on the first half of the history and test it only on the second half. If the filter does not help on the second half, Davey is right.
  7. Daily bar type. For futures in TradeStation, compare settlement bars and 1440-minute bars over the same period. Davey shows that breakouts on them trigger on different days.

Platform notes

TradingView (Pine Script)

  • ta.highest(high, 20) calculated at the bar close already includes that bar. For a stop order on the next bar this is the right level. The [1] offset is needed only when comparing with the current bar's high, otherwise the channel lags by a day.
  • Exit: strategy.exit("X", "L", stop = ta.lowest(low, 10)). The level is recalculated on every bar, so the stop trails by itself.
  • Without a position, two stop orders are working, long and short. On a wide bar both may trigger, and the tester does not know the order. Enable use_bar_magnifier = true (paid plans) or check such days separately.
  • Calculate size from risk yourself: strategy.equity, the distance to the stop and the point value syminfo.pointvalue.

MultiCharts and TradeStation (EasyLanguage)

  • Buy next bar at Highest(High, 20) stop: at the bar close Highest includes the current bar, which is correct for an order on the next bar. The order lives for one bar, so send it on every bar.
  • Set the exit as a price: Sell next bar at Lowest(Low, 10) stop. SetStopLoss works in money and does not trail the 10-bar low.
  • Kevin Davey in the same episode: for futures in TradeStation the daily bar closes on the settlement, while a 1440-minute bar closes on the last trade. A breakout may appear on one and not on the other, and after the settlement arrives a trade may disappear from the history. Backtest and trade on the same bar type.
  • A portfolio like P24 is tested in Portfolio Trader (MultiCharts) or Portfolio Maestro (TradeStation).

MetaTrader 5 (MQL5)

  • On a new daily bar, the bars with index 1 and above are closed. Entry level: iHigh at the index from iHighest(_Symbol, PERIOD_D1, MODE_HIGH, 20, 1). Recalculate pending BuyStop and SellStop orders via CTrade once a day.
  • Some brokers have short Sunday bars. They shift the window: 20 bars stop being four weeks.
  • The stop is set as a price. On index CFDs _Point is not equal to an index point, so take the distance to the 10-bar low in price.
  • Lot size from risk: SYMBOL_TRADE_TICK_VALUE, SYMBOL_TRADE_TICK_SIZE, rounding to SYMBOL_VOLUME_STEP. On a small account, rounding down often gives zero lots on markets with a wide stop, and some signals are lost.

Where the idea can break

  • The figures were obtained on the author's P24 portfolio and the author's data. Without the same set of markets and period they cannot be reproduced.
  • The $1.7 million versus $1.4 million comparison was made on one contract. The author explains the turtles' advantage at equal risk with the logic of an example, and the video has no final figures for such a comparison.
  • The system's equity curve is rough, and both authors admit it. Long series of small losses on false breakouts are unavoidable.
  • On a single market 20/10 produces few trades a year. Statistics appear only on a portfolio of dozens of markets.
  • The short side, the risk percentage and the exit in variant B were set by us.
  • The episode title mentions 30% a year. It is the host's question framing the topic, not a claimed result of this system.

Sources

Author's claims

These figures and statements are the author's. We have not verified them.

  • Richard Donchian's four-week rule was published in the 1960s. According to the author, on the P24 portfolio (the 3 most liquid CME futures in each of 8 sectors) the equity curve still makes new highs: about 65 years out-of-sample.
  • On P24, with one contract per signal and after brokerage costs, the 50/200 moving average crossover system earned about $1.7 million and the turtles about $1.4 million over the same period. The author still considers the turtles more efficient: the stop is smaller, so for the same risk in money more contracts can be traded.
  • The author's example: with $100 of risk per trade and a $100 stop per contract, the 50/200 system trades 1 contract, while with a $25 turtle stop on the same market it trades 4 contracts.

Related ideas

Updated: 2026-09-10