Join today
Strategies / Momentum / Brent SMI Trend

Brent SMI Trend Strategy

Longs need a fast time series average above a slower Wilder average and the SMI crossing up through -44. Shorts use a separate, slower filter and an SMI reading at or above 45. Every trade carries a fixed stop, a fixed target and a trailing stop.

MomentumLong & shortSwingBrent CrudeDaily
1.57Profit factor
3,708Net profit EUR
50.94%Win rate
106Trades
-949Max drawdown
34.98Avg trade

Best run of 8. Brent Crude, Daily, spread 3, from run pf:2026-09-15-BRENT-D.tsv:2.

Entry rules, long

  1. The 12-period time series average is at or above the 60-period Wilder average
  2. Members only

Entry rules, short

  1. The 28-period time series average is at or below the 88-period Wilder average
  2. Members only

Exit rules

  1. Members only
  2. Profit target 98 points
  3. Trailing stop 34 points behind the best close once in profit by 34 points
  4. An opposite signal reverses the position

Test conditions

PeriodUp to 2026-09-15
InstrumentBrent Crude, Daily
Spread3 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-16

Parameters

positionSize
Contracts per trade
2
longFastPeriod
Time series average length, long trend filter
12
longSlowPeriod
Wilder average length, long trend filter
60
longSmiPeriod
SMI length for longs
14
longSmiSmooth
SMI first smoothing for longs
2
longSmiSignal
SMI second smoothing for longs
16
longSmiLevel
Buy when the SMI crosses up through this level
-44
shortFastPeriod
Time series average length, short trend filter
28
shortSlowPeriod
Wilder average length, short trend filter
88
shortSmiPeriod
SMI length for shorts
8
shortSmiSmooth
SMI first smoothing for shorts
1
shortSmiSignal
SMI second smoothing for shorts
16
shortSmiLevel
Sell short while the SMI is at or above this level
45
trailStopPoints
Trailing stop distance from the best close
34
stopLossPoints
Protective stop in points
62
takeProfitPoints
Profit target in points
98

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
Brent CrudeBest runDaily1.57 10650.943,708 EUR-949
EUR/USD4 hours1.24 28358.6634,572 USD-9,344
USD/JPY4 hours1.20 23358.80236,600 JPY-117,030
Gold3 min1.14 52150.102,204 EUR-1,304
GBP/USDDaily1.13 23945.192,099 USD-1,805
EUR/USD1 hour1.09 87458.3539,796 USD-28,434
FTSE 100Dailyn/a 8652.331,283 EUR-961
GoldDailyn/a 5459.261,252 EUR-1,089

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-evenBrent Crude · Daily1.57EUR/USD · 4 hours1.24USD/JPY · 4 hours1.20Gold · 3 min1.14GBP/USD · Daily1.13EUR/USD · 1 hour1.09

Net profit against max drawdown

Net profitMax drawdown
0-200K-100K125K250KUSD/JPY · 4 hoursEUR/USD · 1 hourEUR/USD · 4 hoursBrent Crude · DailyGold · 3 minGBP/USD · 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.

// ============================================================
// Brent SMI Trend
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Momentum
// Direction: Long & short
// Timeframe tested: Daily
// ============================================================

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

// --- Parameters ---
positionSize = 2              // contracts per trade
longFastPeriod = 12           // time series average length, long trend filter
longSlowPeriod = 60           // Wilder average length, long trend filter
longSmiPeriod = 14            // SMI length for longs
longSmiSmooth = 2             // SMI first smoothing for longs
longSmiSignal = 16            // SMI second smoothing for longs
longSmiLevel = -44            // buy when the SMI crosses up through this level
shortFastPeriod = 28          // time series average length, short trend filter
shortSlowPeriod = 88          // Wilder average length, short trend filter
shortSmiPeriod = 8            // SMI length for shorts
shortSmiSmooth = 1            // SMI first smoothing for shorts
shortSmiSignal = 16           // SMI second smoothing for shorts
shortSmiLevel = 45            // sell short while the SMI is at or above this level
trailStopPoints = 34          // trailing stop distance from the best close
stopLossPoints = 62           // protective stop in points
takeProfitPoints = 98         // profit target in points

// --- Indicators ---
longFastMA = TimeSeriesAverage[longFastPeriod](close)
longSlowMA = WilderAverage[longSlowPeriod](close)
longSmi = SMI[longSmiPeriod, longSmiSmooth, longSmiSignal](close)

shortFastMA = TimeSeriesAverage[shortFastPeriod](close)
shortSlowMA = WilderAverage[shortSlowPeriod](close)
shortSmi = SMI[shortSmiPeriod, shortSmiSmooth, shortSmiSignal](close)

45 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • The best run on Brent Crude daily has only 106 trades, which is a small sample.
  • Long and short sides use different settings (16 parameters in total), which raises the risk that the numbers are fitted to past data.
  • On USD/JPY 4 hours the max drawdown was JPY 117,030.00 against JPY 236,600.00 profit, and EUR/USD 1 hour reached a profit factor of just 1.09.
  • Stop, target and trail are in fixed points, so the same settings mean very different risk on Brent, forex and indices.

Indicators used

SMITime Series AverageWilder Average

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 trade automatically in ProOrder?

Yes. The code includes the stop loss, profit target and trailing stop, and trades 2 contracts per signal as tested.

Where was it tested and how did it do?

Brent Crude daily is the headline run: profit factor 1.57, EUR 3,707.60 net over 106 trades. All eight tested runs were profitable, but most had profit factors between 1.09 and 1.24.

What drawdown came with the best run?

At 2 contracts on Brent Crude daily, max drawdown was EUR 949.00. That is the figure to size capital around, not a margin estimate.

Why the daily chart for Brent?

The 62 point stop and 98 point target fit daily oil swings. On faster charts like Gold 3 minutes the profit factor dropped to 1.14.

Related

Strategies like this one

Pathfinder

Uses the same indicator.

1.24 PF · 430 trades

Morning Range Breakout

Best run on the same market, Brent Crude.

1.89 PF · 434 trades

Seasonal Momentum Long

A similar profit factor.

1.57 PF · 195 trades

See how an oil momentum system sits next to other strategies. 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