Seasonality - A Comprehensive Overview
An in-depth look into seasonality effects across different markets.
Introduction
This article will be quite long by requirement as we aim to cover all the known seasonality effects. We backtest and analyze the performance of many, but not all, seasonality effects. Some effects are specific to foreign markets where the data is harder to acquire, such as Saudi Arabian markets.
Our definition of seasonality will be anything where time is the primary component of the feature in the strategy. This could be the minute of the hour all the way up to the month of the year.
For many of these strategies, we will add custom improvements because I hate the idea of simply summarizing material that a competent researcher could discover themselves. I will also suggest ideas for improvements to the strategy, leaving the actual testing of the ideas to the reader. I hope this article can inspire many research projects.
Some of the highly intraday effects clearly won’t beat fees. There isn’t much point in backtesting these because we already know the curve will be terrible. We will instead look at the average market return conditional on our seasonal period relative to other times. This is still valuable for execution, where we can get a few extra bps of return just by executing at a slightly different time.
Index
Introduction
Index
General Overview
Seasonality Effects
Day-of-week
Turn-of-month
Turn-of-candle
Turn-of-hour
Hour-of-day
Options Expiration Effect
Overnight Seasonality
Weekend Effect
Pre-Holiday Effects
Hajj Effect
Ramadan Effect
Month-of-year
Election Seasonality
Sales Seasonality Effect
Management Earnings Forecast Seasonality
Capturing Seasonality Tips
Volatility As An Alternative To Returns
Conclusion
Papers
General Overview
There are a LOT of seasonality effects to discuss, and I will try to go into as much detail as possible for each, but it obviously won’t be to the degree that I normally would, given the vast amount of them.
Giving a list of all the seasonality effects we will be covering:
Day-of-week
Turn-of-month
Turn-of-candle
Turn-of-hour
Hour-of-day
Options Expiration Effect
Overnight Seasonality
Weekend Effect
Pre-Holiday Effects
Hajj Effect
Ramadan Effect
Month-of-year
Election Seasonality
Sales Seasonality Effect
Management Earnings Forecast Seasonality
We’ll cover mostly equities and digital asset markets, as these are the markets that are easiest for me to backtest in (just having the data ready, being familiar with them, and having experience with that data). I have data for many other markets, but I am a hoarded, not so much a user, of said data, so we’ll focus on those markets.
1 - Day of Week
A very common seasonality effect observed in equities is the day-of-the-week seasonality effect. We will use BTC & ETH because I already have the data open from testing other effects. The idea is that people hate Mondays, and that carries over into their market sentiment on Mondays, leading to lower returns. Additionally, we hypothesize that Fridays are great and lead to higher returns. Let’s see if this is expressed in the data:
Well, that’s obviously not fucking true, then. In fact, let’s look at 2021 and 2022 alone to see how “robust” this effect is:
As I expected, this isn’t very robust at all. This effect swaps all the time and really is not robust in the slightest.
2 - Turn-of-Month
This is often referred to as the end-of-month, day-of-month, or paycheck effect in addition to the turn-of-month effect. The idea here is that most people receive their paycheck on the last day of the month and subsequently will invest that into the market. Many people may have auto-deposit setup with their broker to enable this, creating a non-price-sensitive flow that we can front-run. The other explanation is simply that hedge funds will rebalance portfolios at the end of the month.
Our strategy logic here is that we will buy the S&P100 at the open on the last day of the month and then hold for 3 more days after this to make sure we capture all of those paychecks. Here’s the backtest:
This one isn’t actually that bad and is pretty robust across multiple markets. It does depend on the market itself, which days the effect occurs on though. For commodities, we tend to see the last 3 days of the month have this effect instead of the last day + the first 2 days for equities. This is explained quite well by the participants in each market. For commodities, we expect that most of the flow will be driven by institutional players rebalancing their portfolios, which happens prior to the end of the month. Whereas, for the S&P100, the flow is mostly driven by retail investors depositing their paycheck, which will hit on the last day of the month + a couple of days after.
*Our equities backtest uses quote-level data and is inclusive of fees based on those charged by IBKR