Unlock the Power of Seasonality: Monthly Performance StrategyThe Monthly Performance Strategy leverages the power of seasonality—those cyclical patterns that emerge in financial markets at specific times of the year. From tax deadlines to industry-specific events and global holidays, historical data shows that certain months can offer strong opportunities for trading. This strategy was designed to help traders capture those opportunities and take advantage of recurring market patterns through an automated and highly customizable approach.
The Inspiration Behind the Strategy:
This strategy began with the idea that market performance is often influenced by seasonal factors. Historically, certain months outperform others due to a variety of reasons, like earnings reports, holiday shopping, or fiscal year-end events. By identifying these periods, traders can better time their market entries and exits, giving them an advantage over those who solely rely on technical indicators or news events.
The Monthly Performance Strategy was built to take this concept and automate it. Instead of manually analyzing market data for each month, this strategy enables you to select which months you want to focus on and then executes trades based on predefined rules, saving you time and optimizing the performance of your trades.
Key Features:
Customizable Month Selection: The strategy allows traders to choose specific months to test or trade on. You can select any combination of months—for example, January, July, and December—to focus on based on historical trends. Whether you’re targeting the historically strong months like December (often driven by the 'Santa Rally') or analyzing quieter months for low volatility trades, this strategy gives you full control.
Automated Monthly Entries and Exits: The strategy automatically enters a long position on the first day of your selected month(s) and exits the trade at the beginning of the next month. This makes it perfect for traders who want to benefit from seasonal patterns without manually monitoring the market. It ensures precision in entering and exiting trades based on pre-set timeframes.
Re-entry on Stop Loss or Take Profit: One of the standout features of this strategy is its ability to re-enter a trade if a position hits the stop loss (SL) or take profit (TP) level during the selected month. If your trade reaches either a SL or TP before the month ends, the strategy will automatically re-enter a new trade the next trading day. This feature ensures that you capture multiple trading opportunities within the same month, instead of exiting entirely after a successful or unsuccessful trade. Essentially, it keeps your capital working for you throughout the entire month, not just when conditions align perfectly at the beginning.
Built-in Risk Management: Risk management is a vital part of this strategy. It incorporates an Average True Range (ATR)-based stop loss and take profit system. The ATR helps set dynamic levels based on the market’s volatility, ensuring that your stops and targets adjust to changing market conditions. This not only helps limit potential losses but also maximizes profit potential by adapting to market behavior.
Historical Performance Testing: You can backtest this strategy on any period by setting the start year. This allows traders to analyze past market data and optimize their strategy based on historical performance. You can fine-tune which months to trade based on years of data, helping you identify trends and patterns that provide the best trading results.
Versatility Across Asset Classes: While this strategy can be particularly effective for stock market indices and sector rotation, it’s versatile enough to apply to other asset classes like forex, commodities, and even cryptocurrencies. Each asset class may exhibit different seasonal behaviors, allowing you to explore opportunities across various markets with this strategy.
How It Works:
The trader selects which months to test or trade, for example, January, April, and October.
The strategy will automatically open a long position on the first trading day of each selected month.
If the trade hits either the take profit or stop loss within the month, the strategy will close the current position and re-enter a new trade on the next trading day, provided the month has not yet ended. This ensures that the strategy continues to capture any potential gains throughout the month, rather than stopping after one successful trade.
At the start of the next month, the position is closed, and if the next month is also selected, a new trade is initiated following the same process.
Risk Management and Dynamic Adjustments:
Incorporating risk management with this strategy is as easy as turning on the ATR-based system. The strategy will automatically calculate stop loss and take profit levels based on the market’s current volatility, adjusting dynamically to the conditions. This ensures that the risk is controlled while allowing for flexibility in capturing profits during both high and low volatility periods.
Maximizing the Seasonal Edge:
By automating entries and exits based on specific months and combining that with dynamic risk management, the Ultimate Monthly Performance Strategy takes advantage of seasonal patterns without requiring constant monitoring. The added re-entry feature after hitting a stop loss or take profit ensures that you are always in the game, maximizing your chances to capture profitable trades during favorable seasonal periods.
Who Can Benefit from This Strategy?
This strategy is perfect for traders who:
Want to exploit the predictable, recurring patterns that occur during specific months of the year.
Prefer a hands-off, automated trading approach that allows them to focus on other aspects of their portfolio or life.
Seek to manage risk effectively with ATR-based stop losses and take profits that adjust to market conditions.
Appreciate the ability to re-enter trades when a take profit or stop loss is hit within the month, ensuring that they don't miss out on multiple opportunities during a favorable period.
In summary, the Ultimate Monthly Performance Strategy provides traders with a comprehensive tool to capitalize on seasonal trends, optimize their trading opportunities throughout the year, and manage risk effectively. The built-in re-entry system ensures you continue to benefit from the market even after hitting targets within the same month, making it a robust strategy for traders looking to maximize their edge in any market.
Risk Disclaimer:
Trading financial markets involves significant risk and may not be suitable for all investors. The Monthly Performance Strategy is designed to help traders identify seasonal trends, but past performance does not guarantee future results. It is important to carefully consider your risk tolerance, financial situation, and trading goals before using any strategy. Always use appropriate risk management and consult with a professional financial advisor if necessary. The use of this strategy does not eliminate the risk of losses, and traders should be prepared for the possibility of losing their entire investment. Be sure to test the strategy on a demo account before applying it in live markets.
Seasonality-trading
Seasonality normalizedThis custom indicator provides an in-depth analysis of historical price performance to identify potential seasonal patterns and correlations. By examining data from the past 10 years, the indicator filters out outlier performances and focuses on the most consistent seasonal trends.
Key Features:
Intelligent Clustering Algorithm: The indicator employs a custom clustering algorithm to group similar yearly performances together. This approach effectively filters out anomalous years, such as those affected by black swan events like the COVID-19 pandemic, providing a more accurate representation of typical seasonal behavior.
Seasonal Correlation Measurement: The indicator calculates the percentage of years exhibiting similar performance patterns for each week. This measurement helps traders assess the strength of seasonal correlations and make informed decisions based on the consistency of historical data.
High and Low Seasonality Bands: The indicator plots two distinct bands on the chart, representing the expected range of price movement based on historical highs and lows. These bands offer valuable insight into potential support and resistance levels during specific weeks.
Enhanced Visualization: Weeks with high seasonal correlations are prominently highlighted, making it easy for traders to identify periods with the strongest historical patterns. The seasonality bands extend to cover the last and future 3 months, divided into weekly segments, providing a comprehensive view of the current market context.
Dynamic Adaptation: The seasonality bands are dynamically tied to the current high and low prices, ensuring that the indicator remains relevant and responsive to the latest market conditions.
Under the Hood:
The indicator begins by calculating the performance of the asset for each week, going back 10 years.
The custom clustering algorithm groups similar performances together, effectively filtering out outlier years.
The percentage of years falling into the largest performance cluster is calculated, representing the seasonal correlation for each week.
The average performance of the largest cluster is used to plot the high and low seasonality bands, anchored to the current high and low prices.
The bands are color-coded based on the strength of the seasonal correlation, with darker colors indicating higher consistency.
This indicator is designed to help professional traders identify and capitalize on seasonal patterns in the market. By providing a robust and adaptable framework for analyzing historical performance, the Seasonality Indicator offers valuable insights for making informed trading decisions.
We believe this tool will be a valuable addition to your trading arsenal, complementing your existing strategies and enhancing your market analysis capabilities. As a professional trader, your feedback and ideas are invaluable to us. Please share your thoughts, experiences, and suggestions for improvement as you incorporate the Seasonality Indicator into your trading workflow. Together, we can refine this powerful tool to better serve the needs of the trading community.
Season ChartThis overlay is built on the idea of seasonal charts.
It is constructed by taking the percentage change from each close and recording that change for every trading day of any year that is within the sample. We then take the average for each day of all the years.
These averages are then cumulated to create the chart as per traditional seasonal chart construction.
I have also taken a trimmed mean of the averages to try and dampen the impact one off moves that may have a dramatic effect on the daily averages (for example the crash to $0 in oil in April 2020) however, even removing 10% may not guarantee one off moves won’t affect the average.
The construction of the chart is completely dependent on the data provided by TradingView and so it is recommended that if longer sample sizes are used, the user go back to check that the years contained within the sample have a full history. Some data may have large gaps in their history and this can distort the seasonality readings.
I have attempted to align the chart with the first trading day of the year, but the start of some months may be out by a day or two as it becomes difficult to track all weeks with differing market holidays closures each year and this in turn varies the total amount of actual trading days in each year as well as leap years.
This overlay is designed for the Daily time frame only and will not work on Crypto or any other instrument that trades outside of usual business weekdays. Future updates may include the ability to adapt to Crypto instruments.
All feedback and comments welcome!
Seasonality Widget [LuxAlgo]The Seasonality Widget tool allows users to easily visualize seasonal trends from various data sources.
Users can select different levels of granularity as well as different statistics to express seasonal trends.
🔶 USAGE
Seasonality allows us to observe general trends occurring at regular intervals. These intervals can be user-selected from the granularity setting and determine how the data is grouped, these include:
Hour
Day Of Week
Day Of Month
Month
Day Of Year
The above seasonal chart shows the BTCUSD seasonal price change for every hour of the day, that is the average price change taken for every specific hour. This allows us to obtain an estimate of the expected price move at specific hours of the day.
Users can select when data should start being collected using the "From Date" setting, any data before the selected date will not be included in the calculation of the Seasonality Widget.
🔹 Data To Analyze
The Seasonality Widget can return the seasonality for the following data:
Price Change
Closing price minus the previous closing price.
Price Change (%)
Closing price minus the previous closing price, divided by the
previous closing price, then multiplied by 100.
Price Change (Sign)
Sign of the price change (-1 for negative change, 1 for positive change), normalized in a range (0, 100). Values above 50 suggest more positive changes on average.
Range
High price minus low price.
Price - SMA
Price minus its simple moving average. Users can select the SMA period.
Volume
Amount of contracts traded. Allow users to see which periods are generally the most /least liquid.
Volume - SMA
Volume minus its simple moving average. Users can select the SMA period.
🔹 Filter
In addition to the "From Date" threshold users can exclude data from specific periods of time, potentially removing outliers in the final results.
The period type can be specified in the "Filter Granularity" setting. The exact time to exclude can then be specified in the "Numerical Filter Input" setting, multiple values are supported and should be comma separated.
For example, if we want to exclude the entire 2008 period we can simply select "Year" as filter granularity, then input 2008 in the "Numerical Filter Input" setting.
Do note that "Sunday" uses the value 1 as a day of the week.
🔶 DETAILS
🔹 Supported Statistics
Users can apply different statistics to the grouped data to process. These include:
Mean
Median
Max
Min
Max-Min Average
Using the median allows for obtaining a measure more robust to outliers and potentially more representative of the actual central tendency of the data.
Max and Min do not express a general tendency but allow obtaining information on the highest/lowest value of the analyzed data for specific periods.
🔶 SETTINGS
Granularity: Periods used to group data.
From Data: Starting point where data starts being collected
🔹 Data
Analyze: Specific data to be processed by the seasonality widget.
SMA Length: Period of the simple moving average used for "Price - SMA" and "Volume - SMA" options in "Analyze".
Statistic: Statistic applied to the grouped data.
🔹 Filter
Filter Granularity: Period type to exclude in the processed data.
Numerical Filter Input: Determines which of the selected hour/day of week/day of month/month/year to exclude depending on the selected Filter Granularity. Only numerical inputs can be provided. Multiple values are supported and must be comma-separated.
Turn of the Month Strategy [Honestcowboy]The end of month effect is a well known trading strategy in the stock market. Quite simply, most stocks go up at the end of the month. What's even better is that this effect spills over to the next phew days of the next month.
In this script we backtest this theory which should work especially well on SP500 pair.
By default the strategy buys 2 days before the end of each month and exits the position 3 days into the next month.
The strategy is a long only strategy and is extremely simple. The SP500 is one of the #1 assets people use for long term investing due to it's "9.8%" annualised return. However as a trader you want the best deal possible. This strategy is only inside the market for about 25% of the time while delivering a similar return per exposure with a lower drawdown.
Here are some hypothesis why turn of the month effect happens in the stock markets:
Increased inflow from savings accounts to stocks at end of month
Rebalancing of portfolios by fund managers at end of month
The timing of monthly cash flows received by pension funds, which are reinvested in the stock market.
The script also has some inputs to define how many days before end of the month you want to buy the asset and how long you want to hold it into the next month.
It is not possible to buy the asset exactly on this day every month as the market closes on the weekend. I've added some logic where it will check if that day is a friday, saturdady or sunday. If that is the case it will send the buy signal on the end of thursday, this way we enter on the friday and don't lose that months trading opportunity.
The backtest below uses 4% exposure per trade as to show the equity curve more clearly and because of publishing rules. However, most fund managers and investors use 100% exposure. This way you actually risk money to earn money. Feel free to adjust the settings to your risk profile to get a clearer picture of risks and rewards before implementing in your portfolio.
Seasonal Tendencies - SMC IndicatorsA Seasonal Tendency refers to a historical price action behaviour that tends to repeat during specific times of the year, month over month.
It's a roadmap to navigate price action on the daily chart to help determine the medium to long-term bias.
Seasonal Tendencies are NOT an exact prediction of future price action but rather serve as a guideline for spotting high-probability opportunities when combined with other elements of SMC Price Action analysis, such as Order Blocks, Fair Value Gaps, etc...
The Seasonal Tendencies Indicator has been tested to match what ICT has taught in his lectures. It can be applied to any Market or Asset. However, it's limited by the maximum number of years available on tradingview.
Traders can use this Seasonal Tendencies indicator to support their already existing analysis as an added confirmation tool. This indicator should not be used as a main reason to enter a trade idea.
The Seasonal Tendencies Indicator can be used in 2 ways:
1) To look for potential points of long-term reversals during specific times of the year.
2) To look for confirmation and align with an existing long-term trend.
So how does it work?
The Seasonal Tendencies Indicator takes the averages of the last 30, 10, and 5 years' prices by default and compares them to the current year's price action (Green Line).
However, the number of years chosen for the averages can be modified in the indicator's setting.
When looking at the historical price action lines, generally, the price tends to make the lows and highs during specific times of the year.
Note that we should not look at the exact dates these lows and highs form, but we take time periods conceptually instead.
In the example below, the SP500 5-year average made the low on 14 March, and the SP500 10-year average made the low on 23 March.
This gives us the idea that "generally" SP500 makes the low of the year around the 2nd to 3rd week of March every year.
So, IF the trader's analysis was pointing out that SP500 is Bullish, then we use the information that we derived from the Seasonal Tendencies Indicator to look for long setups around the 2nd to 3rd week of March for medium to long-term swing trades.
The Seasonal Tendencies Indicator can also be useful for day traders as it helps support their daily bias to look for trades within the direction of the higher timeframe trend.
How do we measure the strength of the Seasonal Tendencies?
When using the Seasonal Tendencies Indicator, it's important to look for periods where the averages converge and get closer to each other. This usually indicates that during those specific periods, there is a high probability for the price to behave in a certain way.
So the closer the averages are to each other, the more likely the price would respect the Seasonal Tendencies.
Bonus Feature
Premium Discount Range
As a bonus feature, split the Seasonal Tendencies Indicator's Range into 4 quarters to indicate when the price is at a Premium (above the 50% level in Red) and when the price is at a Discount (below the 50% level in blue).
Each Premium and Discount range is also split into 2 halves.
Those levels can also be used to identify potential turning points when comparing the Current Year's price positioning in the Yearly Range to historical price action.
As you can see from the example below, most major turning points happen at around key price levels.
Time Cycles IndicatorThis script is used to analyze the seasonality of any asset (commodities, stocks, indices).
To use the script select a timeframe D or W and select the months you are interested in the script settings. You will see all the candles that are part of those months highlighted in the chart.
You can use this script to understand if assets have a cyclical behavior in certain months of the year.
Seasonality Chart [LuxAlgo]The Seasonality Chart script displays seasonal variations of price changes that are best used on the daily timeframe. Users have the option to select the calculation lookback (in years) as well as show the cumulative sum of the seasonal indexes.
🔶 SETTINGS
Lookback (Years): Number of years to use for the calculation of the seasonality chart.
Cumulative Sum: Displays the cumulative sum of seasonal indexes.
Use Percent Change: Uses relative price changes (as a percentage) instead of absolute changes.
Linear Regression: Fits a line on the seasonality chart results using the method of least squares.
🔶 USAGE
Seasonality refers to the recurrent tendencies in a time series to increase or decrease at specific times of the year. The proposed tool can highlight the seasonal variation of price changes.
It is common for certain analysts to use a cumulative sum of these indexes to display the results, highlighting months with the most significant bullish/bearish progressions.
The above chart allows us to highlight which months prices tended to have their worst performances over the selected number of years.
🔹 Note
Daily price changes are required for the construction of the seasonal chart. Thus, charts using a low timeframe might lack data compared to higher ones. We recommend using the daily timeframe for the best user experience.
🔶 DETAILS
To construct our seasonal chart, we obtain the average price changes for specific days on a specific month over a user-set number of years from January to December. These individual averages form "seasonal indexes."
This is a common method in classical time series decomposition.
Example:
To obtain the seasonal index of price changes on January first we record every price change occuring on January first over the years of interest, we then average the result.
This operation is done for all days in each month to construct our seasonal chart.
Seasonal variations are often highlighted if the underlying time series is affected by seasonal factors. For market prices, it is difficult to assess if there are stable seasonal variations on all securities.
The consideration of seasonality by market practitioners has often been highlighted through strategies or observations. One of the most common is expressed by the adage "Sell in May and Go Away" for the US market. We can also mention:
January Effect
Santa Claus Rally
Mark Twain Effect
...etc.
These are commonly known as calendar effects and appear from the study of seasonal variations over certain years.
Seasonal pivot datesPlots approximate equinox and solstice dates, which are often zones around which market pivots occur.
ILM Seasonality Monthly - Day of Month - Tabular FormUse this indicator on Daily Timeframe
This indicator displays the seasonality data for any instrument (index/stock/ futures /currency) in a tabular data by day of the month (Day 1..31).
User can change the start of the year and month for analysis from the inputs.
Year is represented in rows and Day of the month (Day) is represented in cols.
This indicator uses Daily Data feed to calculate the % change
Summary data for Day of month is displayed at the bottom of the table
SFC Smart Money Manipulation - Time, Advanced Market StructureThis indicator shows the market structure in more advanced way and different time cycles.
Markets moves in cycles and swings. The indicator will help to determine these cycles and swings by time and price. These are the two columns of the market understanding. The third one is volume/ momentum, but it will not be discussed here.
Advanced Market Structure
According to ICT and Larry Williams Market Structure is not only Highs and Lows.
They present more advanced understanding of the MS:
-Short Term Highs/ Lows
-Intermediate Term Highs/ Lows
-Long Term Highs/ Lows
Rules of how to determine the Swing Points according to Larry Williams:
"A market has made a short-term low when we have a day (or bar if you are using different time periods) that has a higher low on both sides. By the same token a short-term high will be a day (or bar) that has lower bars on both sides of it."
"A short-term high with lower short-term highs on both sides is an intermediate- term high. By the same token, a short-term low with higher short-term lows on both sides is an intermediate-term low."
"An intermediate-term high with lower intermediate-term highs on both sides of it is just naturally a long-term high by our definition, thanks to understanding market structure.
An intermediate-term low with higher intermediate-term lows on both sides of it is just naturally a long-term low by our definition, thanks to understanding market structure."
If the Highs and Lows are labeled properly there is high probability to predict the next High or Low. In this way the trader will know how the current trend is changing and what kind of retracement is coming - deep or shallow.
Timing
Market moves in time cycles.
There is a theory that the swings are equal by time and length. This is not always the case, but very very often.
Indicator time features:
- Swing Trading days - how many time market needed to form a swing. Only Long term(main) Swings are measured. This will help trader to label T-formations.
" T Formations is cyclically related for formations that can be drawn to project the time frame of likely turning points. Basically T-formations are based on the concept that the time distance between the starting low/high of the cyclical wave and its peak is likely to be subsequently repeated between that peak and the final low/high of that cycle."
- Seasonality - theoretically an asset should go up or down in particular yearly quarter. Practically the direction not always match to quarters. Thats why the indicator shows the theoretical seasonal direction and historical real direction.
Seasonal direction is automatically displayed or XAUUSD, XAGUSD, EURUSD, AUDUSD, GBPUSD. There is a ways to set the seasonality manually.
- Earnings Season - This time is very important for Stocks and Indices. Most of the time the assets are in bullish trend during the Earnings Seasons.
- Monthly separator - Shows the monthly time cycle
- Gold bullish months - There are studies on Gold market. They shows that Gold is very bullish in particular months. These are displayed.
The indicator works only on Daily Time Frame.
ILM Seasonality Big Moves - TableUse this script on Daily Timeframe.
This script calculates Daily Moves ( Intraday / Close basis ) and buckets them into 1% / 2% / 3% moves
Also calculates MAX DD for the financial year from Peak to Trough
Helps in identifying volatility of the instrument and high drawdowns due to volatility
Month/Month Percentage % Change, Historical; Seasonal TendencyTable of monthly % changes in Average Price over the last 10 years (or the 10 yrs prior to input year).
Useful for gauging seasonal tendencies of an asset; backtesting monthly volatility and bullish/bearish tendency.
~~User Inputs~~
Choose measure of average: sma(close), sma(ohlc4), vwap(close), vwma(close).
Show last 10yrs, with 10yr average % change, or to just show single year.
Chose input year; with the indicator auto calculating the prior 10 years.
Choose color for labels and size for labels; choose +Ve value color and -Ve value color.
Set 'Daily bars in month': 21 for Forex/Commodities/Indices; 30 for Crypto.
Set precision: decimal places
~~notes~~
-designed for use on Daily timeframe (tradingview is buggy on monthly timeframe calculations, and less precise on weekly timeframe calculations).
-where Current month of year has not occurred yet, will print 9yr average.
-calculates the average change of displayed month compared to the previous month: i.e. Jan22 value represents whole of Jan22 compared to whole of Dec21.
-table displays on the chart over the input year; so for ES, with 2010 selected; shows values from 2001-2010, displaying across 2010-2011 on the chart.
-plots on seperate right hand side scale, so can be shrunk and dragged vertically.
-thanks to @gabx11 for the suggestion which inspired me to write this
RSI - S&P Sector ETFsThe script displays RSI of each S&P SPDR Sector ETF
XLB - Materials
XLC - Communications
XLE - Energy
XLF - Financials
XLI - Industrials
XLK - Technology
XLP - Consumer Staples
XLRE - Real Estate
XLU - Utilities
XLV - Healthcare
XLY - Consumer Discretionary
It is meant to identify changes in sector rotation, compare oversold/overbought signals of each sector, and/or any price momentum trading strategy applicable to a trader.