Join today
Strategies / Pattern / Three Candles

Three Candles: Trading a Short Three Bar Pattern

Three Candles looks at the last three bars. It buys after two falling closes that end more than 10 pips below the open two bars ago, and sells after two rising closes that end more than 25 pips above it. Trades have a 75 point target, a 70 point stop and a profit lock once 30 pips ahead.

PatternLong & shortSwingEUR/USDDaily
n/aProfit factor
101,901Net profit USD
53.06%Win rate
4,565Trades
-25,135Max drawdown
22.32Avg trade

Best run of 10. EUR/USD, Daily, spread 1, from run sweeps:2026-09-17-EURUSD-D-opt.tsv:3.

Entry rules, long

  1. Members only
  2. This close is more than 10 pips below the open two bars ago

Entry rules, short

  1. Members only
  2. This close is more than 25 pips above the open two bars ago

Exit rules

  1. Profit target 75 points, stop loss 70 points
  2. Members only
  3. Short: once 30 pips in profit, a stop is placed 30 pips above entry (as published)

Test conditions

PeriodUp to 2026-09-17
InstrumentEUR/USD, 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-17

Parameters

positionSize
Contracts per trade
1
longMinMovePips
Minimum three-bar drop for a long, pips
10
shortMinMovePips
Minimum three-bar rise for a short, pips
25
takeProfitPoints
Profit target in points
75
stopLossPoints
Protective stop in points
70
profitLockTriggerPips
Open profit that arms the lock stop
30
profitLockPips
Lock stop distance from entry
30

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
EUR/USDBest runDailyn/a 4,56553.06101,901 USD-25,135
USD/JPY2 minn/a 60268.27100,860 JPY-74,490
EUR/USD3 minn/a 56066.2518,424 USD-7,574
EUR/USD2 minn/a 31761.517,684 USD-6,400
EUR/USD1 minn/a 6373.024,582 USD-2,067
S&P 500Dailyn/a 1,26662.244,035 EUR-1,501
GBP/USD3 minn/a 57467.251,330 USD-852
S&P 5005 minn/a 1,14364.831,206 EUR-1,206
GBP/USD5 minn/a 1,04366.631,050 USD-883
GBP/USD1 minn/a 14768.71465 USD-339

Charts

Results by run

Net profit against max drawdown

Net profitMax drawdown
0-100K-50K100K200KEUR/USD · DailyUSD/JPY · 2 minEUR/USD · 3 minEUR/USD · 2 minEUR/USD · 1 minS&P 500 · DailyGBP/USD · 3 minS&P 500 · 5 minGBP/USD · 5 minGBP/USD · 1 min

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 Candles
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Pattern
// Direction: Long & short
// Timeframe tested: Daily
// ============================================================

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

// --- Parameters ---
positionSize = 1              // contracts per trade
longMinMovePips = 10          // minimum three-bar drop for a long
shortMinMovePips = 25         // minimum three-bar rise for a short
takeProfitPoints = 75         // profit target
stopLossPoints = 70           // protective stop
profitLockTriggerPips = 30    // open profit that arms the lock stop
profitLockPips = 30           // lock stop distance from entry

// --- Indicators ---
bigDrop = (open[2] - close) > longMinMovePips * PipSize
bigRise = (close - open[2]) > shortMinMovePips * PipSize

29 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • The short side lock stop is placed 30 pips above entry, not below, as in the published code. That means it does not lock profit on shorts.
  • USD/JPY 2 minutes made 100,860 JPY but had a 74,490 JPY drawdown.
  • The headline EUR/USD Daily run fell 25,135 USD from peak on its way to 101,901 USD.
  • Profit factor was not recorded because only sweep data exists.

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, entries, stop, target and the profit lock are coded. Review the short lock stop before going live, since it sits on the wrong side of entry.

How did it do across instruments?

EUR/USD Daily made 101,901 USD over 4565 trades. Other positive runs include EUR/USD 3 minutes at 18,424 USD, S&P 500 Daily at 4,035.18 EUR and GBP/USD 3 minutes at 1,330.20 USD.

How much risk at 1 contract?

With 1 contract and a 1 point spread, the EUR/USD Daily run had a max drawdown of 25,135 USD. Each single loss is capped by the 70 point stop.

Why test 1 minute to Daily?

The pattern is just three bars, so it can appear on any chart. It was run on 1, 2, 3 and 5 minutes and Daily to see where the pip thresholds fit.

Related

Strategies like this one

Slow MACD Slope

Best run on the same market, EUR/USD.

6.80 PF · 7,305 trades

Winter Only

Also a pattern strategy.

14.53 PF · 49 trades

Turn Of The Month

Also a pattern strategy.

4.86 PF · 47 trades

Curious how pattern systems are filtered? Get on the ProRealAlgos 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