Predicting the Trading Pattern for 2010, from Phil McDonnell

March 6, 2010 |

Buy Low and Sell High. It is the oldest maxim on Wall Street. The trouble is that it is difficult to do without a copy of tomorrow's newspaper. Even better would be a copy of next year's paper.

An article cited by a reader claimed that buying at the low in the second year of a Presidential cycle and selling at the high produced superior returns. To test whether there really is something remarkable about the second year of the Presidency we can compare the return in that year to the results for all years again assuming the unrealistic advantage of knowing when the annual low is and the next year's high.

The results for all years:

average      41.4%

std             25.7%

count          81 %

Up           100%

t-stat        14.50

Minimum   11.0%

The results for the second year of any presidency:

average
50.2%

std           18.5%

count         20 %

Up            100%

t-stat        12.13

Minimum   16.9%

The second year slightly outperforms by 8.8% but that hardly seems significant compared to all years. The t-stat for all years is better primarily because of the larger n. Again we are reminded of the Chair's admonition that of the four possible hypotheses (1st year, 2nd year, etc.) one of them had to be the best.

When we consider the claimed monthly seasonal study the picture is even murkier. We recall that there are twelve months. But that is not 12 hypotheses. That is 12 possible starting months. There are also 12 possible ending months. This gives us a combined total of 144 (12 x 12) hypotheses. The article then assumes that using only 100 data points is sufficient to test 144 hypotheses. It sounds like junk statistics to me.

Dr. McDonnell is the author of Optimal Portfolio Modeling, Wiley, 2008

Steve Ellison replies:

I have tested the presidential cycle. Comparing the actual prices of the S&P 500 index to a 4-year centered average, I got the following t scores for 1950-1983:

Election year t plus score

0 2.95
1 0.78
2 -6.97
3 0.30

There was a clear tendency for highs to occur in presidential election years and lows to occur in midterm years. However, when I did the same analysis for 1984-2003, the results were not statistically significant:

Election year t plus score

0 -0.25
1 -0.56
2 -1.52
3 0.05

An investor who noted the presidential cycle in the early 1980s when its wonderful record became clear would not have profited much from it, sitting out not only the terrible decline of 2002, but also double-digit advances in 1986, 1998, and 2006. I have heard of the presidential cycle many times, but never of the caveat that it should be ignored in a second term, which makes me suspicious the caveat is retrospective curve fitting.

Another indicator that was strongly correlated with stock price changes until 1983 was the 12-month change in the US unemployment rate. From 1948 to 1983, there was a strong positive correlation between changes in the unemployment rate and subsequent changes in the S&P 500, i.e., when unemployment went up, stock prices followed. However, from 1984 to 2008, that relationship was also statistically insignificant; in fact the correlation was slightly negative.

Alston Mabry responds:

The "Xth year of the presidency" strategy debate brings to mind the "sell in May and go away" strategy.

To analyze the "buy and hold for 6 months" strategy (for all years, not just 2nd-year-of-presidency), I look at all the Dow months since October 1928 and calculate the return for each of the 12 strategies that correspond to "buy on the open of month Y, and sell on the open of month Y+6". Here are some stats:

For each month, showing the total return (since Oct 1928) for the strategy where that month is month Y, the average return for all the 6-month periods with that month as month Y, and the SD for those 6-month periods:

Jan  673%  +3.51%  14.30%
Feb  829%  +3.42%  11.48%
Mar 1604%  +4.47%  15.09%
Apr  295%  +2.86%  15.48%
May   19%  +1.03%  12.57%
Jun  142%  +2.04%  13.61%
Jul  349%  +2.95%  14.12%
Aug  241%  +2.55%  13.77%
Sep   91%  +1.84%  13.82%
Oct  926%  +3.89%  13.93%
Nov 3134%  +5.28%  13.09%
Dec 1370%  +4.42%  14.15%

In the actual data, November is a clear winner, though March and December are nothing to sneeze at. But how to get a context for the significance of November's outperformance?

Just can't help but run a quick simulation, and the easiest thing to do is to take all the percentage gains for all the possible 6-month periods and randomly reshuffle them, so that a 25% gain that historically fell in the November column might wind up in lowly May, and so on.

Running that 1000 times produced the following results: For all 1000 runs, the smallest maximum total return was 1072%. In other words, each run produced a set of 12 total return percent figures, one for each month. Looking at only the maximum return in each run produces a set of 1000 maximum return observations. The smallest of these was 1072%.

For these 1000 maximum returns, the mean was 5035% and the median was 3943%. So the actual total return for November was below the simulated median and well below the simulated mean.

This was surprising because when you reshuffle data like this, you tend to reduce the overall volatility by mixing volatility regimes. Also, the actual data series of all possible 6-month % changes is highly auto correlated (+.84 at a lag of 1).

So, another way to try to establish a random benchmark is to take the month-to-month percent changes in the actual data and reshuffle those, creating a new series of 6-month % changes each time, with each simulated series being highly autocorrelated like the actual series. Running that simulation 1000 times produced the following stats:

smallest maximum (of 1000 total): 1289%
mean of 1000 maximums: 5045%
median of 1000 maximums: 4153%

Again, the actual data for November are well below the mean and median values in the runs. So, the results of these simulations do not provide any support for the idea that the November-April holding period is outside what one would expect from a random process.

`SELECT * FROM wp_comments WHERE comment_post_ID = '4485' AND comment_approved = '1' ORDER BY comment_date`