The Internal Bar Strength (IBS) Indicator [Including Quantified Strategies]

Last Updated on February 22, 2021 by Oddmund Groette

The Internal Bar Strength indicator (IBS) has worked remarkably well for over two decades. We can only guess why, but the stock market has been highly mean-reverting during this period, and this has of course given the IBS a nice tailwind. IBS is simply an indicator where you buy on weakness and sell on strength, the cornerstone of any mean-reverting strategy. It oscillates from zero to one and measures the relative position of the closing price relative to the High and Low. A low internal bar strength value is supposed to be bullish, and a high value is bearish (for the short-term). The assumption is that the market is mean-reverting.

Short summary:

This article explains the Internal Bar Strength Indicator, tests it empirically and explains which markets you are most likely to succeed with it. The conclusion is that the Internal Bar Strength indicator has worked remarkably well over the last 20 years on stocks and stock indices, less so on other asset classes. Is this likely to continue? The indicator has made a spectacular comeback in 2019 and 2020 after 2018 produced the first negative return in this century. The increased volatility following the unprecedented Covid-19 lockdowns has so far made 2020 the best year on record. However, the Internal Bar Strength indicator didn’t work very well prior to the year 2000, so sooner or later you can expect it to be “arbed” away. But keep on plugging as long as it works!

If you find this article useful, you might want to have a look at our landing pages for a lot of other trading strategies and edges:

The Internal Bar Strength formula:

The formula for IBS is as follows:


Let’s illustrate with an example from the 28th of October 2020: SPY, the ETF of the S&P 500, had a high of 338.25, a low of 326.13 and closed at 326.66. Thus, the IBS that day would be calculated like this:

(326.66 – 326.13)/(338.25 – 326.13) = 0.043

This was a very bad day for stocks where SPY opened significantly down and continued falling throughout the day. The low value of the IBS indicates a good setup for a mean reversion trade. As it turned out, the next day, the 29th of October, ended as a positive day.

Internal Bar Strength quantified:

Micheal Harris wrote about IBS in September 2018 where he argued the IBS has somewhat lost its strength. As with most things in the financial markets, all good things must come to an end, and IBS performed poorly during 2017 and 2018. IBS is a very simplistic indicator and widely used by algos, perhaps indicating the good times are over. The markets are flooded with capital, brains and computing power, and most popular indicators and strategies will be “arbed” away when they get widely used.

On this blog we have several times used IBS together with other indicators. However, I have never looked at IBS solely on its own, and this article has a short look at how IBS has performed on the S&P 500 and Nasdaq.

Let’s first start with the S&P 500 by using the ETF SPY. The criteria are simple (using Amibroker):

Buy= IBS<0.2 ;

buyPrice=C ;  //buy on close

Sell= IBS>0.8 ;

sellPrice=C ; //sell on close

We simply buy on close if IBS is lower than 0.2, and we sell on any day later when the IBS closes above 0.8. An incredible simple strategy! Despite its simplicity, it has yielded excellent results from 2000 until October 2020 (assuming 100 000 invested in 2000 and 100% exposure of equity since then – ie. compounded results):

#Trades 600
Average gain per trade 0.41%
Win-ratio 69.7%
#days per trade 4.35
Average gain winners 1.32%
Average loss losers -1.67%
Profit factor 1.92
Max % drawdown -26.1%

The equity curve looks like this (compounded):

Internal Bar Strength (IBS) has worked pretty well for over two decades.

Clearly, 2018 was a pretty poor year for the IBS-strategy, but it made a huge comeback so far in 2020, the best year ever:

The IBS has worked even better on Nasdaq (QQQ – compounded):

A simple IBS strategy has returned 14.5% annually on Nasdaq (QQQ).

The Internal Bar Strength indicator works best in bear markets:

Perhaps ironically, the strategy seems to perform the best in bear markets. The reason is most likely that the biggest up days happen in bear markets. Yes, you heard it right: the biggest up days happen during bear markets, perhaps contrary to common sense. For example, from the top in May 2008 to the bottom in early March 2009 (the GFC), S&P 500 lost about 50% of its value, but there were 99 up days and 104 down days during this period. During the same period, it was 51 days with daily rises (from close to close) higher than 1% and 30 days with daily rises above 2%. You can read more about these data in this article. I suspect that short covering is one of the main reasons we see these enormous spikes during bear markets. Bear markets are shorter in duration than bull markets, and increased uncertainty makes the markets much more volatile. We can say bull markets are sedate: the daily volatility is significantly lower.

Does it pay off to add a filter in order to only take signals during volatile times? We can for example add a volatility filter like VIX: buy only when VIX closes above a moving average of x days. If we use a VIX-filter where we require VIX to close above its 100-day average, the average gain per trade in SPY increases from 0.41% to 0.53% while the profit factor goes from 1.92 to 2.19. However, be careful adding this filter because an optimization reveals the result is pretty variable from even small changes in the number of days of the moving average.

By tweaking a little it seems as the IBS works best as long it’s not too overbought compared to the 200-day moving average. If the close of SPY is max 5% above the 200-day moving average, it improves the result the best:

Buy= IBS<0.2 AND C<(MA(C,200)*1.05);
Sell= IBS>0.8;
sellPrice=C ;

The average gain is 0.53% and the profit factor is 2.23. However, be careful as the risk of curve fitting is high.

Combining the Internal Bar Strength indicator with other indicators:

You can of course use IBS together with other indicators like we did some months ago when combining IBS with RSI(2). For the sake of comparison we test the same strategy again with updated data:

  1. RSI(2) must be lower than 10.
  2. IBS must be lower than 0.2.
  3. If both 1 and 2 are true, then enter at the close.
  4. Exit at the close when today’s close is higher than yesterday’s high.

In Amibroker the code looks like this:

Buy= IBS<0.2 AND RSI(2)<10 ;
Sell= C>Ref(H,-1);
sellPrice=C ;

The exit criteria in this strategy are somewhat different, but it shows how you improve the results by combining two indicators. This table illustrates the results for SPY:

#Trades 178
Average gain per trade 0.75%
Win-ratio 74.7%
#days per trade 5.01
Average gain winners 1.79%
Average loss losers -2.33%
Profit factor 2.19
Max % drawdown -23.75%

For QQQ the results are much better:

#Trades 193
Average gain per trade 1.39%
Win-ratio 76.2%
#days per trade 4.78
Average gain winners 2.5%
Average loss losers -2.15%
Profit factor 3.38
Max % drawdown -19.5%

The equity curve compounded for QQQ can hardly get any better:

Combining IBS with a two day RSI increases the average gain per trade.

The overlap in trades between SPY and QQQ is of course very high and thus it doesn’t make sense to trade both, in my opinion.

Does the Internal Bar Strength indicator work in any market?

Unfortunately, it doesn’t. The IBS more or less only works on single stocks and stock indices. Furthermore, it works best on indices that have a broad selection of different industries. Some parts of the stock population produce poor returns using the IBS: commodity stocks for example. Hence, IBS doesn’t work well on Norwegian and Australian stocks/indices, as both countries are heavily dependent on commodity prices. Likewise, if you try IBS on for example gold and metal stocks you will be hugely disappointed. It simply doesn’t work.

Does this mean that we should skip the indicator, assuming a robust indicator should work on all asset classes? No. It’s naive to believe that any single indicator works on all asset classes. Every market has its own “rules” and ecology where you as a trader has to adapt to the current and local environment. Just as a Norwegian investor can’t expect to find the same temperament and mentality in Nigeria as in Norway, you as a trader have to adapt to the market you are trading. There are no universal rules across the asset classes. That’s perhaps disappointing to many, but on the other hand, it serves you opportunities if you are willing to adapt and do proper research.

The weakness of the Internal Bar Strength indicator is execution:

One weakness with the strategy is the need to enter on close. Obviously, you don’t know the close until after the fact, which means you need to enter just seconds before the close or after the close in the after hours. This is some kind of a hassle unless you are trading automatic systems via your computer or VPS. The importance of getting the closing price is paramount. If you delay the execution to the open the day after the signal, the return falls significantly: for S&P 500 the average gain per trade falls from 0.41% to 0.31%. All important parameters worsen, also for QQQ.

Concluding remarks:

The IBS still seems to work pretty well. However, it performs best under conditions where uncertainty makes the stock markets volatile. We use IBS in our own swing trading, but always together with some other indicator or factors. Furthermore, don’t expect the indicator to work in any market: it only works on stocks in certain industries and on stock indices which have a broad base of different sectors/industries.


Disclosure: We are not financial advisors. Please do your own due diligence and investment research or consult a financial professional. All articles are our opinion – they are not suggestions to buy or sell any securities.