Join today
Strategies / Trend / Triple Band Market Model

Triple Band Market Model: Three EMA Bands for Long Trends

The model builds three bands from EMAs of highs and lows over 50, 100 and 200 bars. Each band flips up or down depending on which side price closed, and a long opens only when the close is above the active line of all three. The trade ends as soon as that stops being true.

TrendLong onlySwingGoldDaily
2.27Profit factor
3,315Net profit EUR
31.03%Win rate
203Trades
-809Max drawdown
16.33Avg trade

Best run of 31. Gold, Daily, spread 0.6, from run pf:2026-09-24-GOLD-D.tsv:2.

Entry rules, long

  1. Three bands are built from EMAs of the highs and of the lows (50, 100 and 200 bars, previous bar)
  2. Each band points up after a close above its high EMA and down after a close below its low EMA
  3. Members only

Exit rules

  1. Members only
  2. No stop loss or target

Test conditions

PeriodUp to 2026-09-25
InstrumentGold, Daily
Spread0.6 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
fastPeriod
Fast band: EMA of highs and of lows
50
midPeriod
Middle band
100
slowPeriod
Slow band
200

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
GoldBest runDaily2.27 20331.033,315 EUR-809
USD/JPY30 min1.14 2,65528.74516,700 JPY-124,400
USD/JPYDailyn/a 18629.03644,780 JPY-579,750
USD/JPY1 hourn/a 1,86029.57491,890 JPY-349,120
EUR/USD2 minn/a 3,17619.40188,989 USD-76,432
EUR/USDDailyn/a 16927.8150,918 USD-36,021
Nikkei 225Dailyn/a 17831.4644,429 USD-14,716
Silver4 hoursn/a 40928.3633,015 USD-13,293
Nikkei 2251 hourn/a 1,46127.4521,719 USD-11,048
Dow JonesDailyn/a 24035.4219,700 EUR-8,491
Nasdaq 100Dailyn/a 19835.3514,713 EUR-3,714
Nikkei 2254 hoursn/a 40629.8014,200 USD-11,158
Dow Jones1 hourn/a 59728.6410,754 EUR-5,895
Dow Jones4 hoursn/a 17135.6710,535 EUR-5,287
Nasdaq 1004 hoursn/a 53334.719,508 EUR-4,145
DAX 40Dailyn/a 31628.489,207 EUR-5,564
Nasdaq 10030 minn/a 3,12430.798,690 EUR-4,381
DAX 4030 minn/a 2,97427.377,740 EUR-4,044
Nasdaq 1001 hourn/a 1,88228.967,667 EUR-5,051
DAX 401 hourn/a 1,66928.766,875 EUR-3,807
Nasdaq 10015 minn/a 2,88028.266,738 EUR-3,594
US Crude OilDailyn/a 17236.056,647 EUR-5,468
Nasdaq 10010 minn/a 2,82427.766,102 EUR-4,452
Nasdaq 1005 minn/a 2,88226.344,067 EUR-2,986
Gold4 hoursn/a 39731.993,155 EUR-1,179
S&P 500Dailyn/a 25731.912,727 EUR-1,019
Gold30 minn/a 2,71029.852,323 EUR-792
Gold1 hourn/a 1,57428.531,870 EUR-1,449
S&P 5004 hoursn/a 53132.391,453 EUR-802
S&P 50030 minn/a 3,12830.951,403 EUR-1,331
Gold15 minn/a 2,83524.37934 EUR-929

Charts

Results by run

Profit factor by run

Above 1.0 made money, below 1.0 lost money.

0.00.61.31.92.51.0 = break-evenGold · Daily2.27USD/JPY · 30 min1.14

Net profit against max drawdown

Net profitMax drawdown
0-1.0M-500K500K1.0MUSD/JPY · DailyUSD/JPY · 30 minUSD/JPY · 1 hourEUR/USD · 2 minEUR/USD · DailyNikkei 225 · DailySilver · 4 hoursNikkei 225 · 1 hourDow Jones · DailyNasdaq 100 · DailyNikkei 225 · 4 hoursDow Jones · 1 hourDow Jones · 4 hoursNasdaq 100 · 4 hoursDAX 40 · DailyNasdaq 100 · 30 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.

// ============================================================
// Triple Band Market Model
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Trend
// Direction: Long only
// Timeframe tested: Daily
// ============================================================

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

// --- Parameters ---
positionSize = 1          // contracts per trade
fastPeriod = 50           // fast band: EMA of highs and of lows
midPeriod = 100           // middle band
slowPeriod = 200          // slow band

// --- Indicators ---
// Each band is an EMA of highs and an EMA of lows (previous bar).
// Its direction flips up above the high line and down below the low line,
// and the active line is the low line in an uptrend, the high line in a downtrend.
ONCE fastDirection = 0
ONCE midDirection = 0
ONCE slowDirection = 0

fastUpperMA = ExponentialAverage[fastPeriod](high)[1]
fastLowerMA = ExponentialAverage[fastPeriod](low)[1]
IF CustomClose > fastUpperMA THEN
  fastDirection = 1
ELSIF CustomClose < fastLowerMA THEN
  fastDirection = -1
ENDIF
IF fastDirection = -1 THEN
  fastLine = fastUpperMA
ELSE
  fastLine = fastLowerMA
ENDIF

midUpperMA = ExponentialAverage[midPeriod](high)[1]
midLowerMA = ExponentialAverage[midPeriod](low)[1]
IF CustomClose > midUpperMA THEN
  midDirection = 1
ELSIF CustomClose < midLowerMA THEN
  midDirection = -1
ENDIF
IF midDirection = -1 THEN
  midLine = midUpperMA
ELSE
  midLine = midLowerMA
ENDIF

slowUpperMA = ExponentialAverage[slowPeriod](high)[1]
slowLowerMA = ExponentialAverage[slowPeriod](low)[1]
IF CustomClose > slowUpperMA THEN
  slowDirection = 1
ELSIF CustomClose < slowLowerMA THEN
  slowDirection = -1
ENDIF
IF slowDirection = -1 THEN
  slowLine = slowUpperMA
ELSE
  slowLine = slowLowerMA
ENDIF

aboveFast = fastLine < close
aboveMid = midLine < close
aboveSlow = slowLine < close

14 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • There is no stop loss or target. The only exit is the close falling below one of the active lines.
  • The win rate is low, 31.03% on Gold Daily, so most trades are small losers.
  • USD/JPY Daily had a 579,750 JPY drawdown against 644,780 JPY of profit.
  • Long only, and most runs outside the headline have no recorded profit factor.

Indicators used

EMA

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 it be run in ProOrder?

Yes, the band logic and exit are automated. With no stop, set a maximum loss at account level.

Where was it tested?

Gold Daily made 3,314.50 EUR over 203 trades. Every run in the table was profitable, across USD/JPY, EUR/USD, Nikkei 225, Silver, Dow Jones, Nasdaq 100, DAX 40, US Crude Oil, S&P 500 and Gold.

What drawdown at 1 contract?

With 1 contract and a 0.6 point spread, the Gold Daily run had a max drawdown of 808.80 EUR.

Why daily bars for the headline?

Bands of 50 to 200 bars describe the main trend best on daily charts. Gold Daily gave the highest profit factor, 2.27.

Related

Strategies like this one

Monday Dip Buy

Uses the same indicator.

n/a PF · 146 trades

RSI(2) Trend Filter

Best run on the same market, Gold.

1.73 PF · 254 trades

Big Bar Fade

A similar profit factor.

2.28 PF · 172 trades

Want to see trend models in a live portfolio? Join 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