S&P 500 Sector StrengthsThe "S&P 500 Sector Strengths" indicator is a sophisticated tool designed to provide traders and investors with a comprehensive view of the relative performance of various sectors within the S&P 500 index. This indicator utilizes the True Strength Index (TSI) to measure and compare the strength of different sectors, offering valuable insights into market trends and sector rotations.
At its core, the indicator calculates the TSI for each sector using price data obtained through the request.security() function. The TSI, a momentum oscillator, is computed using a user-defined smoothing period, allowing for customization based on individual preferences and trading styles. The resulting TSI values for each sector are then plotted on the chart, creating a visual representation of sector strengths.
To use this indicator effectively, traders should focus on comparing the movements of different sector lines. Sectors with lines moving higher are showing increasing strength, while those with descending lines are exhibiting weakness. This comparative analysis can help identify potential investment opportunities and sector rotations. Additionally, when multiple sector lines move in tandem, it may signal a broader market trend.
The indicator includes dashed lines at 0.5 and -0.5, serving as reference points for overbought and oversold conditions. Sectors with TSI values above 0.5 might be considered overbought, suggesting caution, while those below -0.5 could be viewed as oversold, potentially indicating buying opportunities.
One of the key advantages of this indicator is its flexibility. Users can toggle the visibility of individual sectors and customize their colors, allowing for a tailored analysis experience. This feature is particularly useful when focusing on specific sectors or reducing chart clutter for clearer visualization.
The indicator's ability to provide a comprehensive overview of all major S&P 500 sectors in a single chart is a significant benefit. This consolidated view enables quick comparisons and helps in identifying relative strengths and weaknesses across sectors. Such insights can be invaluable for portfolio allocation decisions and in spotting emerging market trends.
Moreover, the dynamic legend feature enhances the indicator's usability. It automatically updates to display only the visible sectors, improving chart readability and interpretation.
By leveraging this indicator, market participants can gain a deeper understanding of sector dynamics within the S&P 500. This enhanced perspective can lead to more informed decision-making in sector allocation strategies and individual stock selection. The indicator's ability to potentially detect early trends by comparing sector strengths adds another layer of value, allowing users to position themselves ahead of broader market movements.
In conclusion, the "S&P 500 Sector Strengths" indicator is a powerful tool that combines technical analysis with sector comparison. Its user-friendly interface, customizable features, and comprehensive sector coverage make it an valuable asset for traders and investors seeking to navigate the complexities of the S&P 500 market with greater confidence and insight.
Buscar en scripts para "spx"
IV Rank/Percentile with Williams VIX FixDisplay IV Rank / IV Percentile
This indicator is based on William's VixFix, which replicates the VIX—a measure of the implied volatility of the S&P 500 Index (SPX). The key advantage of the VixFix is that it can be applied to any security, not just the SPX.
IV Rank is calculated by identifying the highest and lowest implied volatility (IV) values over a selected number of past periods. It then determines where the current IV lies as a percentage between these two extremes. For example, if over the past five periods the highest IV was 30%, the lowest was 10%, and the current IV is 20%, the IV Rank would be 50%, since 20% is halfway between 10% and 30%.
IV Percentile, on the other hand, considers all past IV values—not just the highest and lowest—and calculates the percentage of these values that are below the current IV. For instance, if the past five IV values were 30%, 10%, 11%, 15%, and 17%, and the current IV is 20%, the IV Rank remains at 50%. However, the IV Percentile is 80% because 4 out of the 5 past values (80%) are below the current IV of 20%.
War IndexIntroduction
Welcome to the War Index! This project aims to provide traders, investors, and analysts with a specialized financial indicator that tracks the performance of key defense and aerospace companies. By aggregating the percentage changes of selected stocks, the War Index offers insights into the defense sector's dynamics and its relationship with the broader market.
What is the War Index?
The War Index is a custom financial indicator designed to approximate the collective performance of major defense and aerospace companies. It aggregates the daily percentage changes of selected stocks within the defense sector to provide a singular metric that reflects the overall health and trends of this industry. Additionally, the index is compared against the S&P 500 (SPX) to contextualize its performance relative to the broader market.
Index Components
The War Index comprises the following 16 stocks, each representing a significant player in the defense and aerospace industries:
Lockheed Martin Corporation ( NYSE:LMT )
Northrop Grumman Corporation ( NYSE:NOC )
Boeing Company ( NYSE:BA )
Raytheon Technologies Corporation ( NYSE:RTX )
General Dynamics Corporation ( NYSE:GD )
BAE Systems plc ( OTC:BAESY )
L3Harris Technologies, Inc. ( NYSE:LHX )
Textron Inc. ( NYSE:TXT )
Huntington Ingalls Industries, Inc. ( NYSE:HII )
Oshkosh Corporation ( NYSE:OSK )
Leidos Holdings, Inc. ( NYSE:LDOS )
Kratos Defense & Security Solutions, Inc. ( NASDAQ:KTOS )
Spirit AeroSystems Holdings, Inc. ( NYSE:SPR )
Parsons Corporation ( NYSE:PSN )
CACI International Inc ( NYSE:CACI )
ViaSat, Inc. ( NASDAQ:VSAT )
Purpose of the War Index
The War Index serves several key purposes:
Sector Performance Tracking : By aggregating the performance of major defense and aerospace companies, the index provides a clear picture of the sector's overall health.
Investment Analysis : Investors can use the index to identify trends, evaluate sector strength, and make informed decisions regarding their portfolios.
Comparative Benchmarking : Comparing the War Index with broader market indices like the S&P 500 helps in understanding how the defense sector performs relative to the general market.
Disclaimer: This War Index is an approximated indicator intended for informational purposes only. It should not be construed as investment advice. Always conduct your own research or consult with a financial advisor before making investment decisions.
SP500 RatiosThe "SP500 Ratios" indicator is a powerful tool developed for the TradingView platform, allowing users to access a variety of financial ratios and inflation-adjusted data related to the S&P 500 index. This indicator integrates with Nasdaq Data Link (formerly known as Quandl) to retrieve historical data, providing a comprehensive overview of key financial metrics associated with the S&P 500.
Key Features
Price to Sales Ratio: Quarterly ratio of price to sales (revenue) for the S&P 500.
Dividend Yield: Monthly dividend yield based on 12-month dividend per share.
Price Earnings Ratio (PE Ratio): Monthly price-to-earnings ratio based on trailing twelve-month reported earnings.
CAPE Ratio (Shiller PE Ratio): Monthly cyclically adjusted PE ratio, based on average inflation-adjusted earnings over the past ten years.
Earnings Yield: Monthly earnings yield, the inverse of the PE ratio.
Price to Book Ratio: Quarterly ratio of price to book value.
Inflation Adjusted S&P 500: Monthly S&P 500 level adjusted for inflation.
Revenue Per Share: Quarterly trailing twelve-month sales per share, not adjusted for inflation.
Earnings Per Share: Monthly real earnings per share, adjusted for inflation.
User Configuration
The indicator offers flexibility through user-configurable options. You can choose to display or hide each metric according to your analysis needs. Users can also adjust the line width for better visibility on the chart.
Visualization
The selected data is plotted on the chart with distinct colors for each metric, facilitating visual analysis. A dynamic legend table is also generated in the top-right corner of the chart, listing the currently displayed metrics with their associated colors.
This indicator is ideal for traders and analysts seeking detailed insights into the financial performance and valuations of the S&P 500, while benefiting from the customization flexibility offered by TradingView.
VIX Percentile Rank HistogramVIX Percentile Rank Histogram
The VIX Percentile Rank Histogram provides a visual representation of the CBOE Volatility Index (VIX) percentile rank over a customizable lookback period, helping traders gauge market sentiment and make informed trading decisions.
Overview:
This indicator calculates the percentile rank of the VIX over a specified lookback period and displays it as a histogram. The histogram helps traders understand whether the current VIX level is relatively high or low compared to its recent history. This information is particularly useful for timing entries and exits in the S&P 500 or related ETFs and Mega Caps.
How It Works:
VIX Data Integration: The script fetches daily VIX close prices, regardless of the chart you are viewing, to analyze market volatility.
Percentile Rank Calculation: The indicator calculates the rank percentile of the VIX over the chosen lookback period.
Histogram Visualization: The histogram plots the difference between the flipped VIX percentile rank and 50, showing green bars for ranks below 50 (indicating lower market volatility) and red bars for ranks above 50 (indicating higher market volatility).
Usage:
This indicator is most effective when trading the S&P 500 (SPX, SPY, ES1!) or ETFs and Mega Caps that closely follow the S&P 500. It provides insight into market sentiment, helping traders make more informed decisions.
Timing Entries and Exits: Green histogram readings suggest it's a good time to enter or hold long positions, while red readings suggest considering exits or short positions.
Market Sentiment: A high VIX percentile rank (red bars) indicates market fear and uncertainty, while a low percentile rank (green bars) suggests investor confidence and reduced volatility.
Key Features:
Customizable Lookback Period: The default lookback period is set to 20 days, but can be adjusted based on the trader's average trade duration. For example, if your trades typically last 20 days, a 20-day lookback period helps contextualize the VIX level relative to its recent history.
Histogram Visualization: The histogram provides a clear visual representation of market volatility.
Green Bars: Indicate a lower-than-median VIX percentile rank, suggesting reduced market volatility.
Red Bars: Indicate a higher-than-median VIX percentile rank, suggesting increased market volatility.
Threshold Line: A dashed gray line at the 0 level serves as a visual reference for the median VIX rank.
Important Note:
This indicator always shows readings from the VIX, regardless of the chart you are viewing. For example, if you are looking at Natural Gas futures, this indicator will provide no relevant data. It works best when trading the S&P 500 or related ETFs and Mega Caps.
Mateo's Time of Day Analysis LEThis strategy takes a trade every day at a specified time and then closes it at a specified time.
The purpose of this strategy is to help determine if there are better times to day to buy or sell.
I was originally inspired to write this when a YouTuber stated that SPX had been up during the last 30 minutes of the day over 80% of the time the past year. No matter who says it, test it, and in my opinion, TradingView is one of the easiest placed to do that! Unfortunately, that particular claim did not turn out to be accurate, but this tool remains for those who want to optimize timing their entries and exits at specific times of day.
Breadth Indicators NYSE Percent Above Moving AverageBreadth Indicators NYSE - transmits the processed data from the Barchart provider
NYSE - Breadth Indicators
S&P 500 - Breadth Indicators
DOW - Breadth Indicators
RUSSEL 1000 - Breadth Indicators
RUSSEL 2000 - Breadth Indicators
RUSSEL 3000 - Breadth Indicators
Moving Average - 5, 20, 50, 100, 150, 200
The "Percentage above 50-day SMA" indicator measures the percentage of stocks in the index trading above their 50-day moving average. It is a useful tool for assessing the general state of the market and identifying overbought and oversold conditions.
One way to use the "Percentage above 50-day SMA" indicator in a trading strategy is to combine it with a long-term moving average to determine whether the trend is bullish or bearish. Another way to use it is to combine it with a short-term moving average to identify pullbacks and rebounds within the overall trend.
The purpose of using the "Percentage above 50-day SMA" indicator is to participate in a larger trend with a better risk-reward ratio. By using this indicator to identify pullbacks and bounces, you can reduce the risk of entering trades at the wrong time.
Bull Signal Recap:
150-day EMA of $SPXA50R crosses above 52.5 and remains above 47.50 to set the bullish tone.
5-day EMA of $SPXA50R moves below 40 to signal a pullback
5-day EMA of $SPXA50R moves above 50 to signal an upturn
Bear Signal Recap:
150-day EMA of $SPXA50R crosses below 47.50 and remains below 52.50 to set the bearish tone.
5-day EMA of $SPXA50R moves above 60 to signal a bounce
5-day EMA of $SPXA50R moves below 50 to signal a downturn
Tweaking
There are numerous ways to tweak a trading system, but chartists should avoid over-optimizing the indicator settings. In other words, don't attempt to find the perfect moving average period or crossover level. Perfection is unattainable when developing a system or trading the markets. It is important to keep the system logical and focus tweaks on other aspects, such as the actual price chart of the underlying security.
What do levels above and below 50% signify in the long-term moving average?
A move above 52.5% is deemed bullish, and below 47.5% is deemed bearish. These levels help to reduce whipsaws by using buffers for bullish and bearish thresholds.
How does the short-term moving average work to identify pullbacks or bounces?
When using a 5-day EMA, a move below 40 signals a pullback, and a move above 60 signals a bounce.
How is the reversal of pullback or bounce identified?
A move back above 50 after a pullback or below 50 after a bounce signals that the respective trend may be resuming.
How can you ensure that the uptrend has resumed?
It’s important to wait for the surge above 50 to ensure the uptrend has resumed, signaling improved breadth.
Can the system be tweaked to optimize indicator settings?
While there are various ways to tweak the system, seeking perfection through over-optimizing settings is advised against. It's crucial to keep the system logical and focus tweaks on the price chart of the underlying security.
RUSSIAN \ Русская версия.
Индикатор "Процент выше 50-дневной скользящей средней" измеряет процент акций, торгующихся в индексе выше их 50-дневной скользящей средней. Это полезный инструмент для оценки общего состояния рынка и выявления условий перекупленности и перепроданности.
Один из способов использования индикатора "Процент выше 50-дневной скользящей средней" в торговой стратегии - это объединить его с долгосрочной скользящей средней, чтобы определить, является ли тренд бычьим или медвежьим. Другой способ использовать его - объединить с краткосрочной скользящей средней, чтобы выявить откаты и отскоки в рамках общего тренда.
Цель использования индикатора "Процент выше 50-дневной скользящей средней" - участвовать в более широком тренде с лучшим соотношением риска и прибыли. Используя этот индикатор для выявления откатов и отскоков, вы можете снизить риск входа в сделки в неподходящее время.
Краткое описание бычьего сигнала:
150-дневная ЕМА на уровне $SPXA50R пересекает отметку 52,5 и остается выше 47,50, что задает бычий настрой.
5-дневная ЕМА на уровне $SPXA50R опускается ниже 40, сигнализируя об откате
5-дневная ЕМА на уровне $SPXA50R поднимается выше 50, сигнализируя о росте
Обзор медвежьих сигналов:
150-дневная ЕМА на уровне $SPXA50R пересекает уровень ниже 47,50 и остается ниже 52,50, что указывает на медвежий настрой.
5-дневная ЕМА на уровне $SPXA50R поднимается выше 60, сигнализируя о отскоке
5-дневная ЕМА на уровне $SPXA50 опускается ниже 50, что сигнализирует о спаде
Корректировка
Существует множество способов настроить торговую систему, но графологам следует избегать чрезмерной оптимизации настроек индикатора. Другими словами, не пытайтесь найти идеальный период скользящей средней или уровень пересечения. Совершенство недостижимо при разработке системы или торговле на рынках. Важно поддерживать логику системы и уделять особое внимание другим аспектам, таким как график фактической цены базовой ценной бумаги.
Что означают уровни выше и ниже 50% в долгосрочной скользящей средней?
Движение выше 52,5% считается бычьим, а ниже 47,5% - медвежьим. Эти уровни помогают снизить риски, используя буферы для бычьих и медвежьих порогов.
Как краткосрочная скользящая средняя помогает идентифицировать откаты или отскоки?
При использовании 5-дневной ЕМА движение ниже 40 указывает на откат, а движение выше 60 указывает на отскок.
Как определяется разворот отката или отскока?
Движение выше 50 после отката или ниже 50 после отскока сигнализирует о возможном возобновлении соответствующего тренда.
Как вы можете гарантировать, что восходящий тренд возобновился?
Важно дождаться скачка выше 50, чтобы убедиться в возобновлении восходящего тренда, сигнализирующего о расширении диапазона.
Можно ли настроить систему для оптимизации настроек индикатора?
Хотя существуют различные способы настройки системы, не рекомендуется стремиться к совершенству с помощью чрезмерной оптимизации настроек. Крайне важно сохранить логичность системы и сфокусировать изменения на ценовом графике базовой ценной бумаги.
[BT] NedDavis Series: CPI Minus 5-Year Moving Average🟧 GENERAL
The script works on the Monthly Timeframe and has 2 main settings (explained in FEATURES ). It uses the US CPI data, reported by the Bureau of Labour Statistics.
🔹Functionality 1: The main idea is to plot the distance between the CPI line and the 5 year moving average of the CPI line. This technique in mathematics is called "deviation from the moving average". This technique is used to analyse how has CPI previously acted and can give clues at what it might do in the future. Economic historians use such analysis, together with specific period analysis to predict potential risks in the future (see an example of such analysis in HOW TO USE section. The mathematical technique is a simple subtraction between 2 points (CPI - 5yr SMA of CPI).
▶︎Interpretation for deviation from a moving average:
Positive Deviation: When the line is above its moving average, it indicates that the current value is higher than the average, suggesting potential strength or bullish sentiment.
Negative Deviation: Conversely, when the line falls below its moving average, it suggests weakness or bearish sentiment as the current value is lower than the average.
▶︎Applications:
Trend Identification: Deviations from moving averages can help identify trends, with sustained deviations indicating strong trends.
Reversal Signals: Significant deviations from moving averages may signal potential trend reversals, especially when combined with other technical indicators.
Volatility Measurement: Monitoring the magnitude of deviations can provide insights into market volatility and price movements.
Remember the indicator is applying this only for the US CPI - not the ticker you apply the indicator on!
🔹Functionality 2: It plots on a new pane below information about the Consumer Price Index. You can also find the information by plotting the ticker symbol USACPIALLMINMEI on TradingView, which is a Monthly economic data by the OECD for the CPI in the US. The only addition you would get from the indicator is the plot of the 5 year Simple Moving Average.
🔹What is the US Consumer Price Index?
Measures the change in the price of goods and services purchased by consumers;
Traders care about the CPI because consumer prices account for a majority of overall inflation. Inflation is important to currency valuation because rising prices lead the central bank to raise interest rates out of respect for their inflation containment mandate;
It is measured as the average price of various goods and services are sampled and then compared to the previous sampling.
Source: Bureau of Labor Statistics;
FEATURES OF INDICATOR
1) The US Consumer Price Index Minus the Five Year Moving Average of the same.
As shown on the picture above and explained in previous section. Here a more detailed view.
2) The actual US Consumer Price Index (Annual Rate of change) and the Five year average of the US Consumer Price Index. Explained above and shown below:
To activate 2) go into settings and toggle the check box.
HOW TO USE
It can be used for a fundamental analysis on the relationship between the stock market, the economy and the Feds decisions to hike or cut rates, whose main mandate is to control inflation over time.
I have created this indicator to show my analysis in this idea:
What does a First Fed Rate cut really mean?
CREDITS
I have seen such idea in the past posted by the institutional grade research of NedDavis and have recreated it for the TradingView platform, open-source for the community.
Mag7 IndexThis is an indicator index based on cumulative market value of the Magnificent 7 (AAPL, MSFT, NVDA, TSLA, META, AMZN, GOOG). Such an indicator for the famous Mag 7, against which your main security can be benchmarked, was missing from the TradingView user library.
The index bar values are calculated by taking the weighted average of the 7 stocks, relative to their market cap. Explicitly, we are multiplying each bar period's total outstanding stock amount by the OHLC of that period for each stock and dividing that value by the combined sum of outstanding stock for the 7 corporations. OHLC is taken for the extended trading session.
The index dynamically adjusts with respect to the chosen main security and the bars/line visible in the chart window; that is, the first close value is normalized to the main security's first close value. It provides recalculation of the performance in that chart window as you scroll (this isn't apparent in the demo chart above this description).
It can be useful for checking market breadth, or benchmarking price performance of the individual stock components that comprise the Magnificent 7. I prefer comparing the indicator to the Nasdaq Composite Index (IXIC) or S&P500 (SPX), but of course you can make comparisons to any security or commodity.
Settings Input Options:
1) Bar vs. Line - view as OHLC colored bars or line chart. Line chart color based on close above or below the previous period close as green or red line respectively.
2) % vs Regular - the final value for the window period as % return for that window or index value
3) Turn on/off - bottom right tile displaying window-period performance
Inspired by the simpler NQ 7 Index script by @RaenonX but with normalization to main security at start of window and additional settings input options.
Please provide feedback for additional features, e.g., if a regular/extended session option is useful.
Danger Signals from The Trading MindwheelThe " Danger Signals " indicator, a collaborative creation from the minds at Amphibian Trading and MARA Wealth, serves as your vigilant lookout in the volatile world of stock trading. Drawing from the wisdom encapsulated in "The Trading Mindwheel" and the successful methodologies of legends like William O'Neil and Mark Minervini, this tool is engineered to safeguard your trading journey.
Core Features:
Real-Time Alerts: Identify critical danger signals as they emerge in the market. Whether it's a single day of heightened risk or a pattern forming, stay informed with specific danger signals and a tally of signals for comprehensive decision-making support. The indicator looks for over 30 different signals ranging from simple closing ranges to more complex signals like blow off action.
Tailored Insights with Portfolio Heat Integration: Pair with the "Portfolio Heat" indicator to customize danger signals based on your current positions, entry points, and stops. This personalized approach ensures that the insights are directly relevant to your trading strategy. Certain signals can have different meanings based on where your trade is at in its lifecycle. Blow off action at the beginning of a trend can be viewed as strength, while after an extended run could signal an opportunity to lock in profits.
Forward-Looking Analysis: Leverage the 'Potential Danger Signals' feature to assess future risks. Enter hypothetical price levels to understand potential market reactions before they unfold, enabling proactive trade management.
The indicator offers two different modes of 'Potential Danger Signals', Worst Case or Immediate. Worst Case allows the user to input any price and see what signals would fire based on price reaching that level, while the Immediate mode looks for potential Danger Signals that could happen on the next bar.
This is achieved by adding and subtracting the average daily range to the current bars close while also forecasting the next values of moving averages, vwaps, risk multiples and the relative strength line to see if a Danger Signal would trigger.
User Customization: Flexibility is at your fingertips with toggle options for each danger signal. Tailor the indicator to match your unique trading style and risk tolerance. No two traders are the same, that is why each signal is able to be turned on or off to match your trading personality.
Versatile Application: Ideal for growth stock traders, momentum swing traders, and adherents of the CANSLIM methodology. Whether you're a novice or a seasoned investor, this tool aligns with strategies influenced by trading giants.
Validation and Utility:
Inspired by the trade management principles of Michael Lamothe, the " Danger Signals " indicator is more than just a tool; it's a reflection of tested strategies that highlight the importance of risk management. Through rigorous validation, including the insights from "The Trading Mindwheel," this indicator helps traders navigate the complexities of the market with an informed, strategic approach.
Whether you're contemplating a new position or evaluating an existing one, the " Danger Signals " indicator is designed to provide the clarity needed to avoid potential pitfalls and capitalize on opportunities with confidence. Embrace a smarter way to trade, where awareness and preparation open the door to success.
Let's dive into each of the components of this indicator.
Volume: Volume refers to the number of shares or contracts traded in a security or an entire market during a given period. It is a measure of the total trading activity and liquidity, indicating the overall interest in a stock or market.
Price Action: the analysis of historical prices to inform trading decisions, without the use of technical indicators. It focuses on the movement of prices to identify patterns, trends, and potential reversal points in the market.
Relative Strength Line: The RS line is a popular tool used to compare the performance of a stock, typically calculated as the ratio of the stock's price to a benchmark index's price. It helps identify outperformers and underperformers relative to the market or a specific sector. The RS value is calculated by dividing the close price of the chosen stock by the close price of the comparative symbol (SPX by default).
Average True Range (ATR): ATR is a market volatility indicator used to show the average range prices swing over a specified period. It is calculated by taking the moving average of the true ranges of a stock for a specific period. The true range for a period is the greatest of the following three values:
The difference between the current high and the current low.
The absolute value of the current high minus the previous close.
The absolute value of the current low minus the previous close.
Average Daily Range (ADR): ADR is a measure used in trading to capture the average range between the high and low prices of an asset over a specified number of past trading days. Unlike the Average True Range (ATR), which accounts for gaps in the price from one day to the next, the Average Daily Range focuses solely on the trading range within each day and averages it out.
Anchored VWAP: AVWAP gives the average price of an asset, weighted by volume, starting from a specific anchor point. This provides traders with a dynamic average price considering both price and volume from a specific start point, offering insights into the market's direction and potential support or resistance levels.
Moving Averages: Moving Averages smooth out price data by creating a constantly updated average price over a specific period of time. It helps traders identify trends by flattening out the fluctuations in price data.
Stochastic: A stochastic oscillator is a momentum indicator used in technical analysis that compares a particular closing price of an asset to a range of its prices over a certain period of time. The theory behind the stochastic oscillator is that in a market trending upwards, prices will tend to close near their high, and in a market trending downwards, prices close near their low.
While each of these components offer unique insights into market behavior, providing sell signals under specific conditions, the power of combining these different signals lies in their ability to confirm each other's signals. This in turn reduces false positives and provides a more reliable basis for trading decisions
These signals can be recognized at any time, however the indicators power is in it's ability to take into account where a trade is in terms of your entry price and stop.
If a trade just started, it hasn’t earned much leeway. Kind of like a new employee that shows up late on the first day of work. It’s less forgivable than say the person who has been there for a while, has done well, is on time, and then one day comes in late.
Contextual Sensitivity:
For instance, a high volume sell-off coupled with a bearish price action pattern significantly strengthens the sell signal. When the price closes below an Anchored VWAP or a critical moving average in this context, it reaffirms the bearish sentiment, suggesting that the momentum is likely to continue downwards.
By considering the relative strength line (RS) alongside volume and price action, the indicator can differentiate between a normal retracement in a strong uptrend and a when a stock starts to become a laggard.
The integration of ATR and ADR provides a dynamic framework that adjusts to the market's volatility. A sudden increase in ATR or a character change detected through comparing short-term and long-term ADR can alert traders to emerging trends or reversals.
The "Danger Signals" indicator exemplifies the power of integrating diverse technical indicators to create a more sophisticated, responsive, and adaptable trading tool. This approach not only amplifies the individual strengths of each indicator but also mitigates their weaknesses.
Portfolio Heat Indicator can be found by clicking on the image below
Danger Signals Included
Price Closes Near Low - Daily Closing Range of 30% or Less
Price Closes Near Weekly Low - Weekly Closing Range of 30% or Less
Price Closes Near Daily Low on Heavy Volume - Daily Closing Range of 30% or Less on Heaviest Volume of the Last 5 Days
Price Closes Near Weekly Low on Heavy Volume - Weekly Closing Range of 30% or Less on Heaviest Volume of the Last 5 Weeks
Price Closes Below Moving Average - Price Closes Below One of 5 Selected Moving Averages
Price Closes Below Swing Low - Price Closes Below Most Recent Swing Low
Price Closes Below 1.5 ATR - Price Closes Below Trailing ATR Stop Based on Highest High of Last 10 Days
Price Closes Below AVWAP - Price Closes Below Selected Anchored VWAP (Anchors include: High of base, Low of base, Highest volume of base, Custom date)
Price Shows Aggressive Selling - Current Bars High is Greater Than Previous Day's High and Closes Near the Lows on Heaviest Volume of the Last 5 Days
Outside Reversal Bar - Price Makes a New High and Closes Near the Lows, Lower Than the Previous Bar's Low
Price Shows Signs of Stalling - Heavy Volume with a Close of Less than 1%
3 Consecutive Days of Lower Lows - 3 Days of Lower Lows
Close Lower than 3 Previous Lows - Close is Less than 3 Previous Lows
Character Change - ADR of Last Shorter Length is Larger than ADR of Longer Length
Fast Stochastic Crosses Below Slow Stochastic - Fast Stochastic Crosses Below Slow Stochastic
Fast & Slow Stochastic Curved Down - Both Stochastic Lines Close Lower than Previous Day for 2 Consecutive Days
Lower Lows & Lower Highs Intraday - Lower High and Lower Low on 30 Minute Timeframe
Moving Average Crossunder - Selected MA Crosses Below Other Selected MA
RS Starts Curving Down - Relative Strength Line Closes Lower than Previous Day for 2 Consecutive Days
RS Turns Negative Short Term - RS Closes Below RS of 7 Days Ago
RS Underperforms Price - Relative Strength Line Not at Highs, While Price Is
Moving Average Begins to Flatten Out - First Day MA Doesn't Close Higher
Price Moves Higher on Lighter Volume - Price Makes a New High on Light Volume and 15 Day Average Volume is Less than 50 Day Average
Price Hits % Target - Price Moves Set % Higher from Entry Price
Price Hits R Multiple - Price hits (Entry - Stop Multiplied by Setting) and Added to Entry
Price Hits Overhead Resistance - Price Crosses a Swing High from a Monthly Timeframe Chart from at Least 1 Year Ago
Price Hits Fib Level - Price Crosses a Fib Extension Drawn From Base High to Low
Price Hits a Psychological Level - Price Crosses a Multiple of 0 or 5
Heavy Volume After Significant Move - Above Average and Heaviest Volume of the Last 5 Days 35 Bars or More from Breakout
Moving Averages Begin to Slope Downward - Moving Averages Fall for 2 Consecutive Days
Blow Off Action - Highest Volume, Largest Spread, Multiple Gaps in a Row 35 Bars or More Post Breakout
Late Buying Frenzy - ANTS 35 Bars or More Post Breakout
Exhaustion Gap - Gap Up 5% or Higher with Price 125% or More Above 200sma
Buy and hold visualiserThis indicator shows the historical performance of a buy and hold portfolio. The purpose of the indicator is to show
1. the effect of the hold time (time between buying and selling a number of instruments) and
2. the effect of investing all capital at once (lump sum) versus dividing the investment over a number of months or years (cost averaging).
The indicator shows four lines:
- a dotted line at 0 (dollar or any other currency),
- a dotted line at the level of initial investment,
- a blue line that shows the amount of capital after selling at the end of the investment period after a lump sum investment,
- a green line that shows the amount of capital after selling at the end of the investment period after an investment that was done in chunks (cost averaging)
When 'chunks' is set to 1, the green line will match the blue line.
When 'investment' is set to 1, the blue and green lines will show the factor by which the initial investment was multiplied at the end of the investment period.
The effect of the hold time can be easily seen in the following example: Choose SPX (CBOE) as the active instrument, set 'chunks' to 1 and 'months' to 12. Depending on when you bought your portfolio, selling it a year later is like tossing a coin. Set 'months' to 360 and it becomes clear that it doesn't matter when you buy, the value of your portfolio will likely multiply considerably in 30 years, even if you bought everything all at once just before a bear market. It shows that with a long time horizon, you don't have to worry about timing the market.
Continue the example above and set 'chunks' to 12, thus spreading the initial investment over 12 months. The green line shows the cost averaging performance. The blue lump sum line is above the green line most of the time. Increase the chunks to 60 and the difference increases.
ARIMA Moving Average and Forecaster [SS]Finally releasing this. This took months, over 3 months to be precise, to figure out, code and troubleshoot! I honestly was going to give up on this project, but I finally got it to actually work fairly reliably. So hopefully you like it!
This is a very basic ARIMA modeler. It can do the following:
1. Provide you with an ARIMA based Moving Average;
2. Provide you with a standard error band;
3. Auto-select a lag length for assessment based on stationarity;
3. Provide you with the option of extending the error range by a user selected amount of standard deviations; and
4. Forecasting and plotting the forecast on the chart.
I will go over each function individually, but before I do, I think its important to talk a bit about what an ARIMA Model is and does:
ARIMA stands for AutoRegressive Integrated Moving Average and is an approach to modeling and time series forecasting. In simple terms, it combines autoregressive (AR) and moving average (MA) components to capture the underlying patterns in a time series data. The "AutoRegressive" part accounts for the relationship between an observation and its previous values, while the "Moving Average" part considers the relationship between an observation and a residual error from past observations. The "Integrated" component involves differencing the time series to make it stationary, which aids in stabilizing the model. ARIMA models help predict future values based on patterns observed in historical data, making them useful for forecasting in various fields such as economics, finance, and weather prediction.
The benefits to ARIMA is it will forecast based on the current trend, but it also provides for both the up and down scenario of the trend (i.e., if we are in a downtrend, what it would look like and what values we could expect if the trend reverses and vice versa). All of this is within the scope of this indicator, believe it or not!
If you would like more information on ARIMA, you can check out my educational post about it here:
Alrighty, now for the indicator functions.
ARIMA Moving Average and Standard Error Band
The ARIMA moving average is very simple, it takes the SMA of the current trend, lags it and plots out the lagged SMA. You can toggle the auto-select lag on, or you can pick your own lag manually. The above image is an auto-selected lag, but if we manually lag it by 5, this is what it looks like:
Its simply a lagged average of the 5 SMA (that is essentially how ARIMA works, by creating a moving average and lagging the moving average).
There are some implications to selecting a lag factor when it comes to forecasting, but I will cover this in the forecasting section. But I do want to make mention, you can use the ARIMA moving average in lieu of other moving averages. The advantage to doing this is it will be able to plot out the error bands. For example, if we wanted to get an ARIMA MA of the 200 SMA, we can toggle on the error bands and this is what we get:
Or the 50 MA:
NOTE: You ABSOLUTELY SHOULD NEVER use more than a lag of 4 or 5 for Forecasting (will be discussed later).
Auto-Select Lag
The indicator pulls the ARIMA modeler framework from my Forecasting library and pulls the stationarity assessment from my SPTS library. When you are doing an ARIMA model for forecasting, we need to ensure the data is stationary. Thus, if you want to forecast out the current trend, its highly recommended you select the "Auto Determine Lag Length" to find the most appropriate lag and forecast accordingly.
You can, however, chose your own lag order (model order), but this should never be above 4 or 5.
You should never select a lag of more than 5 because you are introducing too much "trendiness" into the equation, and you will get astronomical readings. ARIMA models never generally exceed a lag of 3 or 4 at most, as they are supposed be stationary and de-trended.
Extending by Standard Deviation
There is an option to select a standard deviation extension band. This is helpful for active day trading. Here is NIO extended by 2 standard deviations:
General suggestion is to only extend by 2 standard deviations and this is sufficient for most stocks.
Forecasting
The hallmark of an ARIMA model is the ability to use it for forecasting. Thus, the forecasting feature is a large portion of this indicator. You can see it displayed in the main chart above, but let's show some other examples:
NIO on the 1 hour:
TSLA on the 4 hour:
You can also display a forecasting table:
The result row shows the most likely, conservative, price at each time increment.
The Upper Confidence and Lower Confidence show what the trend would look like if it continued up or down at the current rate and the 95% confidence intervals show the values that the true source is likely to fall between at various increments in time with a 95% confidence (i.e. 95% probability that it should fall between these levels at period xyz assuming normal distribution).
The important levels, in my opinion, are the upper and lower confidence levels. These show you the current rate of decline or increase that the stock is expecting and what the trend would look like with a continuation or a reversal. This is ARIMA's biggest strength, as it has the ability to plot both outcomes assuming the current trend rate and time remains constant.
And that is the indicator! ARIMA is a bit of a complex process, but its a very powerful tool when used properly!
Troubleshooting:
One thing of note. Sometimes when autoselecting a length for forecasting, if there has been a heavy trend in one direction, you will not get the upper or lower confidence levels because of the lack of any up or down movement. In this case, manually select a lag of 3 to 5 to correct for this.
Let me know if you have any questions below and safe trades everyone!
Market Average TrendThis indicator aims to be complimentary to SPDR Tracker , but I've adjusted the name as I've been able to utilize the "INDEX" data provider to support essentially every US market.
This is a breadth market internal indicator that allows quick review of strength given the 5, 20, 50, 100, 150 and 200 simple moving averages. Each can be toggled to build whatever combinations are desired, I recommend reviewing classic combinations such as 5 & 20 as well as 50 & 200.
It's entirely possible that I've missed some markets that "INDEX" provides data for, if you find any feel free to drop a comment and I'll add support for them in an update.
Markets currently supported:
S&P 100
S&P 500
S&P ENERGIES
S&P INFO TECH
S&P MATERIALS
S&P UTILITIES
S&P FINANCIALS
S&P REAL ESTATE
S&P CON STAPLES
S&P HEALTH CARE
S&P INDUSTRIALS
S&P TELECOM SRVS
S&P CONSUMER DISC
S&P GROWTH
NAS 100
NAS COMP
DOW INDUSTRIAL
DOW COMP
DOW UTILITIES
DOW TRANSPORTATION
RUSSELL 1000
RUSSELL 2000
RUSSELL 3000
You can utilize this to watch stocks for dip buys or potential trend continuation entries, short entries, swing exits or numerous other portfolio management strategies.
If using it with stocks, it's advisable to ensure the stock often follows the index, otherwise obviously it's great to use with major indexes and determine holdings sentiment.
Important!
The "INDEX" data provider only supplies updates to all of the various data feeds at the end of day, I've noticed quite some delays even after market close and not taken time to review their actual update schedule (if even published). Therefore, it's strongly recommended to mostly ignore the last value in the series until it's the day after.
Only works on daily timeframes and above, please don't comment that it's not working if on other timeframes lower than daily :)
Feedback and suggestions are always welcome, enjoy!
chrono_utilsLibrary "chrono_utils"
Collection of objects and common functions that are related to datetime windows session days and time
ranges. The main purpose of this library is to handle time-related functionality and make it easy to reason about a
future bar and see if it is part of a predefined user session and/or inside a datetime window. All existing session
functions I found in the documentation e.g. "not na(time(timeframe, session, timezone))" are not suitable for
strategies, since the execution of the orders is delayed by one bar due to the execution happening at the bar close.
So a prediction for the next bar is necessary. Moreover, a history operator with a negative value is not allowed e.g.
`not na(time(timeframe, session, timezone) )` expression is not valid. Thus, I created this library to overcome
this small but very important limitation. In the meantime, I added useful functionality to handle session-based
behavior. An interesting utility that emerged from this development is data anomaly detection where a comparison
between the prediction and the actual value is happening. If those two values are different then a data inconsistency
happens between the prediction bar and the actual bar (probably due to a holiday or half session day etc..)
exTimezone(timezone)
exTimezone - Convert extended timezone to timezone string
Parameters:
timezone (simple string) : - The timezone or a special string
Returns: string representing the timezone
nameOfDay(day)
nameOfDay - Convert the day id into a short nameOfDay
Parameters:
day (int) : - The day id to convert
Returns: - The short name of the day
today()
today - Get the day id of this day
Returns: - The day id
nthDayAfter(day, n)
nthDayAfter - Get the day id of n days after the given day
Parameters:
day (int) : - The day id of the reference day
n (int) : - The number of days to go forward
Returns: - The day id of the day that is n days after the reference day
nextDayAfter(day)
nextDayAfter - Get the day id of next day after the given day
Parameters:
day (int) : - The day id of the reference day
Returns: - The day id of the next day after the reference day
nthDayBefore(day, n)
nthDayBefore - Get the day id of n days before the given day
Parameters:
day (int) : - The day id of the reference day
n (int) : - The number of days to go forward
Returns: - The day id of the day that is n days before the reference day
prevDayBefore(day)
prevDayBefore - Get the day id of previous day before the given day
Parameters:
day (int) : - The day id of the reference day
Returns: - The day id of the previous day before the reference day
tomorrow()
tomorrow - Get the day id of the next day
Returns: - The next day day id
normalize(num, min, max)
normalizeHour - Check if number is inthe range of
Parameters:
num (int)
min (int)
max (int)
Returns: - The normalized number
normalizeHour(hourInDay)
normalizeHour - Check if hour is valid and return a noralized hour range from
Parameters:
hourInDay (int)
Returns: - The normalized hour
normalizeMinute(minuteInHour)
normalizeMinute - Check if minute is valid and return a noralized minute from
Parameters:
minuteInHour (int)
Returns: - The normalized minute
monthInMilliseconds(mon)
monthInMilliseconds - Calculate the miliseconds in one bar of the timeframe
Parameters:
mon (int) : - The month of reference to get the miliseconds
Returns: - The number of milliseconds of the month
barInMilliseconds()
barInMilliseconds - Calculate the miliseconds in one bar of the timeframe
Returns: - The number of milliseconds in one bar
method init(this, fromDateTime, toDateTime)
init - Initialize the time window object from boolean values of each session day
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object that will hold the from and to datetimes
fromDateTime (int) : - The starting datetime of the time window
toDateTime (int) : - The ending datetime of the time window
Returns: - The time window object
method init(this, refTimezone, chTimezone, fromDateTime, toDateTime)
init - Initialize the time window object from boolean values of each session day
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object that will hold the from and to datetimes
refTimezone (simple string) : - The timezone of reference of the 'from' and 'to' dates
chTimezone (simple string) : - The target timezone to convert the 'from' and 'to' dates
fromDateTime (int) : - The starting datetime of the time window
toDateTime (int) : - The ending datetime of the time window
Returns: - The time window object
method init(this, sun, mon, tue, wed, thu, fri, sat)
init - Initialize the session days object from boolean values of each session day
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object that will hold the day selection
sun (bool) : - Is Sunday a trading day?
mon (bool) : - Is Monday a trading day?
tue (bool) : - Is Tuesday a trading day?
wed (bool) : - Is Wednesday a trading day?
thu (bool) : - Is Thursday a trading day?
fri (bool) : - Is Friday a trading day?
sat (bool) : - Is Saturday a trading day?
Returns: - The session days objectfrom_chart
method init(this, unixTime)
init - Initialize the object from the hour and minute of the session time in exchange timezone (syminfo.timezone)
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
unixTime (int) : - The unix time
Returns: - The session time object
method init(this, hourInDay, minuteInHour)
init - Initialize the object from the hour and minute of the session time in exchange timezone (syminfo.timezone)
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
hourInDay (int) : - The hour of the time
minuteInHour (int) : - The minute of the time
Returns: - The session time object
method init(this, hourInDay, minuteInHour, refTimezone)
init - Initialize the object from the hour and minute of the session time
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
hourInDay (int) : - The hour of the time
minuteInHour (int) : - The minute of the time
refTimezone (string) : - The timezone of reference of the 'hour' and 'minute'
Returns: - The session time object
method init(this, startTime, endTime)
init - Initialize the object from the start and end session time in exchange timezone (syminfo.timezone)
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
startTime (SessionTime) : - The time the session begins
endTime (SessionTime) : - The time the session ends
Returns: - The session time range object
method init(this, startTimeHour, startTimeMinute, endTimeHour, endTimeMinute, refTimezone)
init - Initialize the object from the start and end session time
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
startTimeHour (int) : - The time hour the session begins
startTimeMinute (int) : - The time minute the session begins
endTimeHour (int) : - The time hour the session ends
endTimeMinute (int) : - The time minute the session ends
refTimezone (string)
Returns: - The session time range object
method init(this, days, timeRanges)
init - Initialize the user session object from session days and time range
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object that will hold the day and the time range selection
days (SessionDays) : - The session days object that defines the days the session is happening
timeRanges (SessionTimeRange ) : - The array of all the session time ranges during a session day
Returns: - The user session object
method to_string(this)
to_string - Formats the time window into a human-readable string
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - The string of the time window
method to_string(this)
to_string - Formats the session days into a human-readable string with short day names
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
Returns: - The string of the session day short names
method to_string(this)
to_string - Formats the session time into a human-readable string
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The string of the session time
method to_string(this)
to_string - Formats the session time into a human-readable string
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The string of the session time
method to_string(this)
to_string - Formats the user session into a human-readable string
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object with the day and the time range selection
Returns: - The string of the user session
method to_string(this)
to_string - Formats the bar into a human-readable string
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The string of the bar times
method to_string(this)
to_string - Formats the chart session into a human-readable string
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that contains the days and the time range shown in the chart
Returns: - The string of the chart session
method get_size_in_secs(this)
get_size_in_secs - Count the seconds from start to end in the given timeframe
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - The number of seconds inside the time widow for the given timeframe
method get_size_in_secs(this)
get_size_in_secs - Calculate the seconds inside the session
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The number of seconds inside the session
method get_size_in_bars(this)
get_size_in_bars - Count the bars from start to end in the given timeframe
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - The number of bars inside the time widow for the given timeframe
method get_size_in_bars(this)
get_size_in_bars - Calculate the bars inside the session
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The number of bars inside the session for the given timeframe
method from_chart(this)
from_chart - Initialize the session days object from the chart
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object that will hold the day selection
Returns: - The user session object
method from_chart(this)
from_chart - Initialize the session time range object from the chart
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
Returns: - The session time range object
method from_chart(this)
from_chart - Initialize the session object from the chart
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that will hold the days and the time range shown in the chart
Returns: - The chart session object
method to_sess_string(this)
to_sess_string - Formats the session days into a session string with day ids
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object
Returns: - The string of the session day ids
method to_sess_string(this)
to_sess_string - Formats the session time into a session string
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The string of the session time
method to_sess_string(this)
to_sess_string - Formats the session time into a session string
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The string of the session time
method to_sess_string(this)
to_sess_string - Formats the user session into a session string
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object with the day and the time range selection
Returns: - The string of the user session
method to_sess_string(this)
to_sess_string - Formats the chart session into a session string
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that contains the days and the time range shown in the chart
Returns: - The string of the chart session
method from_sess_string(this, sess)
from_sess_string - Initialize the session days object from the session string
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object that will hold the day selection
sess (string) : - The session string part that represents the days
Returns: - The session days object
method from_sess_string(this, sess)
from_sess_string - Initialize the session time object from the session string in exchange timezone (syminfo.timezone)
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object that will hold the hour and minute of the time
sess (string) : - The session string part that represents the time HHmm
Returns: - The session time object
method from_sess_string(this, sess, refTimezone)
from_sess_string - Initialize the session time object from the session string
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object that will hold the hour and minute of the time
sess (string) : - The session string part that represents the time HHmm
refTimezone (simple string) : - The timezone of reference of the 'hour' and 'minute'
Returns: - The session time object
method from_sess_string(this, sess)
from_sess_string - Initialize the session time range object from the session string in exchange timezone (syminfo.timezone)
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
sess (string) : - The session string part that represents the time range HHmm-HHmm
Returns: - The session time range object
method from_sess_string(this, sess, refTimezone)
from_sess_string - Initialize the session time range object from the session string
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
sess (string) : - The session string part that represents the time range HHmm-HHmm
refTimezone (simple string) : - The timezone of reference of the time ranges
Returns: - The session time range object
method from_sess_string(this, sess)
from_sess_string - Initialize the user session object from the session string in exchange timezone (syminfo.timezone)
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object that will hold the day and the time range selection
sess (string) : - The session string that represents the user session HHmm-HHmm,HHmm-HHmm:ddddddd
Returns: - The session time range object
method from_sess_string(this, sess, refTimezone)
from_sess_string - Initialize the user session object from the session string
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object that will hold the day and the time range selection
sess (string) : - The session string that represents the user session HHmm-HHmm,HHmm-HHmm:ddddddd
refTimezone (simple string) : - The timezone of reference of the time ranges
Returns: - The session time range object
method nth_day_after(this, day, n)
nth_day_after - The nth day after the given day that is a session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
day (int) : - The day id of the reference day
n (int) : - The number of days after
Returns: - The day id of the nth session day of the week after the given day
method nth_day_before(this, day, n)
nth_day_before - The nth day before the given day that is a session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
day (int) : - The day id of the reference day
n (int) : - The number of days after
Returns: - The day id of the nth session day of the week before the given day
method next_day(this)
next_day - The next day that is a session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
Returns: - The day id of the next session day of the week
method previous_day(this)
previous_day - The previous day that is session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
Returns: - The day id of the previous session day of the week
method get_sec_in_day(this)
get_sec_in_day - Count the seconds since the start of the day this session time represents
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The number of seconds passed from the start of the day until that session time
method get_ms_in_day(this)
get_ms_in_day - Count the milliseconds since the start of the day this session time represents
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The number of milliseconds passed from the start of the day until that session time
method eq(this, other)
eq - Compare two bars
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
other (Bar) : - The bar object to compare with
Returns: - Whether this bar is equal to the other one
method get_open_time(this)
get_open_time - The open time object
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The open time object
method get_close_time(this)
get_close_time - The close time object
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The close time object
method get_time_range(this)
get_time_range - Get the time range of the bar
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The time range that the bar is in
getBarNow()
getBarNow - Get the current bar object with time and time_close timestamps
Returns: - The current bar
getFixedBarNow()
getFixedBarNow - Get the current bar with fixed width defined by the timeframe. Note: There are case like SPX 15min timeframe where the last session bar is only 10min. This will return a bar of 15 minutes
Returns: - The current bar
method is_in_window(this, win)
is_in_window - Check if the given bar is between the start and end dates of the window
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if it is between the from and to datetimes of the window
win (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - Whether the current bar is inside the datetime window
method is_in_timerange(this, rng)
is_in_timerange - Check if the given bar is inside the session time range
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if it is between the from and to datetimes
rng (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - Whether the bar is inside the session time range and if this part of the next trading day
method is_in_days(this, days)
is_in_days - Check if the given bar is inside the session days
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if its day is a trading day
days (SessionDays) : - The session days object with the day selection
Returns: - Whether the current bar day is inside the session
method is_in_session(this, sess)
is_in_session - Check if the given bar is inside the session as defined by the input params (what "not na(time(timeframe.period, this.to_sess_string()) )" should return if you could write it
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if it is between the from and to datetimes
sess (UserSession) : - The user-defined session object with the day and the time range selection
Returns: - Whether the current time is inside the session
method next_bar(this, offsetBars)
next_bar - Predicts the next bars open and close time based on the charts session
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that contains the days and the time range shown in the chart
offsetBars (simple int) : - The number of bars forward
Returns: - Whether the current time is inside the session
DateTimeWindow
DateTimeWindow - Object that represents a datetime window with a beginning and an end
Fields:
fromDateTime (series int) : - The beginning of the datetime window
toDateTime (series int) : - The end of the datetime window
SessionDays
SessionDays - Object that represent the trading days of the week
Fields:
days (map) : - The map that contains all days of the week and their session flag
SessionTime
SessionTime - Object that represents the time (hour and minutes)
Fields:
hourInDay (series int) : - The hour of the day that ranges from 0 to 24
minuteInHour (series int) : - The minute of the hour that ranges from 0 to 59
minuteInDay (series int) : - The minute of the day that ranges from 0 to 1440. They will be calculated based on hourInDay and minuteInHour when method is called
SessionTimeRange
SessionTimeRange - Object that represents a range that extends from the start to the end time
Fields:
startTime (SessionTime) : - The beginning of the time range
endTime (SessionTime) : - The end of the time range
isOvernight (series bool) : - Whether or not this is an overnight time range
UserSession
UserSession - Object that represents a user-defined session
Fields:
days (SessionDays) : - The map of the user-defined trading days
timeRanges (SessionTimeRange ) : - The array with all time ranges of the user-defined session during the trading days
Bar
Bar - Object that represents the bars' open and close times
Fields:
openUnixTime (series int) : - The open time of the bar
closeUnixTime (series int) : - The close time of the bar
chartDayOfWeek (series int)
ChartSession
ChartSession - Object that represents the default session that is shown in the chart
Fields:
days (SessionDays) : - A map with the trading days shown in the chart
timeRange (SessionTimeRange) : - The time range of the session during a trading day
isFinalized (series bool)
simple pull back TJlv26This is a very simple strategy for swing trade in stock indexes.
this strategy only trade long position, recommend to use this in day chart of sp500 or nas100.
SPX
NDX
Buy condition:
close price above long term SMA(default period 200),close price under short term SMA(default period 10), RSI is under 30(default period 3)
Sell condition:
1:if close price is above short period SMA and current close price is lower than low price of previous bar
2:hit the take profit target(default value 10%)
3:hit the stop loss target(default value 5%)
from author:
As you can see, it's a very simple logic. You only start trading when the price is above long-term moving average, so you can avoid risk by taking positions only in the uptrend. You also use stop-loss, so even in situations where there is a significant downturn, you can minimize losses.
However, it's important to note that this strategy performs well only in markets where long-term (approximately 10 years) upward movements are expected. It often yields disappointing results during prolonged bear markets. This is where each user's fundamental analysis comes into play, as there is no such thing as a perfect trading logic.
Another noteworthy point is that, as seen in the results of back testing, this strategy tends to underperform buy-and-hold in most cases. As mentioned earlier, it's a strategy focused on risk mitigation and starting trades at the most advantageous prices, so I believe that using leverage of 2-4 times can maximize profits. However, trading with leverage is highly risky, so it should be assessed based on each individual's risk tolerance.
Anchored Relative StrengthThe Anchored Relative Strength (RS) Indicator is a tool designed for traders to compare the performance of a selected stock or security against a benchmark index or another security starting from a specific point in time.
Traditional Relative Strength
The traditional RS line is a popular tool used to compare the performance of a stock, typically calculated as the ratio of the stock's price to a benchmark index's price. It helps identify outperformers and underperformers relative to the market or a specific sector.
The Anchored Approach
The Anchored RS line enhances the traditional concept of the RS line by introducing an anchored approach, where calculations begin from a user-defined date. This feature provides the flexibility to start the comparison from a specific historical event, earnings, market peak, trough, or any date significant to the trader's analysis.
Calculating Relative Strength
The RS value is calculated by dividing the close price of the chosen stock by the close price of the comparative symbol (SPX by default). This calculation is performed for each bar since the Anchor Date.
Indicator Features
🔶Custom Start Date
🔶Custom Comparison Symbol
🔶RS Line Moving Average
🔶Comparison Symbol Line
🔶Customize Colors & Appearance
Users can change the anchor date simply by clicking on the indicator and dragging the anchor point.
Bull Flag DetectionThe FuturesGod bull flag indicator aims to identify the occurrence of bull flags.
Bull flags are a popular trading pattern that allows users to gauge long entries into a given market. Flags consist of a pole that is followed by either a downward or sideways consolidation period.
This script can be used on any market but was intended for futures (NQ, ES) trading on the intraday timeframe.
The script does the following:
1. Identifies the occurrence of a flag pole. This is based on a lookback period and percentage threshold decided by the user.
2. Marks the consolidation area after the pole occurrence using swing highs and swing lows.
3. Visually the above is represented by a shaded green area.
4. When a pole is detected, it is marked by a downward off-white triangle. Note that if the percentage threshold is reached several times on the same upward climb, the script will continue to identify points where the threshold for pole detection is met.
5. Also visualized are the 20, 50 and 200 period exponential moving averages. The area between the 20 and 50 EMAs are shaded to provide traders a visual of a possible support area.
Market Internals (TICK, ADD, VOLD, TRIN, VIX)OVERVIEW
This script allows you to perform data transformations on Market Internals, across exchanges, and specify signal parameters, to more easily identify sentiment extremes.
Notable transformations include:
1. Cumulative session values
2. Directional bull-bear Ratios and Percent Differences
3. Data Normalization
4. Noise Reduction
This kind of data interaction is very useful for understanding the relationship between two mutually exclusive metrics, which is the essence of Market Internals: Up vs. Down. Even so, they are not possible with symbol expressions alone. And the kind of symbol expression needed to produce baseline data that can be reliably transformed is opaque to most traders, made worse by the fact that prerequisite symbol expressions themselves are not uniform across symbols. It's very nuanced, and if this last bit was confusing … exactly.
All this to say, rather than forcing that burden onto you, I've baked the baseline symbol expressions into the indicator so: 1) the transform functions consistently ingest the baseline data in the correct format and 2) you don't have to spend time trying to figure it all out. Trading is hard. There's no need to make it harder.
INPUTS
Indicator
Allows you to specify the base Market Internal and Exchange data to use. The list of Market Internals is simplified to their fundamental representation (TICK, ADD, VOLD, TRIN, VIX, ABVD, TKCD), and the list of Exchange data is limited to the most common (NYSE, NASDAQ, All US Stocks). There are also options for basic exchange combinations (Sum or Average of NYSE & NASDAQ).
Mode
Short for "Plot Mode", this is where you specify the bars style (Candles, Bars, Line, Circles, Columns) and the source value (used for single value plots and plot color changes).
Scale
This is the first and second data transformation grouped together. The default is to show the origin data as it might appear on a chart. You can then specify if each bar should retain it's unique value (Bar Value) or be added to a running total (Cumulative). You can also specify if you would like the data to remain unaltered (Raw) or converted to a directional ratio (Ratio) or a percentage (Percent Diff). These options determine the scale of the plot.
Both Ratio and Percent Diff. convert a given symbol into a positive or negative number, where positive numbers are bullish and negative numbers are bearish.
Ratio will divide Bull values by Bear values, then further divide -1 by the quotient if it is less than 1. For example, if "0.5" was the quotient, the Ratio would be "-2".
Percent Diff. subtracts Bear values from Bull values, then divides that difference by the sum of Bull and Bear values multiplied by 100. If a Bull value was "3" and Bear value was "7", the difference would be "-4", the sum would be "10", and the Percent Diff. would be "-40", as the difference is both bearish and 40% of total.
Ratio Norm. Threshold
This is the third data transformation . While quotients can be less than 1, directional ratios are never less than 1. This can lead to barcode-like artifacts as plots transition between positive and negative values, visually suggesting the change is much larger than it actually is. Normalizing the data can resolve this artifact, but undermines the utility of ratios. If, however, only some of the data is normalized, the artifact can be resolved without jeopardizing its contextual usefulness.
The utility of ratios is how quickly they communicate proportional differences. For example, if one side is twice as big as the other, "2" communicates this efficiently. This necessarily means the numerical value of ratios is worth preserving. Also, below a certain threshold, the utility of ratios is diminished. For example, an equal distribution being represented as 0, 1, 1:1, 50/50, etc. are all equally useful. Thus, there is a threshold, above which we want values to be exact, and below which the utility of linear visual continuity is more important. This setting accounts for that threshold.
When this setting is enabled, a ratio will be normalized to 0 when 1:1, scaled linearly toward the specified threshold when greater than 1:1, and then retain its exact value when the threshold is crossed. For example, with a threshold of "2", 1:1 = 0, 1.5:1 = 1, 2:1 = 2, 3:1 = 3, etc.
With all this in mind, most traders will want to set the ratios threshold at a level where accuracy becomes more important than visual continuity. If this level is unknown, "2" is a good baseline.
Reset cumulative total with each new session
Cumulative totals can be retained indefinitely or be reset each session. When enabled, each session has its own cumulative total. When disabled, the cumulative total is maintained indefinitely.
Show Signal Ranges
Because everything in this script is designed to make identifying sentiment extremes easier, an obvious inclusion would be to not only display ranges that are considered extreme for each Market Internal, but to also change the color of the plot when it is within, or beyond, that range. That is exactly what this setting does.
Override Max & Min
While the min-max signal levels have reasonable defaults for each symbol and transformation type, the Override Max and Override Min options allow you to … (wait for it) … override the max … and min … signal levels. This may be useful should you find a different level to be more suitable for your exact configuration.
Reduce Noise
This is the fourth data transformation . While the previous Ratio Norm. Threshold linearly stretches values between a threshold and 0, this setting will exponentially squash values closer to 0 if below the lower signal level.
The purpose of this is to compress data below the signal range, then amplify it as it approaches the signal level. If we are trying to identify extremes (the signal), minimizing values that are not extreme (the noise) can help us visually focus on what matters.
Always keep both signal zones visible
Some traders like to zoom in close to the bars. Others prefer to keep a wider focus. For those that like to zoom in, if both signals were always visible, the bar values can appear squashed and difficult to discern. For those that keep a wider focus, if both signals were not always visible, it's possible to lose context if a signal zone is vertically beyond the pane. This setting allows you to decide which scenario is best for you.
Plot Colors
These define the default color, within signal color, and beyond signal color for Bullish and Bearish directions.
Plot colors should be relative to zero
When enabled, the plot will inherit Bullish colors when above zero and Bearish colors when below zero. When disabled and Directional Colors are enabled (below), the plot will inherit the default Bullish color when rising, and the default Bearish color when falling. Otherwise, the plot will use the default Bullish color for all directions.
Directional colors
When the plot colors should be relative to zero (above), this changes the opacity of a bars color if moving toward zero, where "100" percent is the full value of the original color and "0" is transparent. When the plot colors are NOT relative to zero, the plot will inherit Bullish colors when rising and Bearish colors when falling.
Differentiate RTH from ETH
Market Internal data is typically only available during regular trading hours. When this setting is enabled, the background color of the indicator will change as a reminder that data is not available outside regular trading hours (RTH), if the chart is showing electronic trading hours (ETH).
Show zero line
Similar to always keeping signal zones visible (further up), some traders prefer zooming in while others prefer a wider context. This setting allows you to specify the visibility of the zero line to best suit your trading style.
Linear Regression
Polynomial regressions are great for capturing non-linear patterns in data. TradingView offers a "linear regression curve", which this script is using as a substitute. If you're unfamiliar with either term, think of this like a better moving average.
Symbol
While the Market Internal symbol will display in the status line of the indicator, the status line can be small and require more than a quick glance to read properly. Enabling this setting allows you to specify if / where / how the symbol should display on the indicator to make distinguishing between Market Internals more efficient.
Speaking of symbols, this indicator is designed for, and limited to, the following …
TICK - The TICK subtracts the total number of stocks making a downtick from the total number of stocks making an uptick.
ADD - The Advance Decline Difference subtracts the total number of stocks below yesterdays close from the total number of stocks above yesterdays close.
VOLD - The Volume Difference subtracts the total declining volume from the total advancing volume.
TRIN - The Arms Index (aka. Trading Index) divides the ratio of Advancing Stocks / Volume by the ratio of Declining Stocks / Volume. Given the inverse correlation of this index to market movement, when transforming it to a Ratio or Percent Diff., its values are inverted to preserve the bull-bear sentiment of the transformations.
VIX - The CBOE Volatility Index is derived from SPX index option prices, generating a 30-day forward projection of volatility. Given the inverse correlation of this index to market movement, when transforming it to a Ratio or Percent Diff., its values are inverted and normalized to the sessions first bar to preserve the bull-bear sentiment of the transformations. Note: If you do not have a Cboe CGIF subscription , VIX data will be delayed and plot unexpectedly.
ABVD - The Above VWAP Difference is an unofficial index measuring all stocks above VWAP as a percent difference. For the purposes of this indicator (and brevity), TradingViews PCTABOVEVWAP has has been shortened to simply be ABVD.
TKCD - The Tick Cumulative Difference is an unofficial index that subtracts the total number of market downticks from the total number of market upticks. Where "the TICK" (further up) is a measurement of stocks ticking up and down, TKCD is a measurement of the ticks themselves. For the purposes of this indicator (and brevity), TradingViews UPTKS and DNTKS symbols have been shorted to simply be TKCD.
INSPIRATION
I recently made an indicator automatically identifying / drawing daily percentage levels , based on 4 assumptions. One of these assumptions is about trend days. While trend days do not represent the majority of days, they can have big moves worth understanding, for both capitalization and risk mitigation.
To this end, I discovered:
• Article by Linda Bradford Raschke about Capturing Trend Days.
• Video of Garrett Drinon about Trend Day Trading.
• Videos of Ryan Trost about How To Use ADD and TICK.
• Article by Jason Ruchel about Overview of Key Market Internals.
• Including links to resources outside of TradingView violates the House Rules, but they're not hard to find, if interested.
These discoveries inspired me adopt the underlying symbols in my own trading. I also found myself wanting to make using them easier, the net result being this script.
While coding everything, I also discovered a few symbols I believe warrant serious consideration. Specifically the Percent Above VWAP symbols and the Up Ticks / Down Ticks symbols (referenced as ABVD and TKCD in this indicator, for brevity). I found transforming ABVD or TKCD into a Ratio or Percent Diff. to be an incredibly useful and worthy inclusion.
ABVD is a Market Breadth cousin to Brian Shannon's work, and TKCD is like the 3rd dimension of the TICKs geometry. Enjoy.
Rule of 16 - LowerThe "Rule of 16" is a simple guideline used by traders and investors to estimate the expected annualized volatility of the S&P 500 Index (SPX) based on the level of the CBOE Volatility Index (VIX). The VIX, often referred to as the "fear gauge" or "fear index," measures the market's expectations for future volatility. It is calculated using the implied volatility of a specific set of S&P 500 options.
The Rule of 16 provides a rough approximation of the expected annualized percentage change in the S&P 500 based on the VIX level. Here's how it works:
Find the VIX level: Look up the current value of the VIX. Let's say it's currently at 20.
Apply the Rule of 16: Divide the VIX level by 16. In this example, 20 divided by 16 equals 1.25.
Result: The result of this calculation represents the expected annualized percentage change in the S&P 500. In this case, 1.25% is the estimated annualized volatility.
So, according to the Rule of 16, a VIX level of 20 suggests an expected annualized volatility of approximately 1.25% in the S&P 500.
Here's how you can use the Rule of 16:
Market Sentiment: The VIX is often used as an indicator of market sentiment. When the VIX is high (above its historical average), it suggests that investors expect higher market volatility, indicating potential uncertainty or fear in the markets. Conversely, when the VIX is low, it suggests lower expected volatility and potentially more confidence in the markets.
Risk Management: Traders and investors can use the Rule of 16 to estimate the potential risk associated with their portfolios. For example, if you have a portfolio of S&P 500 stocks and the VIX is at 20, you can use the Rule of 16 to estimate that the annualized volatility of your portfolio may be around 1.25%. This information can help you make decisions about position sizing and risk management.
Option Pricing: Options traders may use the Rule of 16 to get a quick estimate of the implied annualized volatility priced into S&P 500 options. It can help them assess whether options are relatively expensive or cheap based on the VIX level.
It's important to note that the Rule of 16 is a simplification and provides only a rough estimate of expected volatility. Market conditions and the relationship between the VIX and the S&P 500 can change over time. Therefore, it should be used as a guideline rather than a precise forecasting tool. Traders and investors should consider other factors and use additional analysis to make informed decisions.
McClellan Indicators (Oscillator, Summation Index w/ RSI & MACD)Four indicators in one based on the McClellan Oscillator for both the NYSE and Nasdaq exchanges. Designed to be used in conjunction with each other- plot the Oscillator (Osc), Summation Index (MSI), and RSI/MACD of the MSI on both your SPX and Nasdaq chart. Select the exchange and indicator within the settings. These tools are secondary- but when the signals are combined with the action of the index and stocks can be helpful in identifying market turns and trend strength.
McClellan Oscillator--
The Osc is a market breadth tool that uses a fast and slow EMA based on the difference between advancing and declining stocks on the exchange. Used primarily to identify breadth thrusts, divergences, and extremes (oversold/overbought). Plot horizontal levels to see when the market internals are extremely overbought or oversold, and take note of when the Osc is declining while the market is advancing or vice versa.
McClellan Summation Index--
For intermediate trends the MSI is a running total of the Osc which can be used to confirm the strength of a trend, and spot potential reversals. A 10 period ema is included on this indicator, where crossovers can aid in spotting the change in trend of market internals, and divergences can identify when market internals are not in line with the trend. Shading is applied for when the internals are in a bullish or bearish trend.
Two additional indicators are the RSI and MACD of the Summation Index. An overbought or oversold MSI RSI generally indicates a strong trend in the market internals, however you may want to take note when the RSI stalls and begins to "hook" in the opposite direction. This indicator has signals to show when the market internals may be turning and to be on lookout for trend change.
Similarly- the MACD of the MSI identifies the strength of the trend, and crossovers can be used to help spot reversals. Shading is included in this indicator to spot the bullish/bearish trend of internals.
NQ 7 IndexThis is a simple index-like script that adds up the market value of the magnificent 7 (AAPL, MSFT, NVDA, TSLA, META, AMZN, GOOG) and divided by a constant.
The way this works is similar to SPX and NDX, except that it doesn't have any special weighting mechanism.
Average Range LinesThis Average Range Lines indicator identifies high and low price levels based on a chosen time period (day, week, month, etc.) and then uses a simple moving average over the length of the lookback period chosen to project support and resistance levels, otherwise referred to as average range. The calculation of these levels are slightly different than Average True Range and I have found this to be more accurate for intraday price bounces.
Lines are plotted and labeled on the chart based on the following methodology:
+3.0: 3x the average high over the chosen timeframe and lookback period.
+2.5: 2.5x the average high over the chosen timeframe and lookback period.
+2.0: 2x the average high over the chosen timeframe and lookback period.
+1.5: 1.5x the average high over the chosen timeframe and lookback period.
+1.0: The average high over the chosen timeframe and lookback period.
+0.5: One-half the average high over the chosen timeframe and lookback period.
Open: Opening price for the chosen time period.
-0.5: One-half the average low over the chosen timeframe and lookback period.
-1.0: The average low over the chosen timeframe and lookback period.
-1.5: 1.5x the average low over the chosen timeframe and lookback period.
-2.0: 2x the average low over the chosen timeframe and lookback period.
-2.5: 2.5x the average low over the chosen timeframe and lookback period.
-3.0: 3x the average low over the chosen timeframe and lookback period.
Look for price to find support or resistance at these levels for either entries or to take profit. When price crosses the +/- 2.0 or beyond, the likelihood of a reversal is very high, especially if set to weekly and monthly levels.
This indicator can be used/viewed on any timeframe. For intraday trading and viewing on a 15 minute or less timeframe, I recommend using the 4 hour, 1 day, and/or 1 week levels. For swing trading and viewing on a 30 minute or higher timeframe, I recommend using the 1 week, 1 month, or longer timeframes. I don’t believe this would be useful on a 1 hour or less timeframe, but let me know if the comments if you find otherwise.
Based on my testing, recommended lookback periods by timeframe include:
Timeframe: 4 hour; Lookback period: 60 (recommend viewing on a 5 minute or less timeframe)
Timeframe: 1 day; Lookback period: 10 (also check out 25 if your chart doesn’t show good support/resistance at 10 days lookback – I have found 25 to be useful on charts like SPX)
Timeframe: 1 week; Lookback period: 14
Timeframe: 1 month; Lookback period: 10
The line style and colors are all editable. You can apply a global coloring scheme in the event you want to add this indicator to your chart multiple times with different time frames like I do for the weekly and monthly.
I appreciate your comments/feedback on this indicator to improve. Also let me know if you find this useful, and what settings/ticker you find it works best with!
Also check out my profile for more indicators!
Global Liquidity IndexThe Global Liquidity Index offers a consolidated view of all major central bank balance sheets from around the world. For consistency and ease of comparison, all values are converted to USD using their relevant forex rates and are expressed in trillions. The indicator incorporates specific US accounts such as the Treasury General Account (TGA) and Reverse Repurchase Agreements (RRP), both of which are subtracted from the Federal Reserve's balance sheet to give a more nuanced view of US liquidity. Users have the flexibility to enable or disable specific central banks and special accounts based on their preference. Only central banks that both don’t engage in currency pegging and have reliable data available from late 2007 onwards are included in this aggregated liquidity model.
Global Liquidity Index = Federal Reserve System (FED) - Treasury General Account (TGA) - Reverse Repurchase Agreements (RRP) + European Central Bank (ECB) + People's Bank of China (PBC) + Bank of Japan (BOJ) + Bank of England (BOE) + Bank of Canada (BOC) + Reserve Bank of Australia (RBA) + Reserve Bank of India (RBI) + Swiss National Bank (SNB) + Central Bank of the Russian Federation (CBR) + Central Bank of Brazil (BCB) + Bank of Korea (BOK) + Reserve Bank of New Zealand (RBNZ) + Sweden's Central Bank (Riksbank) + Central Bank of Malaysia (BNM).
This tool is beneficial for anyone seeking to get a snapshot of global liquidity to interpret macroeconomic trends. By examining these balance sheets, users can deduce policy trajectories and evaluate the global economic climate. It also offers insights into asset pricing and assists investors in making informed capital allocation decisions. Historically, riskier assets, such as small caps and cryptocurrencies, have typically performed well during periods of rising liquidity. Thus, it may be prudent for investors to avoid additional risk unless there's a consistent upward trend in global liquidity.