Join today
Strategies / Mean reversion / Turtle Soup

Turtle Soup Strategy

The idea is to fade failed breakouts. A close under the lowest low of the previous 5 bars in an uptrend (21 EMA above 30 EMA) triggers a buy at the next open, and shorts mirror it. Trades exit when price breaks the opposite 5-bar extreme or hits a 3 x ATR(20) stop.

Mean reversionLong & shortSwingS&P 500Daily
1.26Profit factor
2,651Net profit EUR
53.52%Win rate
867Trades
-758Max drawdown
3.06Avg trade

Best run of 9. S&P 500, Daily, spread 1, from run pf:2026-09-24-USA500-D.tsv:5.

Entry rules, long

  1. Members only
  2. The 21 EMA is above the 30 EMA
  3. Buy at the next bar open

Entry rules, short

  1. Members only
  2. The 21 EMA is below the 30 EMA
  3. Sell short at the next bar open

Exit rules

  1. Members only
  2. Cover when the low breaks below the lowest low of the previous 5 bars
  3. Stop loss of 3 x ATR(20)

Test conditions

PeriodUp to 2026-09-25
InstrumentS&P 500, Daily
Spread1 points
Contracts1
Starting capital1,000,000
CostsSpread only. Commissions and overnight financing are not included.
BarsUp to 200,000 bars, fewer where the instrument has less history
Last tested2026-09-25

Parameters

positionSize
Contracts per trade
1
lookbackPeriod
Bars for the recent high and low
5
fastPeriod
Fast EMA of the trend filter
21
slowPeriod
Slow EMA of the trend filter
30
atrPeriod
ATR length for the stop
20
atrMultiplier
Stop distance in ATRs
3

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
S&P 500Best runDaily1.26 86753.522,651 EUR-758
USD/JPYDailyn/a 70664.16594,850 JPY-519,470
EUR/USDDailyn/a 67662.7280,084 USD-25,971
EUR/USD4 hoursn/a 2,37161.8376,581 USD-26,468
Nikkei 225Dailyn/a 66061.6712,768 USD-12,607
Brent CrudeDailyn/a 28861.8111,720 EUR-5,440
Dow JonesDailyn/a 79162.8310,574 EUR-7,567
US Crude OilDailyn/a 63360.987,497 EUR-6,879
Nasdaq 100Dailyn/a 64960.405,991 EUR-4,518

Charts

Results by run

Net profit against max drawdown

Net profitMax drawdown
0-1.0M-500K500K1.0MUSD/JPY · DailyEUR/USD · DailyEUR/USD · 4 hoursNikkei 225 · DailyBrent Crude · DailyDow Jones · DailyUS Crude Oil · DailyNasdaq 100 · DailyS&P 500 · Daily

The code

ProBuilder, rewritten to house standard

Every file in the library uses the same header, the same section order and the same variable names. The numbers above were produced by the original version before the rewrite, and the rewrite has not yet been compiled in ProRealTime.

// ============================================================
// Turtle Soup
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long & short
// Timeframe tested: Daily
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = false

// --- Parameters ---
positionSize = 1          // contracts per trade
lookbackPeriod = 5        // bars for the recent high and low
fastPeriod = 21           // fast EMA of the trend filter
slowPeriod = 30           // slow EMA of the trend filter
atrPeriod = 20            // ATR length for the stop
atrMultiplier = 3         // stop distance in ATRs

// --- Indicators ---
recentHigh = Highest[lookbackPeriod](high)[1]
recentLow = Lowest[lookbackPeriod](low)[1]
fastMA = ExponentialAverage[fastPeriod](close)
slowMA = ExponentialAverage[slowPeriod](close)
stopDistance = atrMultiplier * AverageTrueRange[atrPeriod](close)

28 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • Profit factor is 1.26 with an average trade of EUR 3.06, so there is little margin for extra costs.
  • USD/JPY daily had a max drawdown of JPY 519,470.00 against JPY 594,850.00 profit.
  • Nikkei 225 daily made USD 12,767.90 but had a USD 12,606.60 drawdown, nearly the same size.

Indicators used

EMAATR

How to load it

  1. Copy the code with the copy button above the code block.
  2. In ProRealTime, open a chart of the instrument and timeframe you want to test, then open ProOrder > New trading system and choose "Create with programming".
  3. Paste the code, give the system a name and save it.
  4. Click "Backtest", set your own spread and position size, and run it before you consider trading it live.

Questions

About this strategy

Can Turtle Soup run in ProOrder?

Yes. Entries, both exits and the ATR stop are coded, at 1 contract per trade.

How did it do across markets?

S&P 500 daily gave profit factor 1.26 and EUR 2,651.09 over 867 trades. All eight tested runs were profitable, including EUR/USD daily at USD 80,084.00.

What drawdown came with 1 contract?

S&P 500 daily had a max drawdown of EUR 757.64.

Why daily bars?

False breaks of a 5-bar range carry more meaning on daily charts. EUR/USD 4 hours worked too, over 2,371 trades.

Related

Strategies like this one

Monday Dip Buy

Uses the same indicator.

n/a PF · 146 trades

Candle Body Sum Intraday

Best run on the same market, S&P 500.

2.86 PF · 124 trades

EMA Swing Limit Entry

A similar profit factor.

1.26 PF · 253 trades

Reversal setups work best inside a plan. Join the ProRealAlgos waitlist.

Copy trading on US indices is available to ProRealAlgos members as spots open.

Past backtest results do not guarantee future results. This is not financial advice. Curated and maintained by ProRealAlgos. ProRealTime™ is a trademark of ProRealTime SAS. prorealalgos.comStatsDocs