The Story of the Universal Seasonal(tm)
In 1996, I released my first version of the Universal Seasonal for TradeStation. This was one of my most popular products. This product had open code but the engine of it was done in C DLL This meant that when TradeStation changed the API, this product needed to be totally reworked. Now, 21 years later, I have redone this product and it now in 100% easy language and will work in both TradeStation and Multi-charts. The key to the universal seasonal is that it uses a walk-forward methodology. You can’t use backtest results which include the period used to discover the seasonal patterns and expect good real-world results. Almost everyone who did seasonal analysis back in the 1990’s made this mistake. The problem with this type of seasonal study is the assumptions that need to be made in the analysis. Say a market rises in price in the selected time frame in 21 of the 23 years from 1980 through 2002. Would a trader have known to make these seasonal trades based on the information that he or she had at the time when a trade would have been made? Say, for example, in 1985, five years into the carefully selected period, that the market had appreciated during this particular time frame in just six of the 10 years from 1975 through 1984. Few traders would have taken the trade then, although in the original analysis 1985 may have been the most profitable year. Even assuming that the same trades would have been made, using a static seasonal relationship in a walk-forward simulation is a flawed approach. The proper way to study seasonality is with a pure walk-forward dynamic seasonal. It is necessary to use either all the previous years or a window of previous years to trade the current year and then to shift the window forward. It is also important to use the same rules for defining all seasonal periods and making all trading decisions across all markets.
Let’s look at the performance of this system on a basket of markets. This system produced $1,2670,210.75 in profits based on 21 years of data (including the data used to calculate the seasonal indicators). Even after slippage and commission of $37.50 per trade, it still made almost 1.2 million. This is the period ending 4/18/2018
|Market||Parameters||Net Profit||Trades||Win%||Ave Trade||Drawdown||Open Pos|
- Walk-forward results so you know curve-fitting isn’t an issue.
- Development done in EasyLanguage so it’s accessible and robust.
- Daily, Weekly and Day of Month indicators allow you to watch how seasonal patterns have changed over time.
- the Ruggiero/Barna seasonal strategy developed in the mid 1990’s and described in Murray’s Cybernetic trading book (1997) . This indicator works effectively across many types of markets and is the most highly respected seasonal indicator in trading. These markets include Financial Futures, Commodities and even ETF and individual stocks.
- Volatility and Trend Seasonality indicators and functions to use these to filter your existing trading systems.
Murray’s Universal Seasonal for TradeStation avoids the common seasonal trap that many inexperienced trading system developers fall for — they don’t properly use out-of-sample, walk-forward analysis to establish their rules. Murray’s Universal Seasonal for TradeStation is a true walk-forward approach, so you know that the published results reflect actual results as close as analytically possible.
You can own this powerful tool for just $299
Compatible with TradeStation 9.x and MultiCharts!
This package contains multiple types of seasonal calculations from the simplest average return over next N bars to my Ruggiero/Barna Seasonal which I developed in 1996. This amazing indicator still works well today. Two unique measures in this package are seasonal for both trend and volatility.
Years In The Making — Updated in 2017 — Robust reliable Seasonal Indicators by Murray Ruggiero
One approach to seasonal analysis focuses on creating a predictive seasonal. For example, when looking at the 20th trading day of the year and trying to create a five-day price prediction, it would involve taking the difference between the 24th trading day of the year and the 20th. In this way, a seasonal based on how prices will move over the next n days is created. The key is that we only use data through the previous year to calculate the seasonal for this year and we walk it forward. Most seasonal references talk about performance during an in-sample period. This approach is not statistically valid. The only way to do a seasonal that can be used in trading is to develop a rolling window seasonal that holds up walking forward. Seasonality does evolve over time. You might ask why that would happen? Well, for example, corn, was strongly corollated with a seasonal based on the US market, but over time we had two seasonal signals overlaying each other, one from the US market and the other from Argentina, which is the other big corn producer.
Some seasonal calculation methods use raw prices and average the price for each seasonal period, for example daily, weekly or monthly. These types of seasonal calculations require individual contracts or calculations from cash prices. Using the price differences between days allows the calculation of seasonal tendencies from back-adjusted contracts.
We could use average returns for this type of predictive seasonal difference. We have also included this type of seasonal in this package for completeness.
The problem is this type of simple classic seasonal can be distorted by a large move on one day. During the mid 1990’s, the solution came to me; use the percentage the market rises or falls to develop seasonal trades. However, you still have the problem of normalizing the seasonal so that it can be traded using the same relative numbers across all markets. This concept became the seasonal indicator I co-developed with Mike Barna that integrated both of these factors. The Ruggiero/Barna Seasonal Index is calculated as follows:
- Develop your seasonal and update it as you walk forward in your data.
- For each trading day of the year, record the next n-day returns and the percentage of time the market moved up or down.
- Multiply this n-day return by the proper percentage.
- Scale the numbers calculated in step 3 between -1.00 and 1.00 over the trading year. An output of 1.00 means the market will be the most bullish of the year over the next five days and an output of -1.00 is the most bearish.
Murray’s package also includes a little known seasonal, developed by Sheldon Knight. The Sheldon Knight seasonal index called the K-Data timeline. The steps for calculating the K-Data timeline are:
- Identify the day-of-week number and month number for each day to be plotted, for example, the first Monday of May.
- Find the N year price changes in dollars for each day identified.
- Add the N year average price change for each day to the previous.
All Seasonal Indicators are available as user functions for both daily, weekly and day of month seasonality so you can use them in developing your own trading systems. This includes Murray, Trend and Volatility seasonal tools described below. Remember these all calculate walk forward so they can actually be used to create valid back tests.
Seasonal Patterns are not just price based!
This package contains a seasonal based on ADX as well as a seasonal based on annualized volatility. These are walk forward indicators based on past value. You can set the number of years for lookback and also set the indicator length for both ADX and volatility.
Seasonal patterns do not just exist with price patterns, they also exist with market trendiness and volatility.
Seasonal Trend and Seasonal volatility as a walk forward indicator was originally developed by Murray in the mid 1990’s and is a powerful concept that can be used in developing filters for trading systems.
Universal Seasonal ™ is now compatible with both TradeStation 9.x and MultiCharts so you can harness the power of this new methodology no matter which platform you use to trade!
Universal Seasonal contains tools for both Day of week and Trading day of Month Seasonality
Day of Week and Day of Month Seasonal
Another set of seasonal relationships which have been used by system traders since the mid 1990’s, by people like Larry Williams, has been day of week and day of month seasonal relationships. During the 1990’s there were many trading patterns that bought Monday’s open and exited on the close with the addition of some filters. Larry Williams also created many patterns based on trading day of month. One such pattern capitalized on selling during the middle of the month and covering after a rally at the end of the month. This universal seasonal tool can let you see how day of week seasonal patterns have charged over time, in a walk forward window decided by you. For example Monday was the most bullish day 25 years ago but now it’s Wednesday.
The Ruggiero Barna Seasonal is so powerful it can be used as a system all by itself. Look at these results for coffee. Using an 8 year lookback to calculate a walk forward seasonal the Ruggiero/Barna Seasonal produced the following amazing results, no slippage and commissions deducted since we wanted to look at the seasonal bias. first trade in 2002, 15 years ago.
Let’s look at the yearly breakdown for Coffee using the Ruggiero/Barna Seasonal Index
It works on many markets like Coffee, Corn and Soybeans, which you might expect to have seasonal tendencies. However, you might not expect the financial markets to be seasonal, but certain financial markets provide some of the best opportunities!
Let’s now look at the results for trading ES futures
Now let’s look at the year by year breakdown. We can see that it’s been profitable every year since 2003 and has outperformed buy and hold by about 900 points !!!!!
Let’s now look at the equity curve for this simple seasonal based system.
HYPOTHETICAL PERFORMANCE RESULTS HAVE MANY INHERENT LIMITATIONS, SOME OF WHICH ARE DESCRIBED BELOW. NO REPRESENTATION IS BEING MADE THAT ANY ACCOUNT WILL OR IS LIKELY TO ACHIEVE PROFITS OR LOSSES SIMILAR TO THOSE SHOWN. IN FACT, THERE ARE FREQUENTLY SHARP DIFFERENCES BETWEEN HYPOTHETICAL PERFORMANCE RESULTS AND THE ACTUAL RESULTS SUBSEQUENTLY ACHIEVED BY ANY PARTICULAR TRADING PROGRAM.
ONE OF THE LIMITATIONS OF HYPOTHETICAL PERFORMANCE RESULTS IS THAT THEY ARE GENERALLY PREPARED WITH THE BENEFIT OF HINDSIGHT. IN ADDITION, HYPOTHETICAL TRADING DOES NOT INVOLVE FINANCIAL RISK, AND NO HYPOTHETICAL TRADING RECORD CAN COMPLETELY ACCOUNT FOR THE IMPACT OF FINANCIAL RISK IN ACTUAL TRADING. FOR EXAMPLE, THE ABILITY TO WITHSTAND LOSSES OR TO ADHERE TO A PARTICULAR TRADING PROGRAM IN SPITE OF TRADING LOSSES ARE MATERIAL POINTS WHICH CAN ALSO ADVERSELY AFFECT ACTUAL TRADING RESULTS. THERE ARE NUMEROUS OTHER FACTORS RELATED TO THE MARKETS IN GENERAL OR TO THE IMPLEMENTATION OF ANY SPECIFIC TRADING PROGRAM WHICH CANNOT BE FULLY ACCOUNTED FOR IN THE PREPARATION OF HYPOTHETICAL PERFORMANCE RESULTS AND ALL OF WHICH CAN ADVERSELY AFFECT ACTUAL TRADING RESULTS.