Join today
Strategies / Mean reversion / Three Lower Lows Reversion

Three Lower Lows Mean Reversion

Three lower lows in a row inside a longer uptrend is the buy signal here. The trend check compares close with a moving average from 100 bars ago, and a pullback check uses the same average from 5 bars ago. The position is sold on the first close above the previous close.

Mean reversionLong onlySwingNasdaq 100Daily
1.98Profit factor
5,391Net profit EUR
56.29%Win rate
286Trades
-1,184Max drawdown
18.85Avg trade

Best run of 8. Nasdaq 100, Daily, spread 3, from run pf:2026-09-24-NAS100-D.tsv:5.

Entry rules, long

  1. Close is above the default-length simple moving average as it stood 100 bars ago
  2. Close is below the same average as it stood 5 bars ago
  3. Members only
  4. No long is open

Exit rules

  1. Members only
  2. No stop loss or target

Test conditions

PeriodUp to 2026-09-25
InstrumentNasdaq 100, Daily
Spread3 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
trendOffset
Bars back for the trend average reading
100
pullbackOffset
Bars back for the pullback average reading
5

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
Nasdaq 100Best runDaily1.98 28656.295,391 EUR-1,184
Nikkei 225Daily1.64 22767.4012,611 USD-3,001
EUR/USD10 minn/a 3,66845.3749,141 USD-23,197
EUR/USD4 hoursn/a 77062.9918,113 USD-7,287
GBP/USD4 hoursn/a 84062.502,069 USD-1,088
S&P 500Dailyn/a 35556.621,028 EUR-456
FTSE 100Dailyn/a 25263.89934 EUR-597
GoldDailyn/a 22358.74394 EUR-160

Charts

Results by run

Profit factor by run

Above 1.0 made money, below 1.0 lost money.

0.00.51.01.52.01.0 = break-evenNasdaq 100 · Daily1.98Nikkei 225 · Daily1.64

Net profit against max drawdown

Net profitMax drawdown
0-25K-13K25K50KEUR/USD · 10 minEUR/USD · 4 hoursNikkei 225 · DailyNasdaq 100 · DailyGBP/USD · 4 hoursS&P 500 · DailyFTSE 100 · DailyGold · 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.

// ============================================================
// Three Lower Lows Reversion
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long only
// Timeframe tested: Daily
// ============================================================

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

// --- Parameters ---
positionSize = 1          // contracts per trade
trendOffset = 100         // bars back for the trend average reading
pullbackOffset = 5        // bars back for the pullback average reading

// --- Indicators ---
// Default-length average read at two past bars, kept as tested
trendReference = Average(close)[trendOffset]
pullbackReference = Average(close)[pullbackOffset]

15 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • There is no stop loss and no target. A trade stays open until price closes higher, however far it falls first.
  • Long only. It needs markets that bounce after short selloffs.
  • The best run on Nasdaq 100 Daily had 286 trades with an average trade of 18.85 EUR, so costs take a real share of each win.

Indicators used

SMA

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 I automate it in ProOrder?

Yes. The entry and the one exit rule are simple and fully coded. Remember there is no protective stop in the code.

How did it do on other markets?

Nikkei 225 Daily had a profit factor of 1.64 and 12,610.5 USD. EUR/USD, GBP/USD, S&P 500, FTSE 100 and Gold were all positive in the sweeps.

What drawdown should I expect at 1 contract?

On Nasdaq 100 Daily the worst drawdown was 1,184 EUR at 1 contract, with an average trade of 18.85 EUR.

Why daily bars?

Three lower lows on a daily chart is a multi day pullback, which is the move this system tries to fade.

Related

Strategies like this one

Bollinger Squeeze

Uses the same indicator.

14.30 PF · 86 trades

Negated Hammer

Best run on the same market, Nasdaq 100.

3.20 PF · 372 trades

Little Turtle Breakout

A similar profit factor.

1.99 PF · 105 trades

Join the ProRealAlgos waitlist to follow how simple daily systems perform live.

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