Last Updated on 10 February, 2024 by Trading System
The concept of Internal Bar Strength (IBS) has been around for some time, and the indicator seems to have worked remarkably well for over two decades. Swing traders always try to capture the short-term and medium-term price movements, and the internal bar strength indicator effectively helps them in that regard.
While we can only guess, the reason may not be far from the mean-reverting nature of the IBS strategy, and the stock market has been highly mean-reverting over the last two decades. The IBS helps you to buy on weakness and sell on strength, which is in line with mean-reversion swing trading.
In this post, we will take a look at the Internal Bar Strength Indicator and how it is calculated, its performance over the years, the markets where it works best, and the effects of combining it with other indicators.
What is the Internal Bar Strength?
The Internal Bar Strength indicator is an oscillator that measures the position of the current trading session’s close relative to the session’s high-low range. Using the daily sessions, for example, IBS is based on the position of the day’s close in relation to the day’s range. Is the day’s closing price close to the high of the day or the day’s low?
The value oscillates between 0 and 1 as it measures the relative position of the closing price to the high and low. If truly the market is mean-reverting, the lower the value of the IBS (the closer to 0 the value is), the more bullish the market signal — at least, in the short term. Conversely, the higher the value (closer to 1), the more bearish the market signal in the short term.
There are many theories about the IBS effect. One of them is that it may be related to intraday over-reaction to news or market movements, which the market tries to correct the next day. Another one is the dead cat bounce effect.
How is the Internal Bar Strength calculated?
Internal Bar Strength is pretty simple to calculate. The formula is as follows:
(Close-Low)/(High-Low)
So, assuming stock XYZ, on a particular day, had a low of 90.00, a high of 100.00, and closed at 91.00, the IBS for that day would be calculated thus:
(91.00 – 90.00)/(100.00 – 90.00) = 0.1
There are a few deductions you can make from the IBS formula:
- The IBS values are in decimal points and ranges between 0 and 1
- The nearer the close price is to the day’s low, the smaller the IBS value
- If the close price equals the day’s low, the IBS value becomes zero
- The nearer the close price is to the day’s high, the bigger the IBS value
- If the close price equals the day’s high, the IBS value becomes 1
Trading the Internal Bar Strength: manual or algo?
The Internal Bar Strength indicator is a very simple technical indicator that functions as an oscillator, fluctuating between 0 and 1. Generally, a buy signal is generated when the value is below 0.2, and an exit signal occurs when the IBS rises above 0.8.
For manual trading, the indicator is plotted in the indicator box on the chart. The IBS values are expressed in percentages by multiplying the decimal values by 100. So, here, the IBS value oscillates between 0 and 100. A buy signal occurs when the indicator falls below 20, while a rise above 80 is an indication to close the trade.
But owing to the highly simplistic nature of the IBS indicator and how easy the strategy can be automated, it is widely traded by algos because the commands are very easy to code. The command is just as simple as this:
Buy= IBS<0.2 ;
buyPrice=C ; //buy on close
Sell= IBS>0.8 ;
sellPrice=C ; //sell on close
In essence, it simply buys on close if IBS is lower than 0.2 and sells on any day later when the IBS closes above 0.8. It is just that simple!
How well has the Internal Bar Strength performed
Even though the IBS system is very simple, it has yielded excellent results over the years, especially in the last two decades — from 2000 until October 2020. Let’s assume that $100 000 was invested in the S&P 500 (ETF SPY) in the year 2000, with 100% exposure of equity. The compounded results since then would be like the data in the table below:
Number of trades | 600 |
Average gain per trade | 0.41% |
Win rate | 69.7% |
Number of days per trade | 4.35 |
Average gain per winner | 1.32% |
Average loss per loser | -1.67% |
Profit factor | 1.92 |
Max % drawdown | -26.1% |
The monthly and yearly returns from January 2000 to October 2020 can be seen in the table figure below:
From the data, you can see that the system performed poorly in 2002 and 2018 but always made a huge comeback in the subsequent years, and so far, 2020 seems to be the best year ever.
The equity curve for the compounded result can be seen below:
The IBS system even performed better on Nasdaq (QQQ), returning 14.5% per annum on average. The equity curve for the compounded result can be seen below:
The markets where the Internal Bar Strength works best
Does the IBS strategy perform better in a bull market or bear market? Surprisingly, the strategy seems to work best in bear markets. while this doesn’t sound logical, especially when you consider that we only take buy trades, it is true. There are quite a few reasons for it.
The key reason is most likely that the biggest up days tend to happen in bear markets. What, you may ask? Well, you heard that right — some of the biggest bullish price bars are seen in bear markets, even though it seems contrary to common sense.
For example, check the great bear market between 2008 and 2009. From when the market topped in May 2008 to the bottom in early March 2009, the S&P 500 index lost about 50% of its value, but there were 99 up days and 104 down days during that period. Also, there were 51 days with daily rises (from close to close) of more than 1% and 30 days with daily rises of over 2%.
But why was it so? Well, one of the main reasons for those enormous spikes during bear markets is that traders try to cover their short positions. Of course, bear markets are shorter in duration than bull markets, and they come with increased uncertainty, which makes the markets much more volatile. To put it simply, we may say that bull markets are sedate, with significantly lower daily volatility than bear markets.
Now, since the IBS strategy works better in more volatile markets, does it pay off to add a filter so that you can only take signals during volatile times? Sure, it would make sense to use a volatility filter like the VIX. We may modify the system to buy only when the VIX closes above an n-period (50-day, 100-day, or 200-day) moving average.
Say a VIX-filter is added to the system where we require VIX to close above its 100-day average, the average gain per trade (SPY) will increase from 0.41% to 0.53%, and the profit factor will increase from 1.92 to 2.19. However, be cautious with this filter as the optimization result can be pretty variable, even from the tiniest of changes in the number of days of the moving average. Nonetheless, by tweaking a little, it appears that the IBS works best if it’s not overbought compared to the 200-day moving average. The result is best improved if the close of SPY is max. 5% above the 200-day moving average, as in the command below:
Buy= IBS<0.2 AND C<(MA(C,200)*1.05);
buyPrice=C;
Sell= IBS>0.8;
sellPrice=C ;
With this modification, the average gain is 0.53%, while the profit factor is 2.23. But note that the risk of curve fitting is quite high.
Using the Internal Bar Strength with other indicators: what do the results say?
Apart from using the VIX to adjust for volatility, you can combine IBS with other indicators like the RSI. As with most of our RSI methods, we set our RSI period to 2. Our criteria for the IBS/RSI(2) strategy will be as follows:
- RSI(2) must be lower than 10
- IBS must be lower than 0.2
- If both 1 and 2 are true, then place a buy order at the close
- Exit at the close when the day’s close is higher than the previous day’s high
The algo command will look like this:
Buy= IBS<0.2 AND RSI(2)<10 ;
buyPrice=C;
Sell= C>Ref(H,-1);
sellPrice=C ;
You can see that the exit criteria in this strategy are somewhat different. That goes to show how you can improve the results of the IBS system by combining it with another indicator. See the results for SPY and QQQ in the tables below. Notice that the results for QQQ are much better. You can also see the equity curve for the compounded result for QQQ.
The results for SPY
Number of trades | 178 |
Average gain per trade | 0.75% |
Win rate | 74.7% |
Number of days per trade | 5.01 |
Average gain per winner | 1.79% |
Average loss per loser | -2.33% |
Profit factor | 2.19 |
Maximum % drawdown | -23.75% |
The results for QQQ
Number of trades | 193 |
Average gain per trade | 1.39% |
Win rate | 76.2% |
Number of days per trade | 4.78 |
Average gain per winner | 2.5% |
Average loss per loser | -2.15% |
Profit factor | 3.38 |
Maximum % drawdown | -19.5 |
Equity curve for the compounded results for QQQ
Where the IBS strategy fails
Unfortunately, the IBS strategy doesn’t work so well when trading certain instruments. More or less, the IBS strategy works mostly on single stocks and stock indices. For indices, it works best on those that have a broad selection of different industries, while for individual stocks, it tends to work better on technology stocks, which have good volatility.
The strategy performs poorly on some stocks, such as commodity stocks, which is why it doesn’t work well on Norwegian and Australian stocks/indices since the equity markets in both countries are heavily dependent on commodity prices. Also, if you use the IBS system on gold and metal stocks, you will be hugely disappointed with the poor returns it makes.
However, this doesn’t mean that we should discard the indicator because it doesn’t work on all asset classes. In fact, it will be naive to expect that any single indicator to work on all asset classes as every market has its own peculiarities that you, as a trader, have to adapt to. Just the way an Australian investor shouldn’t expect to find the same temperament and mentality in Kenya as in Australia, you shouldn’t expect different markets to behave the same way.
As a trader, you have to adapt to the market you are trading. Nothing is the same across the various asset classes. While this may be disappointing to many, it gives you the opportunity to learn new things if you are willing to adapt and do proper research.
The drawbacks of the Internal Bar Strength
Aside from the fact that it doesn’t work on commodity-related stocks and stock indices, one major weakness with the IBS strategy is the need to enter your trade on the day’s close. Of course, you won’t know the close until after the fact, so you need to enter just seconds before the close or after the close during the after-hours market.
This can present some difficulties in your trade execution unless you automate your systems and have access to VPS since it is important to get the closing price. If you delay execution until the open of the next trading day after the signal, the return falls significantly — for S&P 500, the average gain per trade falls from 0.41% to 0.31%, and all key parameters also worsen for QQQ.
Backtesting shows that the internal bar strength indicator (IBS) has worked remarkably well for most of the last two decades or more. The reason is most likely the fact that the stock market has been highly mean-reverting during this period.
What is the internal bar strength indicator (IBS)?
IBS is a mean-reverting indicator that compares the current close to the period’s price range. The indicator oscillates from zero to one, as it measures the relative position of the closing price relative to the High and Low.
The formula for IBS is as follows:
(Close-Low)/(High-Low)
So, if the close, high, and low are 9, 10, and 1 respectively, the IBS would be 0.89. If the close is 2 and the high and low stays the same, the IBS would be 0.11.
Over the short term, a low internal bar strength value is considered a bullish signal, while a high value is considered a bearish signal. Thus, the IBS is simply an indicator that helps you to buy on weakness and sell on strength, which is the basis of any mean-reverting strategy. However, this presumes that the market is mean-reverting.
The backtesting result of the internal bar strength indicator
Being a very simplistic indicator, IBS is very easy to code into an algo trading system.
Using Amibroker, the code is as follows:
IBS= (Close-Low)/(High-Low);
Buy= IBS<0.2 ;
buyPrice=C ; //buy on the close
Sell= IBS>0.8 ;
sellPrice=C ; //sell on the close
Basically, it means to buy on close if IBS is lower than 0.2 and sell on any day later when the IBS closes above 0.8. It’s just that simple, but it yielded an excellent result on the SPY ETF from 2000 until October 2020. Assuming $100, 000 invested in 2000 and 100% exposure of equity since then, the equity curve looks like this (compounded):
Here are the compounded results:
- Number of trades: 600
- Average gain per trade: 0.41%
- Win-ratio: 69.7%
- Number of days per trade: 4.35
- Average gain winners: 1.32%
- Average loss losers: -1.67%
- Profit factor: 1.92
- Max % drawdown: -26.1%
However, checking the results year by year, you could see that 2018 was a pretty poor year, while 2020 was the best year ever.
The drawbacks of the internal bar strength indicator
One of the main drawbacks is that the indicator does not work in all markets. The IBS more or less works only on individual stocks and stock indices, especially ones that have a broad selection of different industries.
Further testing showed that using the IBS strategy to trade commodity stocks yielded poor returns, which is why the strategy doesn’t work well on Norwegian and Australian stocks/indices, as both countries are heavily dependent on commodity prices. The strategy simply doesn’t work well for gold and metal stocks.
Another weakness is the need to enter on the close. There’s no way to know the close until after the fact. So the trader needs to enter just seconds before the close or after the close in the after-hours, which may be difficult unless he is using automatic systems via your computer or VPS.
Delaying the execution to the open of the next day significantly reduces the returns from the average gain per trade of 0.41% to 0.31%.
Related reading: IBS trading strategy
Final words
The Internal Bar Strength indicator has worked remarkably well over the last 20 years on stocks in certain industries and on stock indices that have a broad base of different sectors/industries, but less so on commodity-related stocks and indices. It seems to perform best under conditions where uncertainty makes the stock markets volatile. The indicator performed poorly in 2018 but made a big comeback in 2019 and 2020. However, as with every trading strategy, don’t expect it to work all the time.
FAQ
What is Internal Bar Strength (IBS) and how does it work?
The Internal Bar Strength (IBS) is an oscillator that measures the position of the current trading session’s close relative to the session’s high-low range. It oscillates between 0 and 1, indicating the relative position of the closing price to the high and low of the session. Traders use it to capture short and medium-term price movements, buying on weakness and selling on strength.
How well has Internal Bar Strength performed historically?
Historical performance analysis shows that the IBS system has yielded positive results, especially in the last two decades. The strategy has shown profitable returns, with specific details provided, including the number of trades, average gain per trade, win rate, and maximum drawdown.
How can I optimize Internal Bar Strength for better results?
Optimizing Internal Bar Strength can involve adding filters, such as using a volatility filter like the VIX or combining it with other indicators. However, caution is advised to avoid over-optimization and curve fitting.