Join today
Strategies / Trend / Big Three

Big Three: pullback entries above or below three SMAs

Big Three buys when the whole bar sits above the 20, 40 and 80 period SMAs and price turns back up after a single down close. Shorts mirror this below the averages. Exits combine a stop sized from the 80 SMA, a target at a multiple of that stop, a time exit and a trailing stop.

TrendLong & shortIntradayUSD/JPY15 min
n/aProfit factor
487,380Net profit JPY
45.66%Win rate
3,804Trades
-259,540Max drawdown
128Avg trade

Best run of 13. USD/JPY, 15 min, spread 1, from run sweeps:2026-09-17-USDJPY-15m-opt.tsv:2.

Entry rules, long

  1. The bar's low is above the 20, 40 and 80-period SMAs
  2. The high is the highest of the last 3 bars
  3. Members only
  4. The bar closes up, above the previous close and above its open
  5. No long position is open

Entry rules, short

  1. The bar's high is below the 20, 40 and 80-period SMAs
  2. The low is the lowest of the last 3 bars
  3. Members only
  4. The bar closes down, below the previous close and below its open
  5. No short position is open

Exit rules

  1. Stop loss at the distance from entry to the 80 SMA, clamped to 30-80 for longs and 5-60 for shorts
  2. Members only
  3. Close a long when price crosses below the 80 SMA, a short when it crosses above
  4. Time exit: longs close after 78 bars in profit or 66 bars in loss, shorts after 60 bars in profit or 54 bars in loss
  5. Trailing stop on the best close once profit reaches the target divided by 1.5 (longs) or 1 (shorts)

Test conditions

PeriodUp to 2026-09-17
InstrumentUSD/JPY, 15 minutes
Spread1 points
Contracts2
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-17

Parameters

positionSize
Contracts per trade, as published
2
fastPeriod
Fast SMA length
20
midPeriod
Middle SMA length
40
slowPeriod
Slow SMA length, also the exit line
80
lookbackPeriod
Bars for the new high / new low test
3
longStopMin
Smallest long stop distance (price units)
30
longStopMax
Largest long stop distance
80
shortStopMin
Smallest short stop distance
5
shortStopMax
Largest short stop distance
60
longTargetRatio
Long target as a multiple of the stop distance
2.6
shortTargetRatio
Short target as a multiple of the stop distance
2.5
longTrailDivisor
Long trailing distance = long target / this
1.5
shortTrailDivisor
Short trailing distance = short target / this
1
longMaxBarsProfit
Close a winning long after this many bars
78
longMaxBarsLoss
Close a losing long after this many bars
66
shortMaxBarsProfit
Close a winning short after this many bars
60
shortMaxBarsLoss
Close a losing short after this many bars
54

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
USD/JPYBest run15 minn/a 3,80445.66487,380 JPY-259,540
USD/JPYDailyn/a 51882.054,370,620 JPY-781,820
EUR/USDDailyn/a 53378.6199,572 USD-97,946
DAX 401 hourn/a 2,59033.0522,323 EUR-7,109
SilverDailyn/a 32630.9820,833 USD-12,092
GBP/USDDailyn/a 53881.9718,414 USD-13,368
Gold30 minn/a 3,31431.805,333 EUR-1,622
DAX 40Dailyn/a 45032.224,611 EUR-4,000
Gold1 hourn/a 2,12434.374,353 EUR-1,290
Nasdaq 100Dailyn/a 35533.523,741 EUR-3,668
GoldDailyn/a 29832.893,028 EUR-1,223
Brent CrudeDailyn/a 23131.172,949 EUR-1,947
Gold4 hoursn/a 64531.632,453 EUR-2,093

Charts

Results by run

Net profit against max drawdown

Net profitMax drawdown
0-1.0M-500K2.5M5.0MUSD/JPY · DailyUSD/JPY · 15 minEUR/USD · DailyDAX 40 · 1 hourSilver · DailyGBP/USD · DailyGold · 30 minDAX 40 · DailyGold · 1 hourNasdaq 100 · DailyGold · DailyBrent Crude · DailyGold · 4 hours

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.

// ============================================================
// Big Three
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Trend
// Direction: Long & short
// Timeframe tested: 15 minutes
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = false
DEFPARAM PreloadBars = 10000

// --- Parameters ---
positionSize = 2            // contracts per trade, as published
fastPeriod = 20             // fast SMA length
midPeriod = 40              // middle SMA length
slowPeriod = 80             // slow SMA length, also the exit line
lookbackPeriod = 3          // bars for the new high / new low test
longStopMin = 30            // smallest long stop distance (price units)
longStopMax = 80            // largest long stop distance
shortStopMin = 5            // smallest short stop distance
shortStopMax = 60           // largest short stop distance
longTargetRatio = 2.6       // long target as a multiple of the stop distance
shortTargetRatio = 2.5      // short target as a multiple of the stop distance
longTrailDivisor = 1.5      // long trailing distance = long target / this
shortTrailDivisor = 1       // short trailing distance = short target / this
longMaxBarsProfit = 78      // close a winning long after this many bars
longMaxBarsLoss = 66        // close a losing long after this many bars
shortMaxBarsProfit = 60     // close a winning short after this many bars
shortMaxBarsLoss = 54       // close a losing short after this many bars

// --- Indicators ---
fastMA = Average[fastPeriod](close)
midMA = Average[midPeriod](close)
slowMA = Average[slowPeriod](close)

// Whole bar above all three averages and making a new short-term high.
aboveAllMAs = low > slowMA AND low > midMA AND low > fastMA
newHigh = high >= Highest[lookbackPeriod](high)
longSetup = aboveAllMAs AND newHigh
longReversalCandle = close[1] < close[2] AND close > close[1] AND close > open

belowAllMAs = high < fastMA AND high < midMA AND high < slowMA
newLow = low <= Lowest[lookbackPeriod](low)
shortSetup = belowAllMAs AND newLow
shortReversalCandle = close[1] > close[2] AND close < close[1] AND close < open

86 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • Only sweep data exists, so profit factor was not recorded for any run on this page.
  • On the best run (USD/JPY 15 minutes) max drawdown was JPY 259,540 against JPY 487,380 net profit, more than half the total gain.
  • The 2 contract default size and the forex contract units make the USD/JPY and EUR/USD figures very large. Results on indices and commodities, such as Gold 30 minutes at EUR 5,333.4, are far smaller.
  • On most non forex runs the win rate sat between about 31% and 34%, so the strategy leans on a few large winners.

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 Big Three run live in ProOrder?

Yes, the code uses standard ProOrder instructions for entries, stops and targets. It has not been compile checked after the rewrite, so test it in ProBacktest first.

Which instruments was it tested on?

USD/JPY, EUR/USD, DAX 40, Silver, GBP/USD, Gold, Nasdaq 100 and Brent Crude. All listed runs were profitable, from JPY 4,370,620 on USD/JPY Daily down to EUR 2,453 on Gold 4 hours.

What drawdown should I expect at the default size?

With 2 contracts the best run had a max drawdown of JPY 259,540 on USD/JPY 15 minutes. On DAX 40 1 hour it was EUR 7,108.8, so the risk depends heavily on the instrument.

Why test it on 15 minutes?

The rules are bar based, so they work on any timeframe. The 15 minute USD/JPY run gave the most trades, 3,804, which gives the widest sample on this page.

Related

Strategies like this one

Bollinger Squeeze

Uses the same indicator.

14.30 PF · 86 trades

Supertrend Counter Trend

Best run on the same market, USD/JPY.

3.47 PF · 1,444 trades

Long-Term Moving Average Cross

Also a trend strategy.

12.31 PF · 61 trades

Trade ideas like Big Three get discussed in the ProRealAlgos community. Get on the waitlist.

The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.

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