PipLedger
Today's forex newsNFP, CPI, FOMC and other high-impact eventsEconomic calendarCalendar →

Turtle Soup strategy: trading false breakouts, with a free Pine Script

The Turtle traders bought new 20-day highs. Turtle Soup does the opposite: it waits for a new 20-day low that fails, and buys when the price climbs back above the old low. The setup was described by Laurence Connors and Linda Raschke in 1995, long before smart money concepts called the same idea a liquidity sweep. Here are the rules, the Plus One version, which needs only the daily close, a worked GBPUSD example with the lot size and a free TradingView script.

By M. A. Horaira. Updated 10 October 2026. 10 minute read.

The rules at a glance

  • Market: any major pair, gold or index on the daily chart; the example uses GBPUSD
  • Day one: the price makes a new 20-day low, the old 20-day low was made at least 3 days earlier, and the day closes at or below the old low
  • Day two: a buy stop just above the old low (plus 5% of an ATR), good for that day only
  • Stop loss: a tenth of an ATR below day one's low
  • Target: twice the risk (2R)
  • Shorts: the mirror image: a new 20-day high that closes above the old one, then a sell stop just below the old high

Where the name comes from

The Turtles were a group of traders taught a breakout system in the 1980s; one of its rules bought a new 20-day high (the gold breakout strategy uses the same channel). Many breakouts fail, though, and the traders who bought them get stopped out as the price falls back. Laurence Connors and Linda Raschke described a way to trade that failure in their 1995 book Street Smarts and called it Turtle Soup.

It's the same idea that smart money traders now call a liquidity sweep: stops sitting just beyond an obvious level get taken out, and the price snaps back.

Turtle Soup and Turtle Soup Plus One

Turtle SoupTurtle Soup Plus One
Day oneA new 20-day low below an old low made at least 4 days earlierThe same, but the old low only needs to be 3 days old, and the day closes at or below it
EntryThe same day, if the price climbs back above the old lowThe next day, with a buy stop at the old low
StopBelow the new lowBelow the lower of day one's and day two's lows
NeedsWatching the market during the dayOnly the daily close

The original version enters on the same day the low is made, which needs intraday watching and can't be tested properly on daily candles. The Plus One version uses the next day, so it works with end-of-day orders and backtests cleanly. That's the one in the script, with one simplification: the stop goes under day one's low, so the lot size is known before day two opens.

The rules, step by step

1. Find day one

On a daily chart, day one makes a new 20-day low. The old 20-day low it breaks must be at least three days old, so a fresh low that was just made doesn't count. Day one has to close at or below that old low: the breakdown looks real.

2. Place the day two buy stop

For the next day only, place a buy stop just above the old low, plus 5% of the ATR. If the price climbs back above the old low, the breakdown has failed and you're in. If not, cancel the order.

3. Stop below the new low, target 2R

The stop goes a tenth of an ATR below day one's low. The target is twice the risk. The book's own exits were more flexible than a fixed target; a fixed 2R makes the rules easy to test.

Shorts work the same way upside down: a new 20-day high that closes above the old one, then a sell stop just below the old high the next day.

Worked example: GBPUSD, daily chart

Old low 1.33010Target 1.33627Buy stop 1.33041Stop 1.32748Old lowDay one: new lowDay two fills2R
Illustrative chart drawn for this guide to show the rules. It isn't a real day's prices. GBPUSD, daily candles.

GBPUSD made a 20-day low at 1.3301 and bounced. 15 days later it breaks that low, trading down to 1.3281, and closes at 1.3297, below the old low. That's day one. The next day a buy stop sits just above the old low, at 1.33041. The day's rally fills it, and the stop goes a tenth of the 62-pip daily ATR below day one's low, at 1.32748.

GBPUSD long
Entry (buy stop above the old low)1.33041
Stop loss1.32748, 29.3 pips away
Target (2R)1.33627, 58.6 pips away
Lot size at 1% of $10,000$100 ÷ (29.3 pips × $10) = 0.341, rounded down to 0.34 lots
Loss if the stop is hit$99.62
Profit at the target$199.24

GBPUSD keeps climbing and reaches the target 4 days after the entry. The stop is small compared with the daily ATR because it sits just under day one's low, close to the entry. That's the appeal of the setup, and the risk too: a second push lower takes it out quickly.

Risk management

Common mistakes

  1. Buying the new low itself. The setup needs the price to climb back above the old low.
  2. Using a fresh low. The old low must be at least three days old; a low made yesterday hasn't attracted many stops yet.
  3. Leaving the order for days. In the Plus One version, the buy stop is good for one day only.

Backtest it yourself on TradingView

This page doesn't quote a win rate or a profit figure, and you should be wary of anyone who does without showing the test. Results change with the market, the dates, the data feed and the costs you put in. The honest way is to run the test yourself, and the free script below does the work in a couple of minutes.

  1. Open the chart. On TradingView, open GBPUSD on the daily chart.
  2. Add the script. Open the Pine Editor from the Pine icon in the panel on the right of the chart (older layouts have it as a tab under the chart), delete the code that's already there, paste this strategy's code and click "Add to chart".
  3. Put in your costs. Open the strategy's settings and go to Properties. Enter your broker's commission and a little slippage. A test without costs flatters every strategy, and short-term ones most of all.
  4. Read the Strategy Tester. The panel under the chart shows the net profit, the maximum drawdown, the profit factor, the number of trades and a list of every trade. Click a few trades and check on the chart that each one follows the rules. Trade sizes are shown in units rather than lots: 100,000 units is one lot of a forex pair, and 100 ounces is one lot of gold.
  5. Change one setting at a time. Compare the look-back (10, 20 and 55 days), the minimum age of the old low (3 against 4 days, and more), the 2R target against 1.5R and 3R, and longs against shorts. On the daily chart the free plan's 5,000 candles cover many years. Then try EURUSD, USDJPY and XAUUSD.

As a rough guide, don't trust a result with fewer than 100 trades, a profit factor under 1 once costs are in, or a drawdown you couldn't sit through with real money. Settings tuned to look good on one stretch of history often fail on the next, so check the same settings on dates you didn't tune them on, then demo trade the strategy for a few weeks. How much history you can test depends on your TradingView plan: the free plan loads 5,000 candles, which is a few months of 15-minute candles but years of daily ones.

The script sizes each trade from the stop loss and your risk percentage, starts with $10,000 and assumes 1:100 leverage (a 1% margin setting), so the tester doesn't flag margin calls on normal forex trade sizes. Change these under Properties to match your account. By default TradingView fills orders at the open of the candle after the signal, so the fill can differ a little from the signal candle's close.

Download the free Pine Script and PDF

The script is written in Pine Script version 6 for this guide and follows the rules above. It can't read the economic calendar, so skipping news days is up to you. It's free to use, change and share. The PDF is a one-page cheat sheet with the Turtle Soup and Plus One rules, a worked example and a checklist, to keep next to your chart.

Show the code (Pine Script v6, 67 lines)
//@version=6
// Turtle Soup Plus One strategy by PipLedger (https://pipledgerfx.com/turtle-soup-strategy)
// Based on the Turtle Soup Plus One setup described by Laurence Connors and Linda Raschke in Street Smarts (1995): a new 20-day low that closes at or below the old one, then a buy stop back at the old low the next day. Shorts are the mirror image.
// The book puts the stop under the lower of day one's and day two's lows; this script uses day one's low, so the trade size is known before day two opens.
// Free to use and change. For education and backtesting only; not financial advice.
strategy("PipLedger: Turtle Soup Plus One", shorttitle="Turtle Soup", overlay=true, initial_capital=10000, pyramiding=0, default_qty_type=strategy.fixed, default_qty_value=1, margin_long=1, margin_short=1, currency=currency.USD)

// ---------- Inputs
lookback = input.int(20, "Look-back for the old low (high)", minval=5)
minAge   = input.int(3, "The old low must be at least this many candles old", minval=1)
bufAtr   = input.float(0.05, "Entry buffer above the old low (x ATR 14)", minval=0.0, step=0.01)
stopBuf  = input.float(0.1, "Stop buffer below the new low (x ATR)", minval=0.0, step=0.05)
rr       = input.float(2.0, "Target (R multiple)", minval=0.5, step=0.25)
riskPct  = input.float(1.0, "Risk per trade (% of equity)", minval=0.1, maxval=5.0, step=0.1)

// ---------- Helpers
fx = strategy.convert_to_account(1.0)  // one unit of the chart's quote currency in account currency (1 on USD-quoted charts)
calcQty(float entry, float stop) =>
    float dist = math.abs(entry - stop)
    dist > 0 and not na(fx) ? strategy.equity * riskPct / 100 / (dist * syminfo.pointvalue * fx) : 0.0

atr = ta.atr(14)
// the old 20-candle low and high, from the candles before this one, and how many candles ago each was made
oldLo    = ta.lowest(low, lookback)[1]
oldHi    = ta.highest(high, lookback)[1]
oldLoAge = 1 - ta.lowestbars(low, lookback)[1]
oldHiAge = 1 - ta.highestbars(high, lookback)[1]

// day one: a new low below an old low that's at least minAge candles old, and a close at or below the old low
dayOneLong  = low < oldLo and oldLoAge >= minAge and close <= oldLo
dayOneShort = high > oldHi and oldHiAge >= minAge and close >= oldHi

var int pend = 0
flat = strategy.position_size == 0
// the stop order is good for one candle only (day two)
if pend != 0 and not dayOneLong and not dayOneShort
    strategy.cancel("Long")
    strategy.cancel("Short")
    pend := 0

// ---------- Orders: day two's buy stop back at the old low
if flat and dayOneLong
    strategy.cancel("Short")
    float entry = oldLo + bufAtr * atr
    float sl    = low - stopBuf * atr
    float q     = calcQty(entry, sl)
    pend := 0
    if q > 0
        strategy.entry("Long", strategy.long, qty=q, stop=entry)
        strategy.exit("Long exit", "Long", stop=sl, limit=entry + (entry - sl) * rr)
        pend := 1
else if flat and dayOneShort
    strategy.cancel("Long")
    float entry = oldHi - bufAtr * atr
    float sl    = high + stopBuf * atr
    float q     = calcQty(entry, sl)
    pend := 0
    if q > 0
        strategy.entry("Short", strategy.short, qty=q, stop=entry)
        strategy.exit("Short exit", "Short", stop=sl, limit=entry - (sl - entry) * rr)
        pend := -1

// ---------- Chart
plot(oldLo, "Old 20-candle low", color=color.new(color.teal, 30), style=plot.style_stepline)
plot(oldHi, "Old 20-candle high", color=color.new(color.red, 30), style=plot.style_stepline)
plotshape(dayOneLong, "Day one: new low closes below the old low", shape.triangleup, location.belowbar, color.teal, size=size.small)
plotshape(dayOneShort, "Day one: new high closes above the old high", shape.triangledown, location.abovebar, color.red, size=size.small)

Trading this from India

Residents can trade EURUSD, GBPUSD and USDJPY futures and options on NSE and BSE through a SEBI-registered broker. The contracts are quoted the same way as the spot pair, one lot is 1,000 units of the base currency, and they're cash-settled in rupees. They trade only from 9 a.m. to 7:30 p.m. IST, volumes are thin and not every broker offers them, so check the hours and the spread first. On the exchange contracts one GBPUSD lot is £1,000, so a pip is worth $0.10 a lot. The NSE daily candle covers 9 a.m. to 7:30 p.m. IST, so its highs and lows differ from the 24-hour spot chart. Trading forex or CFDs with offshore online platforms isn't allowed for residents under FEMA, even if the app is easy to download. Details are in is forex trading legal in India.

Related strategies: liquidity sweep, fair value gap, order block, BOS and CHoCH, ICT kill zones, XAUUSD FVG + order block, ICT Silver Bullet. All 40 strategies are compared on one page in forex trading strategies.

Quick answers

What is the Turtle Soup strategy?

It's a setup described by Laurence Connors and Linda Raschke in Street Smarts (1995) that trades failed 20-day breakouts. After a new 20-day low below an old low at least four days old, it buys when the price climbs back above the old low.

Why is it called Turtle Soup?

It's a play on the Turtle traders, who bought new 20-day highs. Turtle Soup trades the opposite side of the breakouts that fail.

What is Turtle Soup Plus One?

A version in the same book where the entry comes the day after the new low: the day closes at or below the old low, which only needs to be three days old, and the next day a buy stop goes just above it. It only needs daily data.

Is Turtle Soup the same as a liquidity sweep?

It's the same idea in different words: stops beyond an obvious level get taken out and the price snaps back. Turtle Soup defines the level as the 20-day low or high.

Which timeframe is best for Turtle Soup?

The original used daily charts. The idea works on intraday charts too, with 20 candles instead of 20 days, but more signals means more false ones.

Where is the stop in Turtle Soup?

Below the new low that failed. If the price goes back below it, the setup is wrong. These rules add a buffer of 0.1 ATR.

More guides

All 81 guides →

हिंदी में पढ़ें: Lot size kaise nikale?, Prop firm challenge kaise pass kare?, Gold trading kaise kare?, Forex trading kya hai, और India में यह legal है या नहीं?

Trading psychology

The habits that decide whether a good strategy makes money.

All 14 trading psychology guides

8 popular prop firms

Well-known firms for forex, gold and index traders that were still operating in 2026. Compare their rules before you buy a challenge.

If a link in this list is a referral link, PipLedger may earn a commission if you sign up, at no extra cost to you. This list is not a recommendation. Programs, prices and rules change often, so check each firm's own site, including its margin and drawdown rules, before you buy a challenge.