Holiday Effects in the Chinese Stock Market

Various holiday effects are well documented for developed countries’ stock markets, typically showing abnormal returns around thanksgiving, Christmas, New Year, and Easter. Do similar effects exist in the Chinese stock market? In this post I’ll take a look at returns to the Shanghai Composite Index (SSECI) during the days surrounding the following holidays: New Year, Chinese New Year, Ching Ming Festival, Labor Day, Tuen Ng Festival, Mid-Autumn Festival. The index only has 22 years of history, so statistical significance is difficult to establish. Despite this, I believe the results are quite interesting1.

The charts require a bit of explanation: the error bars are 1.65 standard errors wide on each side. As such, if an error bar does not cross the x-axis, the returns on that day are statistically significantly different from zero at the 5% level (by way of a one-tailed t-test). The most interesting holidays are the New Year, Chinese New Year, and Ching Ming Festival, all of which have several days of quite high returns around them.

New Year

new year

Chinese New Year

chinese new year

Ching Ming Festival

The Ching Ming Festival occurs 15 days after the vernal equinox, which is either April 4th or April 5th.

ching ming festival

Labor Day

labor day

Tuen Ng Festival

The Tuen Ng Festival (A.K.A. Dragon Boat Festival) occurs on the 5th day of the 5th lunar month in the Chinese calendar.

tuen ng festival

Mid-Autumn Festival

The Mid-Autumn Festival falls on the 15th day of the 8th lunar month.

mid autumn festival

Bonus: Day of the Month Effects

Since we’re looking at seasonality effects, why not the day of the month effect as well? Using the walk-forward methodology as in my previous day of the month effect posts (U.S., Europe, Asia), here are the results for the Shanghai Composite Index:

dotm china EC

dotm china stats

Finally, the average returns for each day of the month over the last 5000 days:

dotm china days

The standard turn of the month effect seems to be present, but only for the first days of the month instead of the last and first days.

And with that, I’d like to you wish you all happy holidays! In eggnog veritas.

Footnotes
  1. I want to take this opportunity to thank the C# language designers; without the ChineseLunisolarCalendar class this study would’ve been a major chore.[]

Day of the Month Seasonality Part 3: Nikkei 225, Hang Seng, STI

This is the third and final post investigating day of the month seasonality effects in global equity market indices. In part 1 we looked at U.S. indices; in part 2 we saw that the effects were even more powerful in three major European markets. In this post I will analyze three Asian indices: the Nikkei 225 (Japan), the Hang Seng Index (Hong Kong), and the Straits Times Index (Singapore).

 

The methodology:

As with the European indices, the Asian ones have relatively short histories. In order to get a long enough sample of results, I shortened the initial look-back period to 2500 trading days. The exact steps to re-create the results below are the following:

  1. Standardize every month to 21 trading days; round to the nearest integer when the number of days in a month is different.
  2. Start by using the last 2500 days; keep increasing the sample size until you reach 5000 days. After that use a moving window of the last 5000 days of daily returns and estimate the average return on every (standardized) day of the month.
  3. Rank the days by their past returns. If the next day is in the top 6, buy on close and sell on the next close.
  4. Move forward by one trading day and repeat from step 2.

A technical note: I am using QuantLib‘s holiday calendar functions to calculate the number of trading days in a particular month. There are problems with QuantLib, especially when looking further back in time, that result in an inaccurate trading day count for certain months. The effect is rather small as only a tiny number of months are affected, but the results should be even better if these problems were to be corrected.

 

The results:

Nikkei 225:

The equity curves:

Nikkei 225 day of the month seasonality results

And the statistics:

nikkei stats

Hang Seng Index:

The equity curves:

Hang Seng day of the month seasonality results

And the statistics:

hang seng stats

 

Straits Times Index:

The equity curves:

STI day of the month seasonality results

And the statistics:

STI stats

 

Calendars:

Here’s the updated list of average (standardized) day of the month returns over the last 5000 days for the indices we have looked at. The last and first few days of the month seem to be the best worldwide. The days around day #5 and day #15 seem to be the worst, again across the board. Beyond that there are few similarities among these markets.

calendar, average returns, all indices

 

Conclusions:

The main conclusion to be drawn from these results is simple:

The majority of permanent upwards stock market movements happen on a small number of days, and it is easy to predict which days these will be.

How can we use this knowledge? Setting up automatic investment plans to buy 4-5 days before the end of the month is one obvious implication. Going in too early or too late could have a significant negative impact on your returns over the long term.

If you swing trade any of these indices, it should take less to convince you to go long on these special days, and vice versa on the short side. Of course, there are long stretches of time during which the day of the month effect performs badly; it is not a trading rule in itself and as such should be treated with caution.

Shorting

Unfortunately there does not seem to be any consistent edge in day of the month seasonality for the short side. Given the general upward trend of equity markets over time, this is not all that surprising. It is possible that using a bear market filter we could uncover something useful, and I might revisit the topic in the future.

Day of the Month Seasonality Part 2: DAX, CAC 40, FTSE 100

In part 1 of the series I showed the impressive predictive power of day of the month seasonality effects in US equity markets. In this post I will apply the same type of analysis to three European markets: Germany (using the DAX index), France (using the CAC 40 index), and the U.K. (using the FTSE 100 index). Once again I must note that day of the month effects by themselves do not constitute a trading strategy, but I believe that the impressive returns predictability can be used to enhance other trading approaches, both systematic and discretionary.

 

The methodology:

The European indices have a far shorter history than the US ones, so we need to limit the look-back period in order to get a useful sample size. As such, I have slightly modified the approach to use less data in the early parts of the sample.

  1. Standardize every month to 21 trading days; round to the nearest integer when the number of days in a month is different.
  2. Start by using the last 2500 days; keep increasing the sample size until you reach 5000 days. After that use a moving window of the last 5000 days of daily returns and estimate the average return on every (standardized) day of the month.
  3. Rank the days by their past returns. If the next day is in the top 6, buy on close and sell on the next close.
  4. Move forward by one trading day and repeat from step 2.

The results:

DAX:

The equity curves:

DAX day of the month seasonality results

And the statistics:

DAX stats

 

CAC 40:

The equity curve:

CAC 40 day of the month seasonality results

And the statistics:

cac 40 stats

 

FTSE 100:

The equity curves:

FTSE 100 day of the month seasonality results

And the statistics:

ftse100 stats

 

Calendars:

daily returns calendar

One of the results that stands out is that the 15th day of the month seems to be absolutely terrible in every market. This is doubly peculiar because while the best days seem to be different for every market, the worst ones are consistent across the board. I would love to hear some theories about this.

In any case, day of the month seasonality effects are incredibly powerful in European markets as well. They’ve managed to provide positive returns in essentially all market environments. The fact that the best days occur on different parts of the month depending on which market you look at is amazing: it means there are more opportunities out there to exploit if you’ve got capital lying around.

In the next (and for now, final) part of the series, I will look how these seasonality effects hold up in Asian markets.

Day of the Month Seasonality Part 1: S&P 500, NASDAQ Composite, Russell 2000

My first post is inspired by the recent day of the month seasonality posts over at MarketSci (one, two). In this post I will show how day of the month seasonality applies to the S&P 500 as well as two other popular indices: the NASDAQ Composite and the Russell 2000.

 

The methodology:

  1. Standardize every month to 21 trading days; round to the nearest integer when the number of days in a month is different.
  2. Use the last 5000 days of daily returns and estimate the average return on every (standardized) day of the month.
  3. Rank the days by their past returns. If the next day is in the top 6, buy on close and sell on the next close.
  4. Move forward by one trading day and repeat from step 2.

As such, the approach is 100% walk-forward; there is no look-ahead bias in these results.

 

The results:

 S&P 500:

The sample starts in 1950; the results thus start in 1970.

S&P 500 day of the month seasonality results

 

A quick comparison of the statistics:

S&P500 stats

While the returns from the “Top 6” days are very impressive, they exhibit somewhat higher volatility, and can actually under-perform for very long periods of time.

 

NASDAQ Composite:

The equity curves:

NASDAQ Composite day of the month seasonality results

And the statistics:

nasdaq stats

 

Russell 2000:

The equity curves:

russell 2000 graph

And the statistics:

russell 2000 stats

The Russell 2000 stands out as rather strange: the Top 6 days did great during the bear market, but have been ineffective ever since. Of course, we only have a few years of useful data in this case, so it could very well be the case that we have stumbled on a period of under-performance by the day of the month effect.

Calendars:

Here are the actual statistics for the last 5000 days for each of the indices (with the top 6 days highlighted in bold):

daily stats

It’s both unexpected and quite interesting that despite extremely high correlations the last few years among these indices, there is significant variation between the optimal days for each one.

One common feature across all three indices is that the Top 6 days tend to be more volatile. Could it be that the day of the month effect is not an anomaly, but compensation for taking on more risk? Given the very small magnitude of volatility differences but significant differences in returns, I doubt it.

Another possible explanation that seems intuitive is institutional money flows. Yet it is difficult to justify that explanation when there are such large differences between the three indices: why would big money pile in to the Russell 2000 stocks, and out of the S&P 500 stocks on the last day of the month? For now, a good explanation of the effect eludes me…

Applicability:

By itself, day of the month seasonality is not a trading strategy. While there is substantial protection on the downside compared to buy & hold, commissions would completely destroy the returns. On the other hand, there seems to be potential in using the day of the month as an additional factor in an existing trading model or as an input in a discretionary swing trading approach.

As an example I have constructed a very simplistic trading strategy based on the S&P 500: go long if RSI(3) is below 5. I then filter the trades based on whether they are in one of the top 6 days (once again, the top 6 days are determined using walk-forward optimization so there is no look-ahead bias here).

The “RSI(3) < 5” rule by itself has an average daily return of 0.046% (0.259% since 2002); after using the filter, the rule returns 0.143% on average (0.458% since 2002). Overall using the filter, the strategy achieves roughly the same returns with less than a third of the trades.

RSI(3) Rules S&P500 Equity Curves

 

In the next parts I will investigate how these effects hold up in European and Asian Markets, and perhaps even non-equity markets.