Seasonality analysis is a great tool. Many people, however, use it incorrectly. Their approach is too dogmatic as they time their trades with a daily precision, based on the seasonal average curves. Albeit useful, seasonality gives us only a limited knowledge about the current state of the market. It only shows us past trend over some period in time. We described the caveats of seasonality in this article.
Regarding the seasonality analysis, I prefer more of a Bayesian approach. That’s the reason why we have uncertainty estimates of the seasonal averages on SpreadCharts. I consider these color channels inseparable from the averages themselves. They tell us how reliable the averages truly are. A nicely trending averages may be just a lucky coincidence in the data.
Nevertheless, I wasn’t really satisfied with the mean absolute deviation (MAD) we used to calculate uncertainties. While the algorithm itself is fine and robust, the selection of the underlying data (individual years) ignored different fundamental valuation of each year. I.e. the contract can trade at higher price level just due to the different fundamentals. It has nothing to do with seasonal effects.
Therefore, I devised a new way how to calculate the color channels. A 50-day rolling 2nd standard deviation is calculated for each year. Mean of the previous 5 and 15 years makes the half-width of the channel. And that’s all. Very simple, yet powerful way how to get rid of the different price level over the years, while keeping the overall variance preserved.
This is how it looks for popular bear spread in corn (ZCN19-ZCZ18):
You can check it out yourself in the SpreadCharts app.
If you’re looking for an easy interpretation of the color channels, think about it as an expected 50-day Bollinger Bands over some period of time.