When SPY/S&P 500 Closes In the Bottom of Today’s Range (IBS)

Mean reversion strategies work well in the stock market. One of the best indicators for such strategies is the Internal Bar Strength Indicator (IBS):


This simple formula increases the odds a lot, in my experience, for mean-revertive assets like stocks and stock indices.

Here is an example: Enter at close if the above formula is less than 0.5:

The blue line is the accumulated return in percent buying every close and holding until tomorrow’s close. The pink line is buying every close and holding until tomorrow’s close if the formula is below 0.5. The latter is a lot better, and certainly in bear markets. The period covered is from 1. January 2010 until July 2012. Neither slippage nor commission is considered.

If the daily range ends below 0.33, we get this chart:

The number of trades is reduced to 175 (from 640 if buy every close) and the drawdown is also reduced a lot.

What happens if we include a moving average? Let’s buy at the close if yesterday’s close was under the 10-day moving average and the formula was below 0.5:


The number of fills is 145 trades. In total that gives a 37% return, an average of 0.25% per trade! That is more than enough to offset slippage and commission. SPY can be bought as an opening order and an exit on market on close.

Testing further back it seems to hold up pretty well. Testing back to 1.1.2005 until October 2012, there are only 24 losing months (of 93 months). The average annual return is a respectable 10.6%.

Worth noting is that all strategies mentioned here come from CLOSE to CLOSE. OPEN to CLOSE does not work.


If you would like to have the code for this strategy plus 70+ other free trading strategies published on this website, please click on this link:

For more trading strategies, please click here:



Similar Posts

  • Good day.
    I don’t trade S&P, but i’m interested in post.
    “Worth noting is that all strategies mentioned here come from CLOSE to CLOSE. OPEN to CLOSE does not work.” What are results for O to C conditions? If they are just noise, then maybe it is reasonable to cut it and take for consideration a C[1] to O part (the gap) of C[1] to C interval?
    And a second question. Is there any curve fitting on the last chart? How do this system behave on slightly different moving average parameter?
    Thank you for your blog, i just recently found it.

    • Hi Jimmy!

      Thanks for your kind words.
      1. I’m not sure if I understand you correctly. O2C is more or less completely random, as far as I remember. As for C2O (close the day before to open), I can’t remember the result.
      2. No, I just used 10 day. I have not tried anything else. SPY is very mean reversion, so I guess it works with any average.