Sunday, April 24, 2011

How to completely outperform the market by... buying high?

Investing 101 tells you to, 'Buy low and sell high', and there are many, many investors who live by this motto. But is there any truth to it? Or perhaps, might you be better off buying high and selling higher? In this post I'll try to answer that very question by back testing a strategy that goes against that motto.

What I've done is taken all three major exchanges, over the past ten years, and implemented a strategy where I buy any stock that is at a 52 week high. After a certain amount of time I sell it, and perhaps buy it right back if it is again at a 52 week high. I've tested this method over 1, 3, 6, and 12 month holding times for each exchange. To calculate the average return I used the geometric mean to properly account for any volatility.

What I find is quite impressive. In fact, a strategy of buying every stock that is at a 52 week high completely outperformed the market, regardless of how long it is held. For comparison, over the past ten years the Nasdaq has gained 33%, the S&P has gained 2% and the illustrious Berkshire Hathaway A has risen a mere 80%

So here you go... the performance of the 'buy high' strategy for different holding periods.


1 Month Hold
                 10 Year performance       Avg. Return
 NYSE                   230%                     0.7%
 Nasdaq                230%                     0.7%
 Amex                   290%                     0.9%

3 Month Hold
                 10 Year performance       Avg. Return
NYSE                    280%                     2.6%
Nasdaq                 280%                     2.6%
Amex                    290%                     2.7%

6 Month Hold
                 10 Year performance       Avg. Return
 NYSE                   245%                     3.8%
 Nasdaq                212%                     3.2%
 Amex                   177%                     2.4%

12 Month Hold
                 10 Year performance       Avg. Return
 NYSE                   209%                     7.7%
 Nasdaq                158%                     4.7%
 Amex                   167%                     5.3%

An important consideration with each of these strategies are the hidden costs associated with things like commissions. While a 1 or 3 month hold may provide the best returns, you will also be paying significantly more commissions than with a 6 month or 1 year hold strategy. With that in mind I would claim that the 6 month hold strategy is the best, but that depends on what percentage of your investment your commissions take up.

Of course there are no promises of this strategy working over the next ten years, this is just something for you to consider. This strategy also won't make you a millionaire (unless you started with 1/2 a million dollars), but instead seems to be a nice way to slowly grow your money.

********************************
The analysis was run with a new upgrade of my code. It now takes less than one minute to back test a trading strategy over ten years on all three exchanges! With this in mind I invite my readers to propose new trading strategies that I can test and report the performance of on my blog. 

5 comments:

  1. Can you back test commodities? If so, can you back test a basket of commodities for trends against a basket of stocks? trying to gauge and see if commodities do truly trend more then Stocks?

    ReplyDelete
  2. I've never traded commodities but as long as I can download the historical data it should be no problem. I'll see what I can do...

    ReplyDelete
  3. Have you cosidered survivorship-bias?

    ReplyDelete
  4. Thats an excellent point and no I hadn't considered it. I'm not sure how I would get access to that data but it would be interesting to take that into consideration. For the opposite point of view there are also many companies that have been bought out or merged which I didn't consider. But very good point either way.

    ReplyDelete
  5. Great read Troy. Keep up the good work.

    -jigish shukla
    www.knownfo.com

    ReplyDelete