Divide By 20: One Year later

Happy New Year, one day early. Here’s wishing 2017 is successful for you in whichever way you define success.

Aren’t calendars wonderful? A couple of days ago, up pops a reminder on my calendar to revisit a post I did a year ago. At the very beginning of 2016, I wrote a post on whether yearly performance was mean-reverting, and found some interesting things. You might want to go back and take a look first, before you continue reading here.

The basics though: at the end of each year, take the historical constituents of the S&P 500, and sort them by their performance over that year. Divide those stocks into twenty groups, called “vigintiles”, from worst to best. Then look at the forward yearly returns on each group.

The worst performers showed the best forward average gain, going back to 2000, which means bad stocks tend to revert to a mean. However there was a caveat: while they showed the best average, the worst performers did NOT show the best median forward return. This makes a difference, and in my first post I may not have been completely clear about why that was.

If you can invest in an entire vigintile of stocks, then good for you! 1/20th of 500 stocks is 25 stocks. But not everyone can invest big enough amounts in that many equities to offset trading fees. The average person might pick five or so stocks for the new year.Β This is why average vs median matters.

If you have big whompin’ outliers skewing your averages, you may not see the same results if you don’t buy all 25 stocks. Sure, a couple of stocks with 200% gains might be offsetting a bunch more with 30% losses, but what if you only buy the ones that end up with 30% losses? Sucks for you, right?

The median is a better indicator of how a smaller subset of that group will perform, because it’s taking the middle amount. The size of the outliers does not effect the median like it does an average. As we saw in that previous post, the lowest vigintile did not have the best median gain/loss, nor did it perform well consistently since 2000.

The upshot was to pick stocks that historically performed somewhere in the middle of the pack. They consistently performed better going forward than either the worst or the best historical performers.

Not too hot. Not too cold. Just right.

At the end of the post, I named the stocks that were in the 11th vigintile. There is no “middle” vigintile since there are an even number of them, so I chose the better of the two vigintiles: number 11. Today, I revisit those stocks and see how they fared.

Excluding commissions, the 25 stocks named at the beginning of 2016 showed these returns (not including commissions):

average: 17.5228 % G/L median: 17.46 % G/L

Compare this to investing in SPY at the beginning of the year, which yielded 11.49%. Not too shabby, huh? That’s completely out-of-sample data.

But wait, that’s still 25 stocks you had to invest in to get the full effect. For po’ folk out there (including me), let’s sort the returns from worst to best and divide into quintiles. If you’d somehow managed to predict and buy the worst five stocks of the 11th vigintile, you would have lost over 9%. But look, you had an 80% of doing nearly as well as the market or better, and a 60% chance of doing considrably better than the market.

How did all our vigintiles stack up this year? Below you can see two graphs. Each took the returns of all the historical constituents of the S&P 500 in 2015, and sorted them by return, and then divided them up into 20 groups. Our average return and our median return for 2016 correspond pretty closely to each other this time around. This is probably because volatility wasn’t high compared to some other years.

Investing in the “Goldilocks” band of 2015 stocks would have gotten you a nice bit of alpha over the market this year, as in many years. Investing in the best historical performers of 2015 would see you under-performing the market for 2016. You could have made the most money by investing in 2015’s worst performers…but some years, that is a very bad idea indeed (see previous post).

Interested in having a complete spreadsheet of S&P 500 stocks, ranked by 2016 performance and sorted into vigintiles? For the next week or so I’m making this available for $25. After that, the data becomes less and less relevant. Contact me here, and read about nuisance fees.

Update 01/03/17: In response to a reader’s question….I divide up into vigintiles using a python 3 script I wrote. You can access it here. For personal use only, not for reposting. And don’t make fun of my code! πŸ™‚



9 thoughts on “Divide By 20: One Year later”

    1. Thanks John. I actually use a python script to divide into ’tiles. You can load a csv file, select the column to sort by, and the column to take the mean and median of the ’tiles. You can set the number of divisions too, and it handles remainders reasonably well. I’ve put a link to the file in the post, if you happen to use python (code is for 3, but will work with 2 with mods).

  1. You should be able to “vigintile” in Amibroker quite easily by using the PercentRank of Percentile functions then use an exploration. A two step would be to create the return data in AB and then export and use Excel.

    1. Thanks for your comment! I just learned something. I’ve never even attempted to rank things in AmiBroker other than using PositionScore in a backtest. For some reason I thought it wasn’t possible. I guess learning Python was for nothing… πŸ™‚ But seriously, thanks. I’ll play around with it, because it should make the process much easier.

  2. Hi Matt,

    Thank you for sharing this research. As you advised, I looked at your posting from one year ago about vigintile returns, but I reached an impasse. I wonder if you could clarify my understanding of two charts from that previous post.

    Unless I misunderstood, the chart entitled “compound return per v’tile 2000-2014” in the January 2016 posting shows compound returns from January 1, 2001 through December 31, 2015. The bar for vigintile 1, indicating a compound return of approximately $18000 for example, assumes purchasing $10000 worth stocks in vigintile 1 for the year 2000’s total returns on December 31, 2000, selling them on December 31, 2001, and using the proceeds to buy the stocks in vigintile 1 for 2001; repeating this each year until December 31, 2015, at which point the account’s equity would have reached $18000.

    Again, unless I misunderstood, the bar for the year 2000 in the chart entitled “yearly return of vigintiles 1, 11, 20”, indicating a forward return of approximately 22% for example, means that $10000 used to purchase the stocks in vigintile 1 for the 2000 on December 31, 2000, would have grown to $12200 by December 31, 2001, including reinvested dividends. This chart shows a series of annual total returns for vigintile 1 of approximately 22%, -44%, 122%, 2%, -5%, 8%, -16%, -60%, 99%, 28%, 0%, 36%, 29%, 11%, and 16%; for years 2001 through 2015 respectively. However, compounding $10000* (1+22%)*(1-44%)*…*(1+16%) = $30700, which does not match the $18000 shown in the “compound return per v’tile 2000-2014” chart discussed in the previous paragraph.

    A similar analysis shows compounded returns of $50000 for vingtile 11 and $21500 for vingtile 20 from the first chart, but $67000 and $22000 calculated from the second chart. Although some error surely crept in from my estimating values from charts rather than using the numbers that generated the charts, your raw data would explain whether this is enough to account for the mismatch.

    It feels necessary for me to understand the source of this discrepancy before exploring further. Thank you in advance for any light you can shed.

    1. Hi Peter. That is some really good estimating you did off the “yearly return of vigintiles 1, 11, 20” chart. Your numbers are surprisingly close to the actual values. The only one – and I think this might be the kicker – that is off is the last one. For vigintile 1, 2014’s value is decidedly negative, but in your equation you show it as +16%. Perhaps a transcription error? Here are the actual percentage numbers for each of the three vigintiles in the graph.

      If you want to look at the raw data, send me a message via the contact form.

      1st vig

      2000 23.4292
      2001 -45.2064
      2002 122.6104
      2003 3.086
      2004 -5.9336
      2005 9.3732
      2006 -16.2088
      2007 -59.4908
      2008 96.3316
      2009 27.5616
      2010 -0.186
      2011 35.9216
      2012 29.71
      2013 11.4132
      2014 -32.5132

      11th vig


      20th vig


  3. Hi Matt,

    Thank you for the prompt response and for finding my error. Now I would like to explore further, so I will send you a message via the contact form.


  4. Matt,

    Have you explored if there in a January affect. Does the data diminish greatly if one starts in mid-January of February even? I’m curious if the New Year is impacting it more or if January is nor more signification than the other 11 months?

    1. I haven’t as such explored a January effect. Another reader pointed out a phenomenon that apparently happens with the FTSE that I thought was interesting (and possibly relevant to your question). If you take the ten worst stocks of the previous year, and buy and hold them from January through March, you get outsized returns. This however did not translate at all to the S&P 500. I realize that it doesn’t answer your question, but I don’t have an answer for you otherwise. πŸ™‚

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.