Join today
Strategies / Mean reversion / Internal Bar Strength

Internal Bar Strength

Internal bar strength measures where the close sits inside the bar's range. When it is in the bottom 10%, the system buys, and it sells once a close finishes above the previous bar's high. It is long only.

Mean reversionLong onlySwingNasdaq 100Daily
2.00Profit factor
21,381Net profit EUR
61.55%Win rate
905Trades
-2,532Max drawdown
23.63Avg trade

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

Entry rules, long

  1. Members only
  2. 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
ibsEntryLevel
Buy when the close is in the bottom 10% of the bar
10

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
Nasdaq 100Best runDaily2.00 90561.5521,381 EUR-2,532
S&P 500Daily1.74 92667.064,953 EUR-674
FTSE 100Daily1.40 93467.889,385 EUR-1,440
USD/JPY4 hoursn/a 1,98366.67486,000 JPY-144,380
EUR/USD1 hourn/a 11,12064.2953,326 USD-30,500
Nikkei 225Dailyn/a 87365.2942,111 USD-13,245
Dow JonesDailyn/a 79469.1429,537 EUR-9,314
Nikkei 2254 hoursn/a 1,58463.3812,639 USD-9,447
DAX 40Dailyn/a 76264.969,624 EUR-2,966
SilverDailyn/a 75557.888,949 USD-7,840
Gold4 hoursn/a 1,80465.851,168 EUR-984

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 · Daily2.00S&P 500 · Daily1.74FTSE 100 · Daily1.40

Net profit against max drawdown

Net profitMax drawdown
0-200K-100K250K500KUSD/JPY · 4 hoursEUR/USD · 1 hourNikkei 225 · DailyDow Jones · DailyNasdaq 100 · DailyNikkei 225 · 4 hoursDAX 40 · DailyFTSE 100 · DailySilver · DailyS&P 500 · 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.

// ============================================================
// Internal Bar Strength
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long only
// Timeframe tested: Daily
// ============================================================

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

// --- Parameters ---
positionSize = 1          // contracts per trade
ibsEntryLevel = 10        // buy when the close is in the bottom 10% of the bar

// --- Indicators ---
// Where the close sits in the bar's range, 0 to 100 (a bar with high = low divides by zero, as tested)
ibsValue = (close - low) / (high - low) * 100

14 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • There is no stop loss. A falling market can keep a position open and losing for a long time.
  • Long only, so it depends on markets that tend to recover after weak closes.
  • The best run's max drawdown was EUR 2,532.40 at 1 contract, and without a stop a single trade can go deeper.
  • Most rows outside Nasdaq 100, S&P 500 and FTSE 100 have no recorded profit factor.

Indicators used

IBS

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

Yes. It is a short piece of ProOrder code. It has been rewritten and not yet compile-checked, and the stats are from the earlier code.

How did it do on different markets?

Nasdaq 100 Daily made EUR 21,381.10 over 905 trades with a profit factor of 2.0. S&P 500 Daily had 1.74 and FTSE 100 Daily 1.4, and every row tested was profitable.

What drawdown came with 1 contract?

Nasdaq 100 Daily reached a max drawdown of EUR 2,532.40. S&P 500 Daily was EUR 674.45.

Why Daily bars?

The idea is that a weak close often rebounds the next day. The three runs with a recorded profit factor are all on Daily bars.

Related

Strategies like this one

Turnaround Tuesday

Uses the same indicator.

3.80 PF · 39 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

Mean reversion like this pairs well with trend systems. See how in the ProRealAlgos community.

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