As the common saying states, “Sell in May and go away.” As we are now in early August our seasonality trigger has recently triggered a sell signal. So, through May, June and most of July we continued to hold on our position. If you receive our free weekly newsletter you were alerted to the seasonality switch the week it changed.
At this time I think it would be a good idea to review where we stand based upon on our seasonality study. If you will recall, the seasonality study goes long the SPY in November and sells in May. This is the classic seasonality hold period which does appear to hold an edge for the S&P market. In order to avoid buying into a falling market or selling into a rising market I tested several short-term filters to help pinpoint an entry. In the end I decided on a 40-period simple moving average to act as an entry method. For more information please see the original article here.
Where We Stand
Below is the daily chart of the SPY with a 40-period simple move average applied. At this point we can see price closed below our SMA on August 1, 2014. This signaled our system to close all open positions. This latest trade, which was opened on November 4, 2014 generated a profit of $9,318 on 56 shares.
At this time our seasonality indicator is bearish and will be denoted with a red arrow. You will find our seasonality status, along with two other broad market indicators, within our weekly newsletter.
The seasonality filter does seem to show an edge for the broad U.S. markets. This got me thinking to how this seasonality filter would on other strategies. For example, will it perform well as a filter for the Ivy-10 Portfolio? Will it reduce unproductive trades during the months of May-October giving us a better return or better drawdown? To test this I came up with a simple test.
Seasonality & Ivy-10 Portfolio
The Ivy-10 is a slight variation on the well known Ivy Portfolio. If you are unfamiliar with this topic please take some time to read the following:
Using ETFReplay.com I backtested the Ivy-10 portfolio from 2003 through December 31, 2013. The ETFReplay website does not have the ability to exclude trading during particular months. However, you can download a summary of trading performance for each month as a CSV file which can be imported into Excel. So I did just that. The Excel document used during this article can be downloaded at the bottom of this article.
Once I had the data within Excel I then named the tab holding all the Ivy-10 Portfolio trades as “Ivy-10 Standard”. This tab contains all the trades for all the months. I then computed the returns for each year and the return for the complete historical backtest. The total return for the backtest is 248.8%.
Next, I duplicated this tab containing all the trades into another tab called “Ivy-10 Seasonality”. Within this tab I wanted to eliminate all trades that took place during our off-season. That is, the months of May, June, July, August, September, and October. I did this by simply deleting the trading results for those months. I then computed the returns for each year and the return for the complete historical backtest. The total return for the backtest is 154.4%.
I summed up the result on a tab called “Totals”. Below is a snapshot of the final results.
You can see using our seasonality filter does not help us at all. It in fact reduces our returns by 94.4%. It’s interesting to note that our filtered Ivy-10 system missed two large years, 2009 and 2003. These years consisted of the market coming out of a prolonged bear market. This is really where the power of a mechanized trading strategy can come into play. After a strong bear market, many market participants are too frightened to re-enter the market. Remember how difficult it was to start buying in 2009? Yet, this was the best time! As the signals rolled in to go-long during 2009 much profit was realized for those brave souls.
Over the past couple of years the seasonality filter appears to provide some benefit. Looking at the years 2010, 2011, 2012 and 2013 our Ivy-10 Seasonality system performed significantly better. With only a few data points we can’t draw much of a conclusion if the seasonality filter will be of much help. Thus, I won’t be filtering my Ivy-10 trades using this filter at this time. As we collect more data over the years I’ll be keeping an eye on this.
This is an old article (I’m behind) but I know one guy who claims that ETFReplay looks ahead one day to determine what stocks to buy for the next period. He was able to replicate their data by taking the last 89 days plus the next day, for example. Can you confirm this?
I’ve had a few other people say similar things, but have yet to see any proof of it. So I remain skeptical that there is any significant issue with their data.