Macros ICT KillZones [TradingFinder] Times & Price Trading Setup🔵 Introduction
ICT Macros, developed by Michael Huddleston, also known as ICT (Inner Circle Trader), is a powerful trading tool designed to help traders identify the best trading opportunities during key time intervals like the London and New York trading sessions.
For traders aiming to capitalize on market volatility, liquidity shifts, and Fair Value Gaps (FVG), understanding and using these critical time zones can significantly improve trading outcomes.
In today’s highly competitive financial markets, identifying the moments when the market is seeking buy-side or sell-side liquidity, or filling price imbalances, is essential for maximizing profitability.
The ICT Macros indicator is built on the renowned ICT time and price theory, which enables traders to track and leverage key market dynamics such as breaks of highs and lows, imbalances, and liquidity hunts.
This indicator automatically detects crucial market times and optimizes strategies for traders by highlighting the specific moments when price movements are most likely to occur. A standout feature of ICT Macros is its automatic adjustment for Daylight Saving Time (DST), ensuring that traders remain synced with the correct session times.
This means you can rely on accurate market timing without the need for manual updates, allowing you to focus on capturing profitable trades during critical timeframes.
🔵 How to Use
The ICT Macros indicator helps you capitalize on trading opportunities during key market moments, particularly when the market is breaking highs or lows, filling Fair Value Gaps (FVG), or addressing imbalances. This indicator is particularly beneficial for traders who seek to identify liquidity, market volatility, and price imbalances.
🟣 Sessions
London Sessions
London Macro 1 :
UTC Time : 06:33 to 07:00
New York Time : 02:33 to 03:00
London Macro 2 :
UTC Time : 08:03 to 08:30
New York Time : 04:03 to 04:30
New York Sessions
New York Macro AM 1 :
UTC Time : 12:50 to 13:10
New York Time : 08:50 to 09:10
New York Macro AM 2 :
UTC Time : 13:50 to 14:10
New York Time : 09:50 to 10:10
New York Macro AM 3 :
UTC Time : 14:50 to 15:10
New York Time : 10:50 to 11:10
New York Lunch Macro :
UTC Time : 15:50 to 16:10
New York Time : 11:50 to 12:10
New York PM Macro :
UTC Time : 17:10 to 17:40
New York Time : 13:10 to 13:40
New York Last Hour Macro :
UTC Time : 19:15 to 19:45
New York Time : 15:15 to 15:45
These time intervals adjust automatically based on Daylight Saving Time (DST), helping traders to enter or exit trades during key market moments when price volatility is high.
Below are the main applications of this tool and how to incorporate it into your trading strategies :
🟣 Combining ICT Macros with Trading Strategies
The ICT Macros indicator can easily be used in conjunction with various trading strategies. Two well-known strategies that can be combined with this indicator include:
ICT 2022 Trading Model : This model is designed based on identifying market liquidity, structural price changes, and Fair Value Gaps (FVG). By using ICT Macros, you can identify the key time intervals when the market is seeking liquidity, filling imbalances, or breaking through important highs and lows, allowing you to enter or exit trades at the right moment.
Silver Bullet Strategy : This strategy, which is built around liquidity hunting and rapid price movements, can work more accurately with the help of ICT Macros. The indicator pinpoints precise liquidity times, helping traders take advantage of market shifts caused by filling Fair Value Gaps or correcting imbalances.
🟣 Capitalizing on Price Volatility During Key Times
Large market algorithms often seek liquidity or fill Fair Value Gaps (FVG) during the intervals marked by ICT Macros. These periods are when price volatility increases, and traders can use these moments to enter or exit trades.
For example, if sell-side liquidity is drained and the market fills an imbalance, the price might move toward buy-side liquidity. By identifying these moments, which may also involve breaking a previous high or low, you can leverage rapid market fluctuations to your advantage.
🟣 Identifying Liquidity and Price Imbalances
One of the important uses of ICT Macros is identifying points where the market is seeking liquidity and correcting imbalances. You can determine high or low liquidity levels in the market before each ICT Macro, as well as Fair Value Gaps (FVG) and price imbalances that need to be filled, using them to adjust your trading strategy. This capability allows you to manage trades based on liquidity shifts or imbalance corrections without needing a bias toward a specific direction.
🔵 Settings
The ICT Macros indicator offers various customization options, allowing users to tailor it to their specific needs. Below are the main settings:
Time Zone Mode : You can select one of the following options to define how time is displayed:
UTC : For traders who need to work with Universal Time.
Session Local Time : The local time corresponding to the London or New York markets.
Your Time Zone : You can specify your own time zone (e.g., "UTC-4:00").
Your Time Zone : If you choose "Your Time Zone," you can set your specific time zone. By default, this is set to UTC-4:00.
Show Range Time : This option allows you to display the time range of each session on the chart. If enabled, the exact start and end times of each interval are shown.
Show or Hide Time Ranges : Toggle on/off for visual clarity depending on user preference.
Custom Colors : Set distinct colors for each session, allowing users to personalize their chart based on their trading style.These settings allow you to adjust the key time intervals of each trading session to your preference and customize the time format according to your own needs.
🔵 Conclusion
The ICT Macros indicator is a powerful tool for traders, helping them to identify key time intervals where the market seeks liquidity or fills Fair Value Gaps (FVG), corrects imbalances, and breaks highs or lows. This tool is especially valuable for traders using liquidity-based strategies such as ICT 2022 or Silver Bullet.
One of the key features of this indicator is its support for Daylight Saving Time (DST), ensuring you are always in sync with the correct trading session timings without manual adjustments. This is particularly beneficial for traders operating across different time zones.
With ICT Macros, you can capitalize on crucial market opportunities during sensitive times, take advantage of imbalances, and enhance your trading strategies based on market volatility, liquidity shifts, and Fair Value Gaps.
Cari skrip untuk "北证50+股票+新浪财经"
Multiple SMA, EMA, and VWAP CrossoversMultiple SMA, EMA, and VWAP Crossovers with Alerts
Overview : The "Multiple SMA, EMA, and VWAP Crossovers" script is designed for traders who want to monitor various simple moving averages (SMAs), exponential moving averages (EMAs), and the volume-weighted average price (VWAP) to identify potential buy and sell opportunities. This script allows you to visualize key moving averages on your chart and create custom alerts for specific crossover events.
Detail s: This script plots the following moving averages:
Simple Moving Averages (SMA): 5, 10, 20, 50, 100, 200, and 325 periods
Exponential Moving Average (EMA): 9 periods
Volume-Weighted Average Price (VWAP)
It includes options to display these moving averages and set alerts for their crossovers.
Available Crossovers:
20/50 SMA, 20/100 SMA, 20/200 SMA, 20/325 SMA
50/100 SMA, 50/200 SMA, 50/325 SMA
100/200 SMA, 100/325 SMA
200/325 SMA
VWAP/20 SMA, VWAP/50 SMA, VWAP/100 SMA, VWAP/200 SMA, VWAP/325 SMA
Optional Lines to Add to the Chart:
9 EMA, 5 SMA, 10 SMA, 20 SMA, 50 SMA, 100 SMA, 200 SMA, 325 SMA, VWAP
How to Use:
Enable Indicators: Use the input options to select which SMAs, EMA, and VWAP you want to display on your chart.
Set Alerts: Choose the specific crossover events you want to monitor. For example, you can set an alert for the 20/50 SMA crossover or the VWAP/100 SMA crossover.
Monitor the Chart: The script will plot the selected moving averages on your chart. When a selected crossover event occurs, an alert will be triggered, notifying you of the potential trade opportunity.
Usage Tips:
Trending Market: Use the buy and sell alerts in trending markets where the moving averages can help confirm the direction of the trend.
Key Support and Resistance Levels: Combine crossover alerts with key support and resistance levels for more reliable trading signals.
Volume Confirmation: Ensure there is sufficient volume to support the crossover signals, indicating stronger momentum behind the move.
When NOT to Use Buy and Sell Alerts:
Low Volume: Avoid using buy and sell alerts during periods of low trading volume, as the signals may be less reliable.
Market Noise: Be cautious in highly volatile markets where frequent crossovers might generate false signals.
Sideways Market: In a sideways or range-bound market, crossover signals can result in multiple whipsaws, leading to potential losses.
Why Use This Script? This script provides a comprehensive tool for traders to monitor multiple moving averages and VWAP crossovers efficiently. It allows you to customize alerts based on your trading strategy and helps you make informed decisions by visualizing key technical indicators on your chart.
Legal Disclaimer: The information provided by this script is for educational and informational purposes only and should not be considered financial advice. The developer of this script is not responsible for any financial losses incurred from using this script.
Gold Scalping Strategy with Precise EntriesThe Gold Scalping Strategy with Precise Entries is designed to take advantage of short-term price movements in the gold market (XAU/USD). This strategy uses a combination of technical indicators and chart patterns to identify precise buy and sell opportunities during times of consolidation and trend continuation.
Key Elements of the Strategy:
Exponential Moving Averages (EMAs):
50 EMA: Used as the shorter-term moving average to detect the recent price trend.
200 EMA: Used as the longer-term moving average to determine the overall market trend.
Trend Identification:
A bullish trend is identified when the 50 EMA is above the 200 EMA.
A bearish trend is identified when the 50 EMA is below the 200 EMA.
Average True Range (ATR):
ATR (14) is used to calculate the market's volatility and to set a dynamic stop loss based on recent price movements. Higher ATR values indicate higher volatility.
ATR helps define a suitable stop-loss distance from the entry point.
Relative Strength Index (RSI):
RSI (14) is used as a momentum oscillator to detect overbought or oversold conditions.
However, in this strategy, the RSI is primarily used as a consolidation filter to look for neutral zones (between 45 and 55), which may indicate a potential breakout or trend continuation after a consolidation phase.
Engulfing Patterns:
Bullish Engulfing: A bullish signal is generated when the current candle fully engulfs the previous bearish candle, indicating potential upward momentum.
Bearish Engulfing: A bearish signal is generated when the current candle fully engulfs the previous bullish candle, signaling potential downward momentum.
Precise Entry Conditions:
Long (Buy):
The 50 EMA is above the 200 EMA (bullish trend).
The RSI is between 45 and 55 (neutral/consolidation zone).
A bullish engulfing pattern occurs.
The price closes above the 50 EMA.
Short (Sell):
The 50 EMA is below the 200 EMA (bearish trend).
The RSI is between 45 and 55 (neutral/consolidation zone).
A bearish engulfing pattern occurs.
The price closes below the 50 EMA.
Take Profit and Stop Loss:
Take Profit: A fixed 20-pip target (where 1 pip = 0.10 movement in gold) is used for each trade.
Stop Loss: The stop-loss is dynamically set based on the ATR, ensuring that it adapts to current market volatility.
Visual Signals:
Buy and sell signals are visually plotted on the chart using green and red labels, indicating precise points of entry.
Advantages of This Strategy:
Trend Alignment: The strategy ensures that trades are taken in the direction of the overall trend, as indicated by the 50 and 200 EMAs.
Volatility Adaptation: The use of ATR allows the stop loss to adapt to the current market conditions, reducing the risk of premature exits in volatile markets.
Precise Entries: The combination of engulfing patterns and the neutral RSI zone provides a high-probability entry signal that captures momentum after consolidation.
Quick Scalping: With a fixed 20-pip profit target, the strategy is designed to capture small price movements quickly, which is ideal for scalping.
This strategy can be applied to lower timeframes (such as 1-minute, 5-minute, or 15-minute charts) for frequent trade opportunities in gold trading, making it suitable for day traders or scalpers. However, proper risk management should always be used due to the inherent volatility of gold.
IBD PowerTrendThis IBD PowerTrend indicator is designed to help traders identify strong market uptrends based on the IBD Market School's Power Trend methodology. It is intended to be added to daily charts on major indexes.
Concept and Methodology
The IBD PowerTrend helps traders identify strong market uptrends. Markets generally exist in three states: uptrends, downtrends, and rangebound motion. This methodology focuses on:
Downtrends: Stay out of the market.
Rangebound markets: Often frustrating, best avoided.
Uptrends: Identify the strongest uptrends early.
This indicator uses IBD's research on historical uptrends to help traders get in and stay in during robust market phases.
How It Works
A PowerTrend starts when the following four conditions are met simultaneously on a major index:
10-Day Low Above 21-Day EMA : The market's low must be above the 21-day exponential moving average (EMA) for at least 10 consecutive days.
21-Day EMA Above 50-Day SMA : The 21-day EMA must be above the 50-day simple moving average (SMA) for at least five consecutive days.
50-Day SMA Uptrend : The 50-day SMA must be in an uptrend (one day is sufficient).
Market Closes Up : The market must close higher than the previous day's close.
A PowerTrend typically ends when the 21-day EMA crosses back below the 50-day SMA. However, there are rare cases where a PowerTrend can end early due to a circuit breaker or a follow-through day failure. In this script, a circuit breaker is defined as a break of the 50-day line and being more than 10% below recent highs (interpreted as three months).
How to Use
When the PowerTrend is active, the indicator will plot green circles, signaling a strong market uptrend. During these periods, traders might observe opportunities in growth stocks breaking out of sound bases and consider the use of margin. Conversely, during downtrends, the indicator suggests a more defensive approach.
It is recommended to use on daily timeframe.
Chart Description
Main Chart:
- EMA 21 (blue): The 21-day exponential moving average.
- SMA 50 (red): The 50-day simple moving average.
First Panel:
- IBD PowerTrend Indicator: Plots the PowerTrend status with green circles indicating an active PowerTrend.
Second Panel:
- Volume Bars
Machine Learning: MFI Heat Map [YinYangAlgorithms]Overview:
MFI Heat Maps are a visually appealing way to display the values of 29 different MFIs at the same time while being able to make sense of it. Each plot within the Indicator represents a different MFI value. The higher you get up, the longer the length that was used for this MFI. This Indicator also features the use of Machine Learning to help balance the MFI levels. It doesn’t solely rely upon Machine Learning but instead incorporates a growing length MFI averaged with the Machine Learning MFI at any given index.
For instance, say we are calculating the 10th plot from the bottom, the MFI would be an average of:
MFI(source, 11)
Machine Learning MFI at Index of 10
We do it this way as they both help smooth each other out without relying solely on just one calculation method.
Due to plot limitations, you are capped at 28 Plot Amounts within this indicator, but that is still quite a bit of information you can glean from a Heat Map.
The Machine Learning used in this indicator is of the K-Nearest Neighbor (KNN). It uses a Fast and Slow MFI calculation then sorts through them over Machine Learning Length and calculates the differences between them. It then slices off KNN length to create our Max/Min Distances allotted. It adds the average between Fast and Slow MFIs to a Viable Distances array if their distances are within the KNN Min/Max distance. It then averages all distances in the Viable Distances array and returns the result.
The result of the KNN Function is saved to another ML Data array whose length is that of Plot Amount (Heat Map Size). This way each Index of the ML Data array can be indexed according to the Heat Map Size.
The Average of the ML Data array is the MFI line (white) that you’ll see plotted on the Indicator. There is also the SMA of the MFI Average (orange) which is likewise plotted. These plots allow you to visualize where the ML MFI is sitting and can potentially be useful for seeing when the MFI Average and SMA cross over and under each other.
We’ve heard many people talk highly of RSI, but sadly not too many even refer to MFI. MFI oftentimes may be overlooked, especially with new traders who may not even know what it is. Essentially MFI is an RSI but it also incorporates Volume into its calculations, which in our opinion leads to a more accurate reading; afterall, what is price movement without Volume.
Tutorial:
You may be thinking, this Indicator looks appealing to the eye, but how do I benefit from it trading wise?
Before we get into our visual examples, let's talk briefly about what makes Heat Maps in general a useful tool for trading. Heat Maps give us the ability to visualize and understand lots of data while removing the clutter. We can understand the data of 29 different MFIs without having to look at and decipher 29 different MFI plots. When you overlay too many MFI lines on top of each other, they can be very difficult to read and oftentimes end up actually hindering your Technical Analysis. For this reason, we have a simple solution to this problem; Heat Maps. This MFI Heat Map allows you to easily know (in a relative %) what the MFI level is for varying lengths. For Instance, the First (bottom) plot indexes an MFI of (K(0) (loop of Plot Amount) + Smoothing Length (default 1)) = 1. Since this is indexing (usually) a very low length, it will change much quicker. Whereas the Last (top) plot indexes an MFI of (K(27) (loop of Plot Amount) + Smoothing Length (default 1)) = 28. This is indexing a much higher length of MFI which results in the MFI the higher you go up in the Heat Map to move much slower.
Heat Maps give us the ability to see changes happening over multiple MFIs at the same time, which can be very useful for seeing shifts in MFI / Momentum. Remember, MFI incorporates Volume, so even if the price goes up a lot, if there was low volume, the MFI won’t move as much as an RSI would. However, likewise, if there is high volume but low price movement, the MFI will move slightly more than the RSI.
Heat Maps change color based on their MFI level. If the MFI is >= 90 it is HOT (red), if the MFI <= 9 it is COLD (teal, think of ICE). Green represents an MFI of 50-59 and Dark Blue represents an MFI of 40-49. Green and Dark blue are the most common colors as all the others are more ‘Extreme’ MFI levels.
Okay, time to get to the Examples :
Since there is so much going on in Heat Maps, we’ve decided to focus this tutorial to this specific area and talk about individual locations before talking about it as a whole.
If you refer to the example above where there are 2 white circles; these white circles are highlighting a key location you’ll be wanting to identify within your Heat Maps, many things are happening here:
The MFI crossed over the SMA (bullish).
The Heat Map started changing from mid/dark Blue (30-50 MFI) to Green (50-59 MFI) around the midline (the 50% dashed like).
The Lower levels of the Heat Map are turning Yellow/Orange/Red (60-100 MFI).
The Upper Levels of the Heat Map are still Light Blue - Green (10-50 MFI).
The 4 Key points above, all point towards potential Bullish Momentum changes. You’re likely wondering, but why? Let's discuss about each one in more specific detail:
1. The MFI crossed over the SMA (bullish): What this tells us is that the current MFI Average is now greater than its average over the last (default) 16 bars. This means there's been a large amount of Money Flow (Price and Volume) recently (subjectively based on the last (default) 16 average). This is one of the leading Bullish / Bearish signals you will see within this Indicator. You can enable Signals within the Settings and/or even add Alerts for when these crossings occur.
2. The Heat Map started changing from mid/dark Blue (30-50 MFI) to Green (50-59 MFI) around the midline (the 50% dashed like): This shows us that the index’s in the mid (if using all 28 heat map plots it would be at 14) has already received some of this momentum change. If you look at the second white circle (right), you’ll also notice the higher MFI plot indexes are also green. This is because since their length is long they still have some momentum and strength from the first white circle (left). Just because the first white circle failed in its bullish push, doesn’t mean it didn’t achieve momentum that would later on help to push the price up.
3. The Lower levels of the Heat Map are turning Yellow/Orange/Red (60-100 MFI): It occurred somewhat in the left white circle, but mainly in the right white circle. This shows us the MFI is very high on the lower lengths, this may lead to the current, middle and higher length MFIs following suit soon. Remember it has to work its way up, the higher levels can’t go red unless the lower levels go red first and the higher levels can also lag quite a bit behind and take awhile to catch up, this is normal, expected and meant to happen. Vice versa is also true with getting higher levels to go cold (light teal (think of ICE)).
4. The Upper Levels of the Heat Map are still Light Blue - Green (10-50 MFI): You might think at first that this is a bad thing, but it's not! Remember you want to be Fearful when others are Greedy and Greedy when others are Fearful! You don’t want to buy when the higher levels have a high MFI, you want to buy when you see the momentum pushing up in the lower MFI levels (getting yellow/orange/red in the low levels) while it is still Cold in the higher levels (BLUE OR GREEN, nothing higher than green as it is already slightly too high). There will be many times that it is Yellow or possibly Orange in the high levels and the bullish push still happens, but this is much more risky! The key to trading is to minimize risks while maximizing potential.
Hopefully now you’re getting an idea of how to spot potential bullish momentum changes, but what about bearish momentum changes? Technically they are the exact opposite, so we don’t need to go into as much detail, but lets still take a look at a few examples:
In the example above we marked the 3 times where it was displaying overly bullish characteristics. We marked the bullish momentum occurring with arrows. If you look closely at the start of the arrow to where it finishes, you’ll notice how the heat (HOT)(RED) works its way up from the lower levels to the higher levels. We then see the MFI to SMA cross under. In all 3 of these examples the heat made it all the way to the top of the chart. These are all very bearish signals that represent a bearish momentum movement that may occur soon.
Also, please note, the level the MFI is at DOES matter! That line isn’t there simply for you to see when there are crosses over and under. The MFI is considered to be Overbought when it is greater than 70 (the upper white dashed line, it is just formatted to be on a different scale cause there are 28 plots, but it represents 70). The MFI is considered to be Oversold when it is less than 30 (the lower white dashed line).
If we look to the left a little here where a big drop in price occurred shortly after our MFI and SMA crossed, would we have been able to identify it using the Heat Maps? Likely, No. There was some color change in the lower levels a few bars prior that went yellow/orange/red but before this cross happened they all went back to Dark Blue. In the middle section when the cross happened it was only Green and Yellow and in the upper section we are Blue. This would be a very risky trade to go on as the only real Bearish Indication was the MFI to SMA cross under. Remember, you want to reduce risk, you don’t want to simply trade on everytime the MFI and SMA cross each other or you’ll be getting yourself into many risky trades based on false signals.
Based on what you’ve learned above, can you see the signs that are indicating where this white circle may have potential for a bullish momentum change?
Now that we are more zoomed in, you may also be noticing there are colors to the price bars. This can be disabled in the settings, but just so you know what they mean, let’s zoom in a little more and talk about it.
We’ve condensed the Indicator a bit so you can see the bars better here. The colors that are displayed on these bars are the Heat Map value for your MFI (the white line in the Indicator). This way you can better see when the Price is Hot and Cold. As you may see while looking, the colors generally go from cold to hot when bullish momentum is happening and hot to cold when bearish momentum is happening. We don’t recommend solely looking at the bars as indicators to MFI momentum change, as seeing the Heat Map will give you much more data; however it can be nice to see the Heat Map projected on the bars rather than trying to eyeball it yourself or hover over each bar specifically to see their levels.
We will conclude our Tutorial here. Hopefully this has given you some insight to how useful Heat Maps can be and why it works well with a Machine Learning (KNN) Model applied to the MFI.
PLEASE NOTE: You can adjust the line width for the Heat Map within the settings. If you condense the Indicator a lot or have a small screen, likely use a length of 1-2. If you have it stretched out or a large screen, a length of 2-3 will work nice. You just don’t want to have the lines overlapping or it defeats the purpose of a Heat Map. Also, the bigger the linewidth, generally you’ll want to increase the Transparency within the Settings also as it can get quite bright and hurt your eyes over time.
Settings:
MFI:
Show MFI and SMA Crossing Signals: MFI and SMA Crossing is one of the leading Bullish and Bearish Signals in this Indicator. You can also add alerts for these signals.
Plot Amount: How many plots are used in this Heat Map. (2 - 28).
Source: The Source to use in all MFI calculations.
Smooth Initial MFI Length: How much to smooth the Fast and Slow MFI calculation by. 1 = No smoothing.
MFI SMA Length: What length we smooth the MFI Average over to get our MFI SMA.
Machine Learning:
Average MFI data by adding a lookback to the Source: While populating our Heat Map with the MFI's, should use use the Source each MFI Length increase or should we also lookback a Source each MFI Length Increase.
KNN Distance Requirement: To be a valid KNN, it needs to abide by a Distance calculation. Generally only Max is used, but you can change it if it suits your trading style better.
Machine Learning Length: How much ML data should we store? The longer the length generally the smoother the result; which may not be as accurate for something like a Heat Map, so keeping this relatively low may lead to more accurate results.
KNN Length: How many KNN are used in the slice to calculate max/min distance allowed.
Fast Length: Fast MFI length used in KNN to calculate distances by comparing its distance with the Slow MFI Length.
Slow Length: Slow MFI length used in KNN to calculate distances by comparing its distance with the Fast MFI Length.
Smoothing Length: When populating our Heat Map, at what length do we start our MFI calculations with (A Higher value with result in a slower and more smoothed MFI / Heat Map).
Colors:
Change Bar Color: Change bar colors to MFI Avg Color.
Heat Map Transparency: If there isn't any transparency it can be a little hard on the eyes. The Greater the Line Width, generally the more transparency you'll want for your eyes.
Line Width: Set how wide the Heat Map lines are
MFI 90-100 Color: Color when the MFI is between these levels.
MFI 80-89 Color: Color when the MFI is between these levels.
MFI 70-79 Color: Color when the MFI is between these levels.
MFI 60-69 Color: Color when the MFI is between these levels.
MFI 50-59 Color: Color when the MFI is between these levels.
MFI 40-49 Color: Color when the MFI is between these levels.
MFI 30-39 Color: Color when the MFI is between these levels.
MFI 20-29 Color: Color when the MFI is between these levels.
MFI 10-19 Color: Color when the MFI is between these levels.
MFI 0-100 Color: Color when the MFI is between these levels.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
RSI Exponential Smoothing (Expo)█ Background information
The Relative Strength Index (RSI) and the Exponential Moving Average (EMA) are two popular indicators. Traders use these indicators to understand market trends and predict future price changes. However, traders often wonder which indicator is better: RSI or EMA.
What if these indicators give similar results? To find out, we wanted to study the relationship between RSI and EMA. We focused on a hypothesis: when the RSI goes above 50, it might be similar to the price crossing above a certain length of EMA. Similarly, when the RSI goes below 50, it might be similar to the price crossing below a certain length of EMA.
Our goal was simple: to figure out if there is any connection between RSI and EMA.
Conclusion: Yes, it seems that there is a correlation between RSI and EMA, and this indicator clearly displays that relationship. Read more about the study here:
█ Overview of the indicator
The RSI Exponential Smoothing indicator displays RSI levels with clear overbought and oversold zones, shown as easy-to-understand moving averages, and the RSI 50 line as an EMA. Another excellent feature is the added FIB levels. To activate, open the settings and click on "FIB Bands." These levels act as short-term support and resistance levels which can be used for scalping.
█ Benefits of using this indicator instead of regular RSI
The findings about the Relative Strength Index (RSI) and the Exponential Moving Average (EMA) highlight that both indicators are equally accurate (when it comes to crossings), meaning traders can choose either one without compromising accuracy. This empowers traders to pick the indicator that suits their personal preferences and trading style.
█ How it works
Crossings over/under the value of 50
The EMA line in the indicator acts as the corresponding 50 line in the RSI. When the RSI crosses the value 50 equals when Close crosses the EMA line.
Bouncess from the value 50
In this example, we can see that the EMA line on the chart acts as support/resistance equals when RSI rejects the 50 level.
Overbought and Oversold
The indicator comes with overbought and oversold bands equal when RSI becomes overbought or oversold.
█ How to use
This visual representation helps traders to apply RSI strategies directly on the price chart, potentially making RSI trading easier for traders.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
NOMMO AUTOMATE🖖 Hi all!
Check out my NOMMO AUTOMATE indicator for trend detection, trend change points, hedging opposite trend impulses.
What the script do:
☑️ Detecting local and global trends and trend change points, detecting opposite to current trend impulses.
How the script do it:
☑️ The indicator compares RSI indicators on chosen by user Trend TF1 and Trend TF2 and marks trend change points.
☑️ The indicator compares different length HMA indicators on chosen by user Hedge TF to detect opposite to current trend impulses.
How to use it:
☑️ There are 4 states in the indicator: Long, Short, Flat, Hedge, marked by corresponding (adjustable) color zones, where Long = uptrend, Short = downtrend, Flat = sideways movement, Hedge = possible impulse in the opposite trend direction.
☑️ Select Trend TF1 and Trend TF2 and RSI length to determine the trend, depending on how a big picture you want to see, the more major TF you choose the more global picture of the trend change you get.
☑️ Select Hedge TF to determine the possible impulses opposite to the current trend (does not work in detected Flat movement).
☑️ For each trading pair you need to try individual settings, the default settings I use for BTC swing trading, to reduce the noise level of hedging put Hedge TF the same as the smaller Trend TF.
☑️ Try different settings, experiment and you will find the most suitable settings for your trading pair.
How magic works:
☑️ RSI Trend TF1 > 50 + RSI Trend TF2 > 50 = Long
☑️ RSI Trend TF1 > 50 + RSI Trend TF2 < 50 = Flat
☑️ RSI Trend TF1 < 50 + RSI Trend TF2 > 50 = Flat
☑️ RSI Trend TF1 < 50 + RSI Trend TF2 < 50 = Short
☑️ Long + Hedge TF (HMA 10 < HMA 70 < HMA 200) = Hedge
☑️ Short + Hedge TF (HMA 10 > HMA 70 > HMA 200) = Hedge
For example:
☑️ Try Trend TF1 = 1D, Trend TF2 = 1D and Hedge TF = 1D, with RSI period = 21, to check mid-term trend on BTCUSD
May the trade force be with you.
Any Oscillator Underlay [TTF]We are proud to release a new indicator that has been a while in the making - the Any Oscillator Underlay (AOU) !
Note: There is a lot to discuss regarding this indicator, including its intent and some of how it operates, so please be sure to read this entire description before using this indicator to help ensure you understand both the intent and some limitations with this tool.
Our intent for building this indicator was to accomplish the following:
Combine all of the oscillators that we like to use into a single indicator
Take up a bit less screen space for the underlay indicators for strategies that utilize multiple oscillators
Provide a tool for newer traders to be able to leverage multiple oscillators in a single indicator
Features:
Includes 8 separate, fully-functional indicators combined into one
Ability to easily enable/disable and configure each included indicator independently
Clearly named plots to support user customization of color and styling, as well as manual creation of alerts
Ability to customize sub-indicator title position and color
Ability to customize sub-indicator divider lines style and color
Indicators that are included in this initial release:
TSI
2x RSIs (dubbed the Twin RSI )
Stochastic RSI
Stochastic
Ultimate Oscillator
Awesome Oscillator
MACD
Outback RSI (Color-coding only)
Quick note on OB/OS:
Before we get into covering each included indicator, we first need to cover a core concept for how we're defining OB and OS levels. To help illustrate this, we will use the TSI as an example.
The TSI by default has a mid-point of 0 and a range of -100 to 100. As a result, a common practice is to place lines on the -30 and +30 levels to represent OS and OB zones, respectively. Most people tend to view these levels as distance from the edges/outer bounds or as absolute levels, but we feel a more way to frame the OB/OS concept is to instead define it as distance ("offset") from the mid-line. In keeping with the -30 and +30 levels in our example, the offset in this case would be "30".
Taking this a step further, let's say we decided we wanted an offset of 25. Since the mid-point is 0, we'd then calculate the OB level as 0 + 25 (+25), and the OS level as 0 - 25 (-25).
Now that we've covered the concept of how we approach defining OB and OS levels (based on offset/distance from the mid-line), and since we did apply some transformations, rescaling, and/or repositioning to all of the indicators noted above, we are going to discuss each component indicator to detail both how it was modified from the original to fit the stacked-indicator model, as well as the various major components that the indicator contains.
TSI:
This indicator contains the following major elements:
TSI and TSI Signal Line
Color-coded fill for the TSI/TSI Signal lines
Moving Average for the TSI
TSI Histogram
Mid-line and OB/OS lines
Default TSI fill color coding:
Green : TSI is above the signal line
Red : TSI is below the signal line
Note: The TSI traditionally has a range of -100 to +100 with a mid-point of 0 (range of 200). To fit into our stacking model, we first shrunk the range to 100 (-50 to +50 - cut it in half), then repositioned it to have a mid-point of 50. Since this is the "bottom" of our indicator-stack, no additional repositioning is necessary.
Twin RSI:
This indicator contains the following major elements:
Fast RSI (useful if you want to leverage 2x RSIs as it makes it easier to see the overlaps and crosses - can be disabled if desired)
Slow RSI (primary RSI)
Color-coded fill for the Fast/Slow RSI lines (if Fast RSI is enabled and configured)
Moving Average for the Slow RSI
Mid-line and OB/OS lines
Default Twin RSI fill color coding:
Dark Red : Fast RSI below Slow RSI and Slow RSI below Slow RSI MA
Light Red : Fast RSI below Slow RSI and Slow RSI above Slow RSI MA
Dark Green : Fast RSI above Slow RSI and Slow RSI below Slow RSI MA
Light Green : Fast RSI above Slow RSI and Slow RSI above Slow RSI MA
Note: The RSI naturally has a range of 0 to 100 with a mid-point of 50, so no rescaling or transformation is done on this indicator. The only manipulation done is to properly position it in the indicator-stack based on which other indicators are also enabled.
Stochastic and Stochastic RSI:
These indicators contain the following major elements:
Configurable lengths for the RSI (for the Stochastic RSI only), K, and D values
Configurable base price source
Mid-line and OB/OS lines
Note: The Stochastic and Stochastic RSI both have a normal range of 0 to 100 with a mid-point of 50, so no rescaling or transformations are done on either of these indicators. The only manipulation done is to properly position it in the indicator-stack based on which other indicators are also enabled.
Ultimate Oscillator (UO):
This indicator contains the following major elements:
Configurable lengths for the Fast, Middle, and Slow BP/TR components
Mid-line and OB/OS lines
Moving Average for the UO
Color-coded fill for the UO/UO MA lines (if UO MA is enabled and configured)
Default UO fill color coding:
Green : UO is above the moving average line
Red : UO is below the moving average line
Note: The UO naturally has a range of 0 to 100 with a mid-point of 50, so no rescaling or transformation is done on this indicator. The only manipulation done is to properly position it in the indicator-stack based on which other indicators are also enabled.
Awesome Oscillator (AO):
This indicator contains the following major elements:
Configurable lengths for the Fast and Slow moving averages used in the AO calculation
Configurable price source for the moving averages used in the AO calculation
Mid-line
Option to display the AO as a line or pseudo-histogram
Moving Average for the AO
Color-coded fill for the AO/AO MA lines (if AO MA is enabled and configured)
Default AO fill color coding (Note: Fill was disabled in the image above to improve clarity):
Green : AO is above the moving average line
Red : AO is below the moving average line
Note: The AO is technically has an infinite (unbound) range - -∞ to ∞ - and the effective range is bound to the underlying security price (e.g. BTC will have a wider range than SP500, and SP500 will have a wider range than EUR/USD). We employed some special techniques to rescale this indicator into our desired range of 100 (-50 to 50), and then repositioned it to have a midpoint of 50 (range of 0 to 100) to meet the constraints of our stacking model. We then do one final repositioning to place it in the correct position the indicator-stack based on which other indicators are also enabled. For more details on how we accomplished this, read our section "Binding Infinity" below.
MACD:
This indicator contains the following major elements:
Configurable lengths for the Fast and Slow moving averages used in the MACD calculation
Configurable price source for the moving averages used in the MACD calculation
Configurable length and calculation method for the MACD Signal Line calculation
Mid-line
Note: Like the AO, the MACD also technically has an infinite (unbound) range. We employed the same principles here as we did with the AO to rescale and reposition this indicator as well. For more details on how we accomplished this, read our section "Binding Infinity" below.
Outback RSI (ORSI):
This is a stripped-down version of the Outback RSI indicator (linked above) that only includes the color-coding background (suffice it to say that it was not technically feasible to attempt to rescale the other components in a way that could consistently be clearly seen on-chart). As this component is a bit of a niche/special-purpose sub-indicator, it is disabled by default, and we suggest it remain disabled unless you have some pre-defined strategy that leverages the color-coding element of the Outback RSI that you wish to use.
Binding Infinity - How We Incorporated the AO and MACD (Warning - Math Talk Ahead!)
Note: This applies only to the AO and MACD at time of original publication. If any other indicators are added in the future that also fall into the category of "binding an infinite-range oscillator", we will make that clear in the release notes when that new addition is published.
To help set the stage for this discussion, it's important to note that the broader challenge of "equalizing inputs" is nothing new. In fact, it's a key element in many of the most popular fields of data science, such as AI and Machine Learning. They need to take a diverse set of inputs with a wide variety of ranges and seemingly-random inputs (referred to as "features"), and build a mathematical or computational model in order to work. But, when the raw inputs can vary significantly from one another, there is an inherent need to do some pre-processing to those inputs so that one doesn't overwhelm another simply due to the difference in raw values between them. This is where feature scaling comes into play.
With this in mind, we implemented 2 of the most common methods of Feature Scaling - Min-Max Normalization (which we call "Normalization" in our settings), and Z-Score Normalization (which we call "Standardization" in our settings). Let's take a look at each of those methods as they have been implemented in this script.
Min-Max Normalization (Normalization)
This is one of the most common - and most basic - methods of feature scaling. The basic formula is: y = (x - min)/(max - min) - where x is the current data sample, min is the lowest value in the dataset, and max is the highest value in the dataset. In this transformation, the max would evaluate to 1, and the min would evaluate to 0, and any value in between the min and the max would evaluate somewhere between 0 and 1.
The key benefits of this method are:
It can be used to transform datasets of any range into a new dataset with a consistent and known range (0 to 1).
It has no dependency on the "shape" of the raw input dataset (i.e. does not assume the input dataset can be approximated to a normal distribution).
But there are a couple of "gotchas" with this technique...
First, it assumes the input dataset is complete, or an accurate representation of the population via random sampling. While in most situations this is a valid assumption, in trading indicators we don't really have that luxury as we're often limited in what sample data we can access (i.e. number of historical bars available).
Second, this method is highly sensitive to outliers. Since the crux of this transformation is based on the max-min to define the initial range, a single significant outlier can result in skewing the post-transformation dataset (i.e. major price movement as a reaction to a significant news event).
You can potentially mitigate those 2 "gotchas" by using a mechanism or technique to find and discard outliers (e.g. calculate the mean and standard deviation of the input dataset and discard any raw values more than 5 standard deviations from the mean), but if your most recent datapoint is an "outlier" as defined by that algorithm, processing it using the "scrubbed" dataset would result in that new datapoint being outside the intended range of 0 to 1 (e.g. if the new datapoint is greater than the "scrubbed" max, it's post-transformation value would be greater than 1). Even though this is a bit of an edge-case scenario, it is still sure to happen in live markets processing live data, so it's not an ideal solution in our opinion (which is why we chose not to attempt to discard outliers in this manner).
Z-Score Normalization (Standardization)
This method of rescaling is a bit more complex than the Min-Max Normalization method noted above, but it is also a widely used process. The basic formula is: y = (x – μ) / σ - where x is the current data sample, μ is the mean (average) of the input dataset, and σ is the standard deviation of the input dataset. While this transformation still results in a technically-infinite possible range, the output of this transformation has a 2 very significant properties - the mean (average) of the output dataset has a mean (μ) of 0 and a standard deviation (σ) of 1.
The key benefits of this method are:
As it's based on normalizing the mean and standard deviation of the input dataset instead of a linear range conversion, it is far less susceptible to outliers significantly affecting the result (and in fact has the effect of "squishing" outliers).
It can be used to accurately transform disparate sets of data into a similar range regardless of the original dataset's raw/actual range.
But there are a couple of "gotchas" with this technique as well...
First, it still technically does not do any form of range-binding, so it is still technically unbounded (range -∞ to ∞ with a mid-point of 0).
Second, it implicitly assumes that the raw input dataset to be transformed is normally distributed, which won't always be the case in financial markets.
The first "gotcha" is a bit of an annoyance, but isn't a huge issue as we can apply principles of normal distribution to conceptually limit the range by defining a fixed number of standard deviations from the mean. While this doesn't totally solve the "infinite range" problem (a strong enough sudden move can still break out of our "conceptual range" boundaries), the amount of movement needed to achieve that kind of impact will generally be pretty rare.
The bigger challenge is how to deal with the assumption of the input dataset being normally distributed. While most financial markets (and indicators) do tend towards a normal distribution, they are almost never going to match that distribution exactly. So let's dig a bit deeper into distributions are defined and how things like trending markets can affect them.
Skew (skewness): This is a measure of asymmetry of the bell curve, or put another way, how and in what way the bell curve is disfigured when comparing the 2 halves. The easiest way to visualize this is to draw an imaginary vertical line through the apex of the bell curve, then fold the curve in half along that line. If both halves are exactly the same, the skew is 0 (no skew/perfectly symmetrical) - which is what a normal distribution has (skew = 0). Most financial markets tend to have short, medium, and long-term trends, and these trends will cause the distribution curve to skew in one direction or another. Bullish markets tend to skew to the right (positive), and bearish markets to the left (negative).
Kurtosis: This is a measure of the "tail size" of the bell curve. Another way to state this could be how "flat" or "steep" the bell-shape is. If the bell is steep with a strong drop from the apex (like a steep cliff), it has low kurtosis. If the bell has a shallow, more sweeping drop from the apex (like a tall hill), is has high kurtosis. Translating this to financial markets, kurtosis is generally a metric of volatility as the bell shape is largely defined by the strength and frequency of outliers. This is effectively a measure of volatility - volatile markets tend to have a high level of kurtosis (>3), and stable/consolidating markets tend to have a low level of kurtosis (<3). A normal distribution (our reference), has a kurtosis value of 3.
So to try and bring all that back together, here's a quick recap of the Standardization rescaling method:
The Standardization method has an assumption of a normal distribution of input data by using the mean (average) and standard deviation to handle the transformation
Most financial markets do NOT have a normal distribution (as discussed above), and will have varying degrees of skew and kurtosis
Q: Why are we still favoring the Standardization method over the Normalization method, and how are we accounting for the innate skew and/or kurtosis inherent in most financial markets?
A: Well, since we're only trying to rescale oscillators that by-definition have a midpoint of 0, kurtosis isn't a major concern beyond the affect it has on the post-transformation scaling (specifically, the number of standard deviations from the mean we need to include in our "artificially-bound" range definition).
Q: So that answers the question about kurtosis, but what about skew?
A: So - for skew, the answer is in the formula - specifically the mean (average) element. The standard mean calculation assumes a complete dataset and therefore uses a standard (i.e. simple) average, but we're limited by the data history available to us. So we adapted the transformation formula to leverage a moving average that included a weighting element to it so that it favored recent datapoints more heavily than older ones. By making the average component more adaptive, we gained the effect of reducing the skew element by having the average itself be more responsive to recent movements, which significantly reduces the effect historical outliers have on the dataset as a whole. While this is certainly not a perfect solution, we've found that it serves the purpose of rescaling the MACD and AO to a far more well-defined range while still preserving the oscillator behavior and mid-line exceptionally well.
The most difficult parts to compensate for are periods where markets have low volatility for an extended period of time - to the point where the oscillators are hovering around the 0/midline (in the case of the AO), or when the oscillator and signal lines converge and remain close to each other (in the case of the MACD). It's during these periods where even our best attempt at ensuring accurate mirrored-behavior when compared to the original can still occasionally lead or lag by a candle.
Note: If this is a make-or-break situation for you or your strategy, then we recommend you do not use any of the included indicators that leverage this kind of bounding technique (the AO and MACD at time of publication) and instead use the Trandingview built-in versions!
We know this is a lot to read and digest, so please take your time and feel free to ask questions - we will do our best to answer! And as always, constructive feedback is always welcome!
On Balance Volume Scaled - OBV ScaledThe main idea of this oscillator is to place the OBV oscillator and its oscillation around the range of 0 and around -50 to +50 and for this scaling of the "On Balance Volume" oscillator, I have used Min-max normalization.
Since this oscillator does not have a specific minimum and maximum, just setting the maximum and minimum does not seem the best thing to do. As in this case, we will constantly observe sudden changes and we will have problems such as volatility. On the one hand, we will constantly deal with sudden changes and problems such as volatility. Also on the other hand, the continuous collisions of the high/low(+50 & -50) and index and returning from that is another thing that we are going to deal with.
Therefore, to solve these problems and create more flexible maximum and minimum ranges, another similar method has been used. Choosing the maximum of our normalization to the size of the moving average of 100 candles of the index maximum and choosing the minimum of normalization to the size of the moving average of 100 candles of the minimums of the OBV index, and then normalizing the OBV index with the Min-max method with those ranges, is the recommended method ,which has been used to eliminate problems. In this case, we will not have any problem hitting 50 and returning or hitting -50 and returning. Also, our scaled OBV index will have the ability to touch and cross 50 and -50 and can fluctuate without problems.
RSI - colour fillThis script showcases the new (overload) feature regarding the fill() function! 🥳
2 plots could be filled before, but with just 1 colour per bar, now the colour can be a gradient type.
In this example we have 2 plots
- rsiPlot , which plots the rsi value
- centerPlot, which plots the value 50 ('centre line')
Explanation of colour fill in the zone 50-80
Default when rsi > 50
- a bottom value is set at 50 (associated with colour aqua)
- and a top value is set at 80 (associated with colour red)
This zone (bottom -> top value) is filled with a gradient colour (50 - aqua -> 80 - red)
When rsi is towards 80, you see a red coloured zone at the rsi value,
while when rsi is around 50, you'll only see the colour aqua
The same principle is applied in the zone 20-50 when rsi < 50
Cheers!
RSI band with Signal alert//th/en
//th
สวัสดีครับท่านสมาชิก
ก่อนอื่นต้องขอเกริ่นก่อนเลยว่า Indicator ตัวนี้ถูกสร้างขึ้นมาบนพื้นฐานของ RSI จริง เพียงแต่ใช้ค่า EMA27 ในการสร้าง เนื่องจากผมยังไม่สามารถเขียน RSI band ที่โยงกับราคาได้ในส่วนนี้เองได้
แต่ทั้งนี้ขอให้ท่านใจเย็น ๆ และฟังผมสักหน่อย เนื่องจากก่อนหน้านี้ผมได้สังเกตเห็นว่า EMA27 นั้นมีค่าเท่ากับ RSI14 ที่ค่า 50 พอดี ดังนั้นผมจึงเลือกที่จะสร้างมันขึ้นมาด้วย EMA27 เพราะง่ายต่อการเขียน
วิธีการใช้งานมีดังต่อไปนี้
Indicator ตัวนี้ใช้งานเหมือน RSI14 วิธีการอ่านคือให้นับเส้น EMA27 เป็นค่า 50 ของ RSI14 ดังนั้นให้เราพิจารณาการซื้อขายดังต่อไปนี้ (โดยหลังจากนี้ผมจะเรียก EMA27 ที่สร้างขึ้นว่า RSI band)
พิจารณาเข้าซื้อ : เมื่อราคาทะลุ RSI band ขึ้นไปและย่อตัวทำ Higher Low เหนือเส้น RSI band
พิจารณาขายออก : เมื่อราคาทะลุ RSI band ลงมาและรีบาวน์ทำ Lower High ใต้เส้น RSI band
# ทั้งนี้ผมได้ทำสีแท่งเทียนไว้เพื่อให้ง่ายต่อการสังเกต โดยการนำไปใช้อาจนำสีของเส้นขอบแท่งเทียนออก แล้วในส่วนของไส้แท่งเทียนให้ใช้สีที่ไม่เจาะจงราคาบวกลบอย่างสี #434651
โดยเราสามารถดู Divergence โดยการเทียบความต่างระหว่างราคาและ RSI band ได้ดังนี้
ในแนวโน้มขาลง : ให้เปรียบเทียบความต่างระหว่างราคากับ RSI band ของ Lower Low ปัจจุบันกับ Low ก่อนหน้า โดยถ้าความต่างของ Low ลดลงเรื่อย ๆ จนราคาเข้าใกล้เส้น RSI band ให้พิจารณาเข้าซื้อ
ในแนวโน้มขาขึ้น : ให้เปรียบเทียบความต่างระหว่างราคากับ RSI band ของ Higher High ปัจจุบันกับ High ก่อนหน้า โดยถ้าความต่างของ High ดลงเรื่อย ๆ จนราคาเข้าใกล้เส้น RSI band ให้พิจารณาขายออก
ทั้งนี้ผมได้สร้าง Signal alert ไว้เพื่อให้ง่ายต่อการสังเกต โดยสร้างมาจากเงื่อนไขดังนี้ (ห้ามทำการซื้อขายตาม Signal alert เด็ดขาด เพราะเค้าแค่บอกจุดตามเงื่อนไขที่ตั้งไว้ บางทีอาจมีสัญญาณซื้อแล้วให้ซื้อต่อโดยไม่มีสัญญาณขายเลยก็ได้)
Buy : เมื่อ RSI14 ตัดขึ้นที่ค่า 50 พร้อมกับ RSI14 ตัดขึ้น Signal ที่ผมตั้งไว้ (ผมใช้ EMA7 ของ RSI14)
Prepare to Sell : เมื่อ RSI14 ตัดลง Signal ในขณะที่ RSI14 นั้น มีค่ามากกว่า 70
Sell/Short Top : เมื่อ RSI14 ตัดลงที่ค่า 70 พร้อมกับ RSI14 ตัดลง Signal (จะมีขึ้นแสดงว่า Peak ในกราฟ)
Buy : เมื่อ RSI14 ตัดลงที่ค่า 50 พร้อมกับ RSI14 ตัดลง Signal
Prepare to Buy : เมื่อ RSI14 ตัดขึ้น Signal ในขณะที่ RSI14 นั้น มีค่าน้อยกว่า 30
TP Short/Buy Bottom : เมื่อ RSI14 ตัดขึ้นที่ค่า 30 พร้อมกับ RSI14 ตัดขึ้น Signal (จะมีขึ้นแสดงว่า Deep ในกราฟ)
# สาเหตุที่ใส่ข้อความใน Signal alert เพียงแค่ตอน Sell/Short Top และ TP Short/Buy Bottom เพื่อลดโอกาสเกิดการแพนิคที่เกิดจากการสังเกตได้ โดยในสัญญาณตัวอื่นจะมีแค่เครื่องหมาย * เพียงอย่างเดียว
ขอให้โชคดีครับ
Firstssk
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//en (Google Translate)
Hello, Trader
First of all, I have to say that this indicator is built on the basis of a real RSI, just using the EMA27 value to create it, since I still can't write an RSI band that is tied to the price in this section.
But please be patient and listen to me a bit. Since I previously noticed that EMA27 is exactly equal to RSI14 at 50, so I chose to build it with EMA27 because it's easier to write.
Here's how to use it:
This indicator works like RSI14. The reading method is to count the EMA27 line as the 50 value of RSI14, so let's consider the following trading. (After this I will call the created EMA27 RSI band)
Consider buying : When the price breaks the RSI band up and makes a Higher low above the RSI band.
Consider selling : When the price breaks the RSI band down and rebounds to make a Lower high below the RSI band.
# However, I have colored the candlesticks to make them easier to spot. By applying it may remove the color of the candlestick border. Then for the wick part, use a color that does not specify the price plus and minus color #434651
We can see the divergence by comparing the difference between the price and the RSI band as follows.
In a downtrend : Compare the difference between the price and the RSI band of the current Lower Low and the previous Low. If the divergence of the Low continues to decrease until the price approaches the RSI band, consider buying.
In an uptrend : Compare the price difference between the RSI band of the current Higher High and the previous high. If the divergence of the High continues to decrease until the price approaches the RSI band, consider selling.
I have created a Signal alert for easy observation. It was created from the following conditions: (Do not trade according to Signal alert strictly because they just tell the point according to the conditions set There may be a buy signal and then buy again without a sell signal.)
Buy : When RSI14 crosses above 50 with RSI14 crosses up the signal I set (I use EMA7 of RSI14).
Prepare to Sell : When RSI14 crosses signal while RSI14 is greater than 70.
Sell/Short Top : When RSI14 crosses down at 70 with RSI14 crosses down Signal (it will show "Peak" on the chart)
Buy : When RSI14 crosses down to 50 with RSI14 crosses down signal.
Prepare to Buy : When RSI14 crosses signal while RSI14 is less than 30.
TP Short/Buy Bottom : When RSI14 crosses above 30 with RSI14 crosses up signal (it will show "Deep" in the chart).
# The reason why I put the message in Signal alert only at Sell/Short Top and TP Short/Buy Bottom to reduce the chance of panic occurring from observation. In other signals, there will only be a * sign.
Good luck.
Firstssk
Divergence of Stocks Above MA50 v.s. US-Stock MarketEnglish:
This indicator has been developed as an early warning tool to estimate the probability of correction in the US stock market. It works best in the daily chart.
Function:
1.) "Index-line"
The underlying stock index is converted to a scale between 0% and 100% based on its 52-week highs and lows. Where 100% is closing price at 52-week high and 0% is closing price at 52-week low.
2nd) "Stocks Above MA50".
For each major stock index, there is an index that determines the percentage of stocks above its 50 moving average. For example, for the S&P 500, this is the S5FI.
3) "Divergence
In an efficient market, both lines (index and number of stocks above the 50 MA) would run more or less in sync. A new high in the index would also mean a new high in the stocks trading above the 50 moving average. Often, however, a correction in the index is announced when the number of stocks trading above their 50 MA do not make a new, or even a lower, high while the underlying index marks a new high. The divergence signal measures this divergence of the indices. The higher the bar, the more pronounced the divergence.
How to read the indicator?
If a divergence occurs, then the stops should be tightened. As with any indicator, false signals can occur because a divergence does not automatically lead to a correction. The higher the divergence is indicated, the higher the probability. The strength of a correction cannot be predicted with the indicator.
For which symbols does the indicator work?
The indicator works exclusively for the following symbols:
S&P500: SPX, SPY, ES1!, US500 Index above MA50: S5FI
Russel2000: IWM, US2000, RTY1!, RUT, IWO Index above MA50: R2FI
NASDAQ100: NDX, NAS100, NQ1!, US100, QQQ Index above MA50: NDFI
NASDAQ: IXIC, ONEQ, QCN1!, NDAQ Index above MA50: NCFI
NYSE: XAX, NYA Index above MA50: MMFI
DowJones100: DJX, DJI, DIA, MYM1!, YM1! Index above MA50: DIFI
DowJonesComp: DOW, IYY Index above MA50: DCFI
Deutsch:
Dieser Indikator ist als Frühwarninstrument zur Einschätzung der Korrekturwahrscheinlichkeit im US-Aktienmarkt entwickelt worden. Er funktioniert am besten im Tages-Chart.
Funktion:
1.) „Index-line“
Der zugrunde liegende Aktienindex wird bezogen auf seine 52Wochen Hochs und Tiefs in eine Skala zwischen 0% und 100% umgerechnet. Dabei sind 100% Schlusskurs auf 52-Wochen Hoch und 0% Schlusskurs auf 52-Wochen Tief.
2.) „Stocks Above MA50“
Zu jedem Hauptaktienindex gibt es einen Index, der den Prozentwert der Aktien über Ihrem 50 gleitenden Durchschnitt ermittelt. Beim S&P 500 ist das z.B. der S5FI.
3.) „Divergence“
In einem effizienten Markt würden beide Linien (Index und Anzahl Aktien über dem 50 MA) mehr oder weniger synchron laufen. Ein neues Hoch im Index würde auch ein neues Hoch bei den Aktien, die über dem 50 gleitenden Durchschnitt notieren, bedeuten. Oft jedoch kündigt sich eine Korrektur im Index an, wenn die Anzahl der Aktien, die über ihrem 50 MA notieren kein neues, oder sogar ein niedrigeres Hoch machen, während der zu Grunde liegende Index ein neues Hoch markiert. Das Divergenz-Signal misst diese auseinanderlaufen der Indices. Je höher der Balken, umso stärker ist die Divergenz ausgeprägt.
Wie ist der Indikator zu lesen?
Wenn eine Divergenz auftritt, dann sollten die Stopps enger herangezogen werden. Es kann wie bei jedem Indikator zu Fehlsignalen kommen, da eine Divergenz nicht automatisch zu einer Korrektur führen muss. Die Wahrscheinlichkeit ist um so höher, je höher die Divergenz angezeigt wird. Die Stärke einer Korrektur kann mit dem Indikator nicht prognostiziert werden.
Für welche Symbole funktioniert der Indikator?
Der Indikator funktioniert ausschließlich für folgende Symbole:
S&P500: SPX, SPY, ES1!, US500 Index über MA50: S5FI
Russel2000: IWM, US2000, RTY1!, RUT, IWO Index über MA50: R2FI
NASDAQ100: NDX, NAS100, NQ1!, US100, QQQ Index über MA50: NDFI
NASDAQ: IXIC, ONEQ, QCN1!, NDAQ Index über MA50: NCFI
NYSE: XAX, NYA Index über MA50: MMFI
DowJones100: DJX, DJI, DIA, MYM1!, YM1! Index über MA50: DIFI
DowJonesComp: DOW, IYY Index über MA50: DCFI
KD compare strategy (交易策略對照組)This is a base and easy trading strategy for comparing my other strategy.
The strategy consider K >= 80 is strong target in the last high period,
and consider K <=20 is the weak target in the last low period.
In the strong target, the strategy may increase long at the first day when K < 50, until 2/3 max order limitation or strong target become to weak.
In the weak target, the strategy may increase short at the first day when K > 50, until 2/3 max order limitation or strong target become to strong.
there are three orders for this strategy.
when the strong become to weak, it may use the remain 1/3 to save itself, and change the direction at the next k > 50
when the weak become to weak, it may use the remain 1/3 to save itself, and change the direction at the next k < 50
這是一個簡單的雙向交易策略,用來對照我其他的策略。
當 K>=80 它會認為目前是強勢股,偏多操作
當 K<=20 它會認為目前是強勢股,偏空操作
當標的為強勢股時,當第一次 K<50 會加碼多單,最多買進2/3的持股,直到轉弱
當標的為弱勢股時,當第一次 K>50 會加碼空單,最多買進2/3的持股,直到轉強
當強勢轉弱勢時,會使用剩下的1/3來拯救持股,在下次 k > 50 出清持股
當弱勢轉強勢時,會使用剩下的1/3來拯救持股,在下次 k < 50 出清持股
RSI + TSI✅ All 3 indicators in one pane
✅ RSI and RSI MA with standard zones (30, 50, 70)
✅ TSI scaled to 0–100 range for alignment with RSI
✅ Color-coded TSI fill for quick trend recognition (green = bullish, red = bearish)
✅ Compatible with TradingView v6
Trend Alignment TableThe Trend Alignment Table is a clean, visual tool designed to quickly assess trend direction and alignment across multiple moving averages — without cluttering your chart.
Instead of plotting moving average lines, this indicator displays a compact on-chart table showing each selected MA and its corresponding trend status using color-coded circles.
🧩 How It Works
Each circle represents the relationship between price and its corresponding moving average (MA):
Price vs. MA MA Direction Circle Color Meaning
Above Rising 🟢 Green Bullish continuation
Above Falling 🟡 Yellow Weakening bullishness
Below Falling 🔴 Red Bearish continuation
Below Rising 🟡 Yellow Weakening bearishness
⚙️ Features
Up to 4 customizable moving averages
Type: SMA, EMA, SMMA (RMA), WMA, VWMA
Source: Any price source (close, open, etc.)
Length: Fully adjustable
Dynamic color-coded circles (green, yellow, red by default — fully customizable)
User-selectable table position (top-left, top-right, bottom-left, bottom-right)
Clean visual layout for quick multi-timeframe trend confirmation
📊 Use Cases
Instantly identify trend alignment across short-, medium-, and long-term averages
Confirm trend strength or weakening momentum
Combine with other indicators or strategies for confirmation signals
🧠 Default Settings
MA Type Length Color
MA #1 SMA 5 Green
MA #2 SMA 20 Gold
MA #3 SMA 50 Orange
MA #4 SMA 150 Red
🧰 Created for traders who value clarity.
Whether you trade trends, reversals, or momentum shifts, the Trend Alignment Table gives you a concise, at-a-glance view of the market’s directional structure.
Smart MACD Volume Trader# Smart MACD Volume Trader
## Overview
Smart MACD Volume Trader is an enhanced momentum indicator that combines the classic MACD (Moving Average Convergence Divergence) oscillator with an intelligent high-volume filter. This combination significantly reduces false signals by ensuring that trading signals are only generated when price momentum is confirmed by substantial volume activity.
The indicator supports over 24 different instruments including major and exotic forex pairs, precious metals (gold and silver), energy commodities (crude oil, natural gas), and industrial metals (copper). For forex and commodity traders, the indicator automatically maps to CME and COMEX futures contracts to provide accurate institutional-grade volume data.
## Originality and Core Concept
Traditional MACD indicators generate signals based solely on price momentum, which can result in numerous false signals during low-activity periods or ranging markets. This indicator addresses this critical weakness by introducing a volume confirmation layer with automatic institutional volume integration.
**What makes this approach original:**
- Signals are triggered only when MACD crossovers coincide with elevated volume activity
- Implements a lookback mechanism to detect volume spikes within recent bars
- Automatically detects and maps 24+ forex pairs and commodities to their corresponding CME and COMEX futures contracts
- Provides real institutional volume data for forex pairs where spot volume is unreliable
- Combines two independent market dimensions (price momentum and volume) into a single, actionable signal
- Includes intelligent asset detection that works across multiple exchanges and ticker formats
**The underlying principle:** Volume validates price movement. When institutional money enters the market, it creates volume signatures. By requiring high volume confirmation and using actual institutional volume data from futures markets, this indicator filters out weak price movements and focuses on trades backed by genuine market participation. The automatic futures mapping ensures that forex and commodity traders always have access to the most accurate volume data available, without manual configuration.
## How It Works
### MACD Component
The indicator calculates MACD using standard methodology:
1. **Fast EMA (default: 12 periods)** - Tracks short-term price momentum
2. **Slow EMA (default: 26 periods)** - Tracks longer-term price momentum
3. **MACD Line** - Difference between Fast EMA and Slow EMA
4. **Signal Line (default: 9-period SMA)** - Smoothed average of MACD line
**Crossover signals:**
- **Bullish:** MACD line crosses above Signal line (momentum turning positive)
- **Bearish:** MACD line crosses below Signal line (momentum turning negative)
### Volume Filter Component
The volume filter adds an essential confirmation layer:
1. **Volume Moving Average** - Calculates exponential MA of volume (default: 20 periods)
2. **High Volume Threshold** - Multiplies MA by ratio (default: 2.0x or 200%)
3. **Volume Detection** - Identifies bars where current volume exceeds threshold
4. **Lookback Period** - Checks if high volume occurred in recent bars (default: 5 bars)
**Signal logic:**
- Buy/Sell signals only trigger when BOTH conditions are met:
- MACD crossover/crossunder occurs
- High volume detected within lookback period
### Automatic CME Futures Integration
For forex traders, spot FX volume data can be unreliable or non-existent. This indicator solves this problem by automatically detecting forex pairs and mapping them to corresponding CME futures contracts with real institutional volume data.
**Supported Major Forex Pairs (7):**
- EURUSD → CME:6E1! (Euro FX Futures)
- GBPUSD → CME:6B1! (British Pound Futures)
- AUDUSD → CME:6A1! (Australian Dollar Futures)
- USDJPY → CME:6J1! (Japanese Yen Futures)
- USDCAD → CME:6C1! (Canadian Dollar Futures)
- USDCHF → CME:6S1! (Swiss Franc Futures)
- NZDUSD → CME:6N1! (New Zealand Dollar Futures)
**Supported Exotic Forex Pairs (4):**
- USDMXN → CME:6M1! (Mexican Peso Futures)
- USDRUB → CME:6R1! (Russian Ruble Futures)
- USDBRL → CME:6L1! (Brazilian Real Futures)
- USDZAR → CME:6Z1! (South African Rand Futures)
**Supported Cross Pairs (6):**
- EURJPY → CME:6E1! (Uses Euro Futures)
- GBPJPY → CME:6B1! (Uses British Pound Futures)
- EURGBP → CME:6E1! (Uses Euro Futures)
- AUDJPY → CME:6A1! (Uses Australian Dollar Futures)
- EURAUD → CME:6E1! (Uses Euro Futures)
- GBPAUD → CME:6B1! (Uses British Pound Futures)
**Supported Precious Metals (2):**
- Gold (XAUUSD, GOLD) → COMEX:GC1! (Gold Futures)
- Silver (XAGUSD, SILVER) → COMEX:SI1! (Silver Futures)
**Supported Energy Commodities (3):**
- WTI Crude Oil (USOIL, WTIUSD) → NYMEX:CL1! (Crude Oil Futures)
- Brent Oil (UKOIL) → NYMEX:BZ1! (Brent Crude Futures)
- Natural Gas (NATGAS) → NYMEX:NG1! (Natural Gas Futures)
**Supported Industrial Metals (1):**
- Copper (COPPER) → COMEX:HG1! (Copper Futures)
**How the automatic detection works:**
The indicator intelligently identifies the asset type by analyzing:
1. Exchange name (FX, OANDA, TVC, COMEX, NYMEX, etc.)
2. Currency pair pattern (6-letter codes like EURUSD, GBPUSD)
3. Commodity identifiers (XAU for gold, XAG for silver, OIL for crude)
When a supported instrument is detected, the indicator automatically switches to the corresponding futures contract for volume analysis. For stocks, cryptocurrencies, and other assets, the indicator uses the native volume data from the current chart.
**Visual feedback:**
An information table appears in the top-right corner of the MACD pane showing:
- Current chart symbol
- Exchange name
- Currency pair or asset name
- Volume source being used (highlighted in orange for futures, yellow for native volume)
- Current high volume status
This provides complete transparency about which data source the indicator is using for its volume analysis.
## How to Use
### Basic Setup
1. Add the indicator to your chart
2. The indicator displays in a separate pane (MACD) and overlay (signals/volume bars)
3. Default settings work well for most assets, but can be customized
### Signal Interpretation
### Visual Signals
**Visual Signals:**
- **Green "BUY" label** - Bullish MACD crossover confirmed by high volume
- **Red "SELL" label** - Bearish MACD crossunder confirmed by high volume
- **Green/Red candles** - Highlight bars with volume exceeding the threshold
- **Light green/red background** - Emphasizes signal bars on the chart
**Information Table:**
A detailed information table appears in the top-right corner of the MACD pane, providing real-time transparency about the indicator's operation:
- **Chart:** Current symbol being analyzed
- **Exchange:** The exchange or data feed being used
- **Pair:** The currency pair or asset name extracted from the ticker
- **Volume From:** The actual symbol used for volume analysis
- Orange color indicates CME or COMEX futures are being used (automatic institutional volume)
- Yellow color indicates native volume from the chart symbol is being used
- Hover tooltip shows whether automatic futures mapping is active
- **High Volume:** Current status showing YES (green) when volume exceeds threshold, NO (gray) otherwise
This table ensures complete transparency and allows you to verify that the correct volume source is being used for your analysis.
**Volume Analysis:**
- Gray histogram bars = Normal volume
- Red histogram bars = High volume (exceeds threshold)
- Green line = Volume moving average baseline
**MACD Analysis:**
- Blue line = MACD line (momentum indicator)
- Orange line = Signal line (trend confirmation)
- Gray dotted line = Zero line (bullish above, bearish below)
### Parameter Customization
**MACD Parameters:**
- Adjust Fast/Slow EMA lengths for different sensitivities
- Shorter periods = More signals, faster response
- Longer periods = Fewer signals, less noise
**Volume Parameters:**
- **Volume MA Period:** Higher values smooth volume analysis
- **High Volume Ratio:** Lower values (1.5x) = More signals; Higher values (3.0x) = Fewer, stronger signals
- **Volume Lookback Bars:** Controls how recent the volume spike must be
**Direction Filters:**
- **Only Buy Signals:** Enables long-only strategy mode
- **Only Sell Signals:** Enables short-only strategy mode
### Alert Configuration
The indicator includes three alert types:
1. **Buy Signal Alert** - Triggers when bullish signal appears
2. **Sell Signal Alert** - Triggers when bearish signal appears
3. **High Volume Alert** - Triggers when volume exceeds threshold
To set up alerts:
1. Click the indicator name → "Add alert on Smart MACD Volume Trader"
2. Select desired alert condition
3. Configure notification method (popup, email, webhook, etc.)
## Trading Strategy Guidelines
### Best Practices
**Recommended markets:**
- Liquid stocks (large-cap, high daily volume)
- Major forex pairs (EURUSD, GBPUSD, USDJPY, AUDUSD, USDCAD, USDCHF, NZDUSD)
- Exotic forex pairs (USDMXN, USDRUB, USDBRL, USDZAR)
- Cross pairs (EURJPY, GBPJPY, EURGBP, AUDJPY, EURAUD, GBPAUD)
- Precious metals (Gold, Silver with automatic COMEX futures mapping)
- Energy commodities (Crude Oil, Natural Gas with automatic NYMEX futures mapping)
- Industrial metals (Copper with automatic COMEX futures mapping)
- Major cryptocurrency pairs
- Index futures and ETFs
**Timeframe recommendations:**
- **Day trading:** 5-minute to 15-minute charts
- **Swing trading:** 1-hour to 4-hour charts
- **Position trading:** Daily charts
**Risk management:**
- Use signals as entry confirmation, not standalone strategy
- Combine with support/resistance levels
- Consider overall market trend direction
- Always use stop-loss orders
### Strategy Examples
**Trend Following Strategy:**
1. Identify overall trend using higher timeframe (e.g., daily chart)
2. Trade only in trend direction
3. Use "Only Buy" filter in uptrends, "Only Sell" in downtrends
4. Enter on signal, exit on opposite signal or at resistance/support
**Volume Breakout Strategy:**
1. Wait for consolidation period (low volume, tight MACD range)
2. Enter when signal appears with high volume (confirms breakout)
3. Target previous swing highs/lows
4. Stop loss below/above recent consolidation
**Forex Scalping Strategy (with automatic CME futures):**
1. The indicator automatically detects forex pairs and uses CME futures volume
2. Trade during active sessions only (use session filter)
3. Focus on quick profits (10-20 pips)
4. Exit at opposite signal or profit target
**Commodities Trading Strategy (Gold, Silver, Oil):**
1. The indicator automatically maps to COMEX and NYMEX futures contracts
2. Trade during high-liquidity sessions (overlap of major markets)
3. Use the high volume confirmation to identify institutional entry points
4. Combine with key support and resistance levels for entries
5. Monitor the information table to confirm futures volume is being used (orange color)
6. Exit on opposite MACD signal or at predefined profit targets
## Why This Combination Works
### The Volume Advantage
Studies consistently show that price movements accompanied by high volume are more likely to continue, while low-volume movements often reverse. This indicator leverages this principle by requiring volume confirmation.
**Key benefits:**
1. **Reduced False Signals:** Eliminates MACD whipsaws during low-volume consolidation
2. **Confirmation Bias:** Two independent indicators (price momentum + volume) agreeing
3. **Institutional Alignment:** High volume often indicates institutional participation
4. **Trend Validation:** Volume confirms that price momentum has "conviction"
### Statistical Edge
By combining two uncorrelated signals (MACD crossovers and volume spikes), the indicator creates a higher-probability setup than either signal alone. The lookback mechanism ensures signals aren't missed if volume spike slightly precedes the MACD cross.
## Supported Exchanges and Automatic Detection
The indicator includes intelligent asset detection that works across multiple exchanges and ticker formats:
**Forex Exchanges (Automatic CME Mapping):**
- FX (TradingView forex feed)
- OANDA
- FXCM
- SAXO
- FOREXCOM
- PEPPERSTONE
- EASYMARKETS
- FX_IDC
**Commodity Exchanges (Automatic COMEX/NYMEX Mapping):**
- TVC (TradingView commodity feed)
- COMEX (directly)
- NYMEX (directly)
- ICEUS
**Other Asset Classes (Native Volume):**
- Stock exchanges (NASDAQ, NYSE, AMEX, etc.)
- Cryptocurrency exchanges (BINANCE, COINBASE, KRAKEN, etc.)
- Index providers (SP, DJ, etc.)
The detection algorithm analyzes three factors:
1. Exchange prefix in the ticker symbol
2. Pattern matching for currency pairs (6-letter codes)
3. Commodity identifiers in the symbol name
This ensures accurate automatic detection regardless of which data feed or exchange you use for charting. The information table in the top-right corner always displays which volume source is being used, providing complete transparency.
## Technical Details
**Calculations:**
- MACD Fast MA: EMA(close, fastLength)
- MACD Slow MA: EMA(close, slowLength)
- MACD Line: Fast MA - Slow MA
- Signal Line: SMA(MACD Line, signalLength)
- Volume MA: Exponential MA of volume
- High Volume: Current volume >= Volume MA × Ratio
**Signal logic:**
```
Buy Signal = (MACD crosses above Signal) AND (High volume in last N bars)
Sell Signal = (MACD crosses below Signal) AND (High volume in last N bars)
```
## Parameters Reference
| Parameter | Default | Description |
|-----------|---------|-------------|
| Volume Symbol | Blank | Manual override for volume source (leave blank for automatic detection) |
| Use CME Futures | False | Legacy option (automatic detection is now built-in) |
| Alert Session | 1530-2200 | Active session time range for alerts |
| Timezone | UTC+1 | Timezone for alert sessions |
| Volume MA Period | 20 | Number of periods for volume moving average |
| High Volume Ratio | 2.0 | Volume threshold multiplier (2.0 = 200% of average) |
| Volume Lookback | 5 | Number of bars to check for high volume confirmation |
| MACD Fast Length | 12 | Fast EMA period for MACD calculation |
| MACD Slow Length | 26 | Slow EMA period for MACD calculation |
| MACD Signal Length | 9 | Signal line SMA period |
| Only Buy | False | Filter to show only bullish signals |
| Only Sell | False | Filter to show only bearish signals |
| Show Signals | True | Display buy and sell labels on chart |
## Optimization Tips
**For volatile markets (crypto, small caps):**
- Increase High Volume Ratio to 2.5-3.0
- Reduce Volume Lookback to 3-4 bars
- Consider faster MACD settings (8, 17, 9)
**For stable markets (large-cap stocks, bonds):**
- Decrease High Volume Ratio to 1.5-1.8
- Increase Volume MA Period to 30-50
- Use standard MACD settings
**For forex (with automatic CME futures):**
- The indicator automatically uses CME futures when forex pairs are detected
- Set appropriate trading session based on your timezone
- Use Volume Lookback of 5-7 bars
- Consider session-based alerts only
- Monitor the information table to verify correct futures mapping
**For commodities (Gold, Silver, Oil, Copper):**
- The indicator automatically maps to COMEX and NYMEX futures
- Increase High Volume Ratio to 2.0-2.5 for metals
- Use slightly higher Volume MA Period (25-30) for smoother analysis
- Trade during active market hours for best volume data
- The information table will show the futures contract being used (orange highlight)
## Limitations and Considerations
**What this indicator does NOT do:**
- Does not predict future price direction
- Does not guarantee profitable trades
- Does not replace proper risk management
- Does not work well in extremely low-volume conditions
**Market conditions to avoid:**
- Pre-market and after-hours sessions (low volume)
- Major news events (volatile, unpredictable volume)
- Holidays and low-liquidity periods
- Extremely low float stocks
## Conclusion
Smart MACD Volume Trader represents a significant evolution of the traditional MACD indicator by combining volume confirmation with automatic institutional volume integration. This dual-confirmation approach significantly improves signal quality by filtering out low-conviction price movements and ensuring traders work with accurate volume data.
The indicator's automatic detection and mapping system supports over 24 instruments across forex, commodities, and metals markets. By intelligently switching to CME and COMEX futures contracts when appropriate, the indicator provides forex and commodity traders with the same quality of volume data that stock traders naturally have access to.
This indicator is particularly valuable for traders who want to:
- Align their entries with institutional money flow
- Avoid getting trapped in false breakouts
- Trade forex pairs with reliable volume data
- Access accurate volume information for gold, silver, and energy commodities
- Combine momentum and volume analysis in a single, streamlined tool
Whether you are day trading stocks, swing trading forex pairs, or positioning in commodities markets, this indicator provides a robust framework for identifying high-probability momentum trades backed by genuine institutional participation. The automatic futures mapping works seamlessly across all supported instruments, requiring no manual configuration or expertise in futures markets.
---
## Support and Updates
This indicator is actively maintained and updated based on user feedback and market conditions. For questions about implementation or custom modifications, please use the comments section below.
**Disclaimer:** This indicator is for educational and informational purposes only. Past performance does not guarantee future results. Always conduct your own analysis and risk management before trading.
CHOCH + FVG Signals [30m Optimized]CHOCH + FVG Signals
🎯 What It Does:
This script automatically scans your chart for high-probability Smart Money Concepts (SMC) setups based on two key institutional trading principles:
Change of Character (CHOCH) – A shift in market structure signaling potential reversal
Fair Value Gap (FVG) – An imbalance zone where price moved too fast, often acting as support/resistance
When both conditions align, the script plots clear Buy (▲) and Sell (▼) signals directly on your chart — ideal for intraday trading on the 30-minute timeframe (but works on any timeframe).
✅ Key Features:
🔹 Visual Fair Value Gaps
Green shaded zones = Bullish FVGs (potential support)
Red shaded zones = Bearish FVGs (potential resistance)
Toggle on/off in settings
🔹 Smart CHOCH Detection
Detects breaks of recent swing highs/lows with proper context
Avoids false signals by confirming prior price structure
🔹 Clear Trade Signals
Green ▲ below bar = Buy signal (Bullish CHOCH + FVG confluence)
Red ▼ above bar = Sell signal (Bearish CHOCH + FVG confluence)
🔹 Customizable Filters
Option to require FVG for a signal (recommended for higher accuracy)
Adjust sensitivity via swing detection settings (default optimized for 30m)
🔹 Alert-Ready
Built-in alert conditions for instant notifications on TradingView mobile/desktop
⚙️ How to Use:
Apply to a 30-minute chart (e.g., EURUSD, Gold, NAS100, BTC)
Wait for at least 50–100 bars to load (so swing points appear)
Look for:
A green triangle (▲) → consider long entry near FVG support
A red triangle (▼) → consider short entry near FVG resistance
Confirm with price action: Wait for a strong candle close or rejection at the FVG zone
Use stop-loss below/above the FVG and target recent liquidity pools
💡 Pro Tip: Best used during high-volume sessions (e.g., London Open 7–10 AM UTC, NY Open 12:30–3:30 PM UTC).
🛠️ Settings (Inputs):
Show Fair Value Gaps
✅ Enabled
Visualize FVG zones
Max FVG History
100 bars
Prevent chart clutter
Require FVG for Signal?
✅ Enabled
Higher-quality setups (disable to test CHOCH-only)
⚠️ Important Notes:
This is a signal generator, not financial advice. Always manage risk.
Works best in trending or breaking markets — avoid during low-volatility ranges.
FVGs may get filled (tested) before price continues — patience improves results.
Backtest on historical data before live trading.
📣 Ideal For:
Retail traders learning Smart Money Concepts (SMC)
Price action traders seeking institutional-level confluence
Intraday scalpers & swing traders on 30m–1H timeframes
Multi-Timeframe EMA Trend Dashboard with Volume and RSI Filters═══════════════════════════════════════════════════════════
MULTI-TIMEFRAME EMA TREND DASHBOARD
═══════════════════════════════════════════════════════════
OVERVIEW
This indicator provides a comprehensive view of trend direction across multiple timeframes using the classic EMA 20/50 crossover methodology, enhanced with volume confirmation and RSI filtering. It aggregates trend information from six timeframes into a single dashboard for efficient market analysis.
The indicator is designed for educational purposes and to assist traders in identifying potential trend alignments across different time horizons.
═══════════════════════════════════════════════════════════
FEATURES
═══════════════════════════════════════════════════════════
MULTI-TIMEFRAME ANALYSIS
• Monitors 6 timeframes simultaneously: 1m, 5m, 15m, 1H, 4H, 1D
• Each timeframe analyzed independently using request.security()
• Non-repainting implementation with proper lookahead settings
• Calculates overall trend strength as percentage of bullish timeframes
EMA CROSSOVER SYSTEM
• Fast EMA (default: 20) and Slow EMA (default: 50)
• Bullish: Fast EMA > Slow EMA
• Bearish: Fast EMA < Slow EMA
• Neutral: Fast EMA = Slow EMA (rare condition)
• Visual EMA plots with optional fill area
VOLUME CONFIRMATION
• Optional volume filter for crossover signals
• Compares current volume against moving average (default: 20-period SMA)
• Categorizes volume as: High (>1.5x average), Normal (>average), Low (70), oversold (<30), and neutral zones
• Used in quality score calculation
• Optional display toggle
SUPPORT & RESISTANCE DETECTION
• Automatic detection using highest/lowest over lookback period (default: 50 bars)
• Plots resistance (red), support (green), and mid-level (gray)
• Step-line style for clear visualization
• Optional display toggle
QUALITY SCORING SYSTEM
• Rates trade setups from 1-5 stars
• Considers: MTF alignment, volume confirmation, RSI positioning
• 5 stars: 4+ timeframes aligned + volume confirmed + RSI 50-70
• 4 stars: 4+ timeframes aligned + volume confirmed
• 3 stars: 3+ timeframes aligned
• 2 stars: Exactly 3 timeframes aligned
• 1 star: Other conditions
VISUAL DASHBOARD
• Clean table display (position customizable)
• Color-coded trend indicators (green/red/yellow)
• Extended statistics panel (toggleable)
• Shows: Trends, Strength, Quality, RSI, Volume, Price Distance
═══════════════════════════════════════════════════════════
TECHNICAL SPECIFICATIONS
═══════════════════════════════════════════════════════════
CALCULATIONS
Trend Determination per Timeframe:
• request.security() fetches EMA values with gaps=off, lookahead=off
• Compares Fast EMA vs Slow EMA
• Returns: 1 (bullish), -1 (bearish), 0 (neutral)
Trend Strength:
• Counts number of bullish timeframes
• Formula: (bullish_count / 6) × 100
• Range: 0% (all bearish) to 100% (all bullish)
Price Distance from EMA:
• Formula: ((close - EMA) / EMA) × 100
• Positive: Price above EMA
• Negative: Price below EMA
• Warning when absolute distance > 5%
ANTI-REPAINTING MEASURES
• All request.security() calls use lookahead=barmerge.lookahead_off
• Dashboard updates only on barstate.islast
• Historical bars remain unchanged
• Crossover signals finalize on bar close
═══════════════════════════════════════════════════════════
USAGE GUIDE
═══════════════════════════════════════════════════════════
INTERPRETING THE DASHBOARD
Timeframe Rows:
• Each row shows individual timeframe trend status
• Look for alignment (multiple timeframes same direction)
• Higher timeframes generally more significant
Strength Indicator:
• >66.67%: Strong bullish (4+ timeframes bullish)
• 33.33-66.67%: Mixed/choppy conditions
• <33.33%: Strong bearish (4+ timeframes bearish)
Quality Score:
• Higher stars = better confluence of factors
• 5-star setups have strongest multi-factor confirmation
• Lower scores may indicate weaker or conflicting signals
SUGGESTED APPLICATIONS
Trend Confirmation:
• Check if multiple timeframes confirm current chart trend
• Higher agreement = stronger trend confidence
• Use for position sizing decisions
Entry Timing:
• Wait for EMA crossover on chart timeframe
• Confirm with higher timeframe alignment
• Volume above average preferred
• RSI not in extreme zones
Divergence Detection:
• When lower timeframes diverge from higher
• May indicate trend exhaustion or reversal
• Requires additional confirmation
CUSTOMIZATION
EMA Settings:
• Adjust Fast/Slow lengths for different sensitivities
• Shorter periods = more responsive, more signals
• Longer periods = smoother, fewer signals
• Common alternatives: 10/30, 12/26, 50/200
Volume Filter:
• Enable for higher-quality signals (fewer false positives)
• Disable in always-liquid markets or for more signals
• Adjust MA length based on typical volume patterns
Display Options:
• Toggle EMAs, S/R levels, extended stats as needed
• Choose dashboard position to avoid chart overlap
• Adjust colors for visibility preferences
═══════════════════════════════════════════════════════════
ALERTS
═══════════════════════════════════════════════════════════
AVAILABLE ALERT CONDITIONS
1. Bullish EMA Cross (Volume Confirmed)
2. Bearish EMA Cross (Volume Confirmed)
3. Strong Bullish Alignment (4+ timeframes)
4. Strong Bearish Alignment (4+ timeframes)
5. Trend Strength Increasing (>16.67% jump)
6. Trend Strength Decreasing (>16.67% drop)
7. Excellent Trade Setup (5-star rating)
Alert messages use standard placeholders:
• {{ticker}} - Symbol name
• {{close}} - Current close price
• {{time}} - Bar timestamp
═══════════════════════════════════════════════════════════
LIMITATIONS & CONSIDERATIONS
═══════════════════════════════════════════════════════════
KNOWN LIMITATIONS
• Lower timeframe data may not be available on all symbols
• 1-minute data typically limited to recent history
• request.security() subject to TradingView data limits
• Dashboard requires screen space (may overlap on small screens)
• More complex calculations may affect load time on slower devices
NOT SUITABLE FOR
• Highly volatile/illiquid instruments (many false signals)
• News-driven markets during announcements
• Automated trading without additional filters
• Markets where EMA strategies don't perform well
DOES NOT PROVIDE
• Exact entry/exit prices
• Stop-loss or take-profit levels
• Position sizing recommendations
• Guaranteed profit signals
• Market predictions
═══════════════════════════════════════════════════════════
BEST PRACTICES
═══════════════════════════════════════════════════════════
RECOMMENDED USAGE
✓ Combine with price action analysis
✓ Use appropriate risk management
✓ Backtest on historical data before live use
✓ Adjust settings for specific market characteristics
✓ Wait for higher-quality setups in important trades
✓ Consider overall market context and fundamentals
NOT RECOMMENDED
✗ Using as standalone trading system without confirmation
✗ Trading every signal without discretion
✗ Ignoring risk management principles
✗ Trading without understanding the methodology
✗ Applying to unsuitable markets/timeframes
═══════════════════════════════════════════════════════════
EDUCATIONAL BACKGROUND
═══════════════════════════════════════════════════════════
EMA CROSSOVER STRATEGY
The Exponential Moving Average crossover is a classical trend-following technique:
• Golden Cross: Fast EMA crosses above Slow EMA (bullish signal)
• Death Cross: Fast EMA crosses below Slow EMA (bearish signal)
• Widely used since the 1970s in various markets
• More responsive than SMA due to exponential weighting
MULTI-TIMEFRAME ANALYSIS
Analyzing multiple timeframes helps traders:
• Identify alignment between short and long-term trends
• Reduce false signals from single-timeframe noise
• Understand market context across different horizons
• Make informed decisions about trade duration
VOLUME ANALYSIS
Volume confirmation adds reliability:
• High volume suggests institutional participation
• Low volume signals may indicate false breakouts
• Volume precedes price in many market theories
• Helps distinguish genuine moves from noise
═══════════════════════════════════════════════════════════
TECHNICAL IMPLEMENTATION
═══════════════════════════════════════════════════════════
CODE STRUCTURE
• Organized in clear sections with proper commenting
• Uses explicit type declarations (int, float, bool, color, string)
• Constants defined at top (BULLISH=1, BEARISH=-1, etc.)
• Functions documented with @function, @param, @returns
• Follows PineCoders naming conventions (camelCase variables)
PERFORMANCE OPTIMIZATION
• var keyword for table (created once, not every bar)
• Calculations cached where possible
• Dashboard updates only on last bar
• Minimal redundant security() calls
SECURITY IMPLEMENTATION
• Proper gaps and lookahead parameters
• No future data leakage
• Signals finalize on bar close
• Historical bars remain static
═══════════════════════════════════════════════════════════
VERSION INFORMATION
═══════════════════════════════════════════════════════════
Current Version: 2.0
Pine Script Version: 5
Last Updated: 2024
Developed by: Zakaria Safri
═══════════════════════════════════════════════════════════
SETTINGS REFERENCE
═══════════════════════════════════════════════════════════
EMA SETTINGS
• Fast EMA Length: 1-500 (default: 20)
• Slow EMA Length: 1-500 (default: 50)
VOLUME & MOMENTUM
• Use Volume Confirmation: true/false (default: true)
• Volume MA Length: 1-500 (default: 20)
• Show RSI Levels: true/false (default: true)
• RSI Length: 1-500 (default: 14)
PRICE ACTION FEATURES
• Show Price Distance: true/false (default: true)
• Show Key Levels: true/false (default: true)
• S/R Lookback Period: 10-500 (default: 50)
DISPLAY SETTINGS
• Show EMAs on Chart: true/false (default: true)
• Fast EMA Color: customizable (default: cyan)
• Slow EMA Color: customizable (default: orange)
• EMA Line Width: 1-5 (default: 2)
• Show Fill Between EMAs: true/false (default: true)
• Show Crossover Signals: true/false (default: true)
DASHBOARD SETTINGS
• Position: Top Left/Right, Bottom Left/Right
• Show Extended Statistics: true/false (default: true)
ALERT SETTINGS
• Alert on Multi-TF Alignment: true/false (default: true)
• Alert on Trend Strength Change: true/false (default: true)
═══════════════════════════════════════════════════════════
RISK DISCLAIMER
═══════════════════════════════════════════════════════════
This indicator is provided for educational and informational purposes only. It should not be considered financial advice or a recommendation to buy or sell any security.
IMPORTANT NOTICES:
• Past performance does not indicate future results
• All trading involves risk of capital loss
• No indicator guarantees profitable trades
• Always conduct independent research and analysis
• Use proper risk management and position sizing
• Consult a qualified financial advisor before trading
• The developer assumes no liability for trading losses
By using this indicator, you acknowledge that you understand these risks and accept full responsibility for your trading decisions.
═══════════════════════════════════════════════════════════
SUPPORT & CONTRIBUTIONS
═══════════════════════════════════════════════════════════
FEEDBACK WELCOME
• Constructive comments appreciated
• Bug reports help improve the indicator
• Feature suggestions considered for future versions
• Share your experience to help other users
OPEN SOURCE
This code is published as open source for the TradingView community to:
• Learn from the implementation
• Modify for personal use
• Understand multi-timeframe analysis techniques
If you find this indicator useful, please consider:
• Leaving a thoughtful review
• Sharing with other traders who might benefit
• Following for future updates and releases
═══════════════════════════════════════════════════════════
ADDITIONAL RESOURCES
═══════════════════════════════════════════════════════════
RECOMMENDED READING
• TradingView Pine Script documentation
• PineCoders community resources
• Technical analysis textbooks on moving averages
• Multi-timeframe trading strategy guides
• Risk management principles
RELATED CONCEPTS
• Trend following strategies
• Moving average convergence/divergence
• Multiple timeframe analysis
• Volume-price relationships
• Momentum indicators
═══════════════════════════════════════════════════════════
Thank you for using this indicator. Trade responsibly and continue learning!
═══════════════════════════════════════════════════════════
Triple Stochastic RSITriple Stochastic RSI (TSRSI)
The Triple Stochastic RSI is a momentum visualization tool designed to help identify potential market tops and bottoms with greater clarity. This indicator stacks three layers of smoothed StochRSI — Fast , Slow , and Slowest — each derived from increasingly longer RSI and Stochastic periods.
By analyzing how these layers interact, especially when the Slow (purple) and Slowest (orange) lines converge or cross near overbought or oversold zones, traders can spot high-probability reversal points. These moments often precede price turning points, and the signals gain strength when confirmed by divergences between price and indicator movement.
Key features include:
Triple StochRSI smoothing to capture short- to long-term momentum shifts.
Dynamic overbought/oversold signals with visual cross markers.
Built-in trend sentiment and average streak statistics.
Alerts for crossovers, trend shifts, and extended over/underperformance streaks.
Use it as a standalone momentum framework or as a supporting layer for divergence detection and market exhaustion analysis.
The stats table in your script provides insight into how long each Stochastic line (%K) typically stays above or below the 50 midline, and how the current streak compares to that average.
1. "Current" Column
This shows how many consecutive bars the %K has been:
Above 50 (▲)
OR Below 50 (▼)
It updates in real time on the last bar.
2. "Avg ▲ / Avg ▼" Column
These are historical averages based on your lookbackPeriod (default 1000 bars). It shows:
The average length of time %K stays above 50 (bullish bias)
The average time it stays below 50 (bearish bias)
Example Breakdown:
Let’s say the "Slow" row shows:
Current: 7 ▼
Avg ▲ / Avg ▼: 6 / 5
This means:
%K on the Slow lane has been below 50 for 7 bars
Historically, it only stays below 50 for about 5 bars on average
So, this bearish streak is already longer than usual
How to Use This Information:
A longer-than-average streak could imply a maturing move, potentially near exhaustion.
If current ▲ or ▼ streak is nearing or exceeding its average, it may warn of an upcoming shift.
Good for contextualizing trends and avoiding late entries.
Mythical EMAs + Dynamic VWAP BandThis indicator titled "Mythical EMAs + Dynamic VWAP Band." It overlays several volatility-adjusted Exponential Moving Averages (EMAs) on the chart, along with a Volume Weighted Average Price (VWAP) line and a dynamic band around it.
Additionally, it uses background coloring (clouds) to visualize bullish or bearish trends, with intensity modulated by the price's position relative to the VWAP.
The EMAs are themed with mythical names (e.g., Hermes for the 9-period EMA), but this is just stylistic flavoring and doesn't affect functionality.
I'll break it down section by section, explaining what each part does, how it works, and its purpose in the context of technical analysis. This indicator is designed for traders to identify trends, momentum, and price fairness relative to volume-weighted averages, with volatility adjustments to make the EMAs more responsive in volatile markets.
### 1. **Volatility Calculation (ATR)**
```pine
atrLength = 14
volatility = ta.atr(atrLength)
```
- **What it does**: Calculates the Average True Range (ATR) over 14 periods (a common default). ATR measures market volatility by averaging the true range (the greatest of: high-low, |high-previous close|, |low-previous close|).
- **Purpose**: This volatility value is used later to dynamically adjust the EMAs, making them more sensitive in high-volatility conditions (e.g., during market swings) and smoother in low-volatility periods. It helps the indicator adapt to changing market environments rather than using static EMAs.
### 2. **Custom Mythical EMA Function**
```pine
mythical_ema(src, length, base_alpha, vol_factor) =>
alpha = (2 / (length + 1)) * base_alpha * (1 + vol_factor * (volatility / src))
ema = 0.0
ema := na(ema ) ? src : alpha * src + (1 - alpha) * ema
ema
```
- **What it does**: Defines a custom function to compute a modified EMA.
- It starts with the standard EMA smoothing factor formula: `2 / (length + 1)`.
- Multiplies it by a `base_alpha` (a user-defined multiplier to tweak responsiveness).
- Adjusts further for volatility: Adds a term `(1 + vol_factor * (volatility / src))`, where `vol_factor` scales the impact, and `volatility / src` normalizes ATR relative to the source price (making it scale-invariant).
- The EMA is then calculated recursively: If the previous EMA is NA (e.g., at the start), it uses the current source value; otherwise, it weights the current source by `alpha` and the prior EMA by `(1 - alpha)`.
- **Purpose**: This creates "adaptive" EMAs that react faster in volatile markets (higher alpha when volatility is high relative to price) without overreacting in calm periods. It's an enhancement over standard EMAs, which use fixed alphas and can lag in choppy conditions. The mythical theme is just naming—functionally, it's a volatility-weighted EMA.
### 3. **Calculating the EMAs**
```pine
ema9 = mythical_ema(close, 9, 1.2, 0.5) // Hermes - quick & nimble
ema20 = mythical_ema(close, 20, 1.0, 0.3) // Apollo - short-term foresight
ema50 = mythical_ema(close, 50, 0.9, 0.2) // Athena - wise strategist
ema100 = mythical_ema(close, 100, 0.8, 0.1) // Zeus - powerful oversight
ema200 = mythical_ema(close, 200, 0.7, 0.05) // Kronos - long-term patience
```
- **What it does**: Applies the custom EMA function to the close price with varying lengths (9, 20, 50, 100, 200 periods), base alphas (decreasing from 1.2 to 0.7 for longer periods to make shorter ones more responsive), and volatility factors (decreasing from 0.5 to 0.05 to reduce volatility influence on longer-term EMAs).
- **Purpose**: These form a multi-timeframe EMA ribbon:
- Shorter EMAs (e.g., 9 and 20) capture short-term momentum.
- Longer ones (e.g., 200) show long-term trends.
- Crossovers (e.g., short EMA crossing above long EMA) can signal buy/sell opportunities. The volatility adjustment makes them "mythical" by adding dynamism, potentially improving signal quality in real markets.
### 4. **VWAP Calculation**
```pine
vwap_val = ta.vwap(close) // VWAP based on close price
```
- **What it does**: Computes the Volume Weighted Average Price (VWAP) using the built-in `ta.vwap` function, anchored to the close price. VWAP is the average price weighted by volume over the session (resets daily by default in Pine Script).
- **Purpose**: VWAP acts as a benchmark for "fair value." Prices above VWAP suggest bullishness (buyers in control), below indicate bearishness (sellers dominant). It's commonly used by institutional traders to assess entry/exit points.
### 5. **Plotting EMAs and VWAP**
```pine
plot(ema9, color=color.fuchsia, title='EMA 9 (Hermes)')
plot(ema20, color=color.red, title='EMA 20 (Apollo)')
plot(ema50, color=color.orange, title='EMA 50 (Athena)')
plot(ema100, color=color.aqua, title='EMA 100 (Zeus)')
plot(ema200, color=color.blue, title='EMA 200 (Kronos)')
plot(vwap_val, color=color.yellow, linewidth=2, title='VWAP')
```
- **What it does**: Overlays the EMAs and VWAP on the chart with distinct colors and titles for easy identification in TradingView's legend.
- **Purpose**: Visualizes the EMA ribbon and VWAP line. Traders can watch for EMA alignments (e.g., all sloping up for uptrend) or price interactions with VWAP.
### 6. **Dynamic VWAP Band**
```pine
band_pct = 0.005
vwap_upper = vwap_val * (1 + band_pct)
vwap_lower = vwap_val * (1 - band_pct)
p1 = plot(vwap_upper, color=color.new(color.yellow, 0), title="VWAP Upper Band")
p2 = plot(vwap_lower, color=color.new(color.yellow, 0), title="VWAP Lower Band")
fill_color = close >= vwap_val ? color.new(color.green, 80) : color.new(color.red, 80)
fill(p1, p2, color=fill_color, title="Dynamic VWAP Band")
```
- **What it does**: Creates a band ±0.5% around the VWAP.
- Plots the upper/lower bands with full transparency (color opacity 0, so lines are invisible).
- Fills the area between them dynamically: Semi-transparent green (opacity 80) if close ≥ VWAP (bullish bias), red if below (bearish bias).
- **Purpose**: Highlights deviations from VWAP visually. The color change provides an at-a-glance sentiment indicator—green for "above fair value" (potential strength), red for "below" (potential weakness). The narrow band (0.5%) focuses on short-term fairness, and the fill makes it easier to spot than just the line.
### 7. **Trend Clouds with VWAP Interaction**
```pine
bullish = ema9 > ema20 and ema20 > ema50
bearish = ema9 < ema20 and ema20 < ema50
bullish_above_vwap = bullish and close > vwap_val
bullish_below_vwap = bullish and close <= vwap_val
bearish_below_vwap = bearish and close < vwap_val
bearish_above_vwap = bearish and close >= vwap_val
bgcolor(bullish_above_vwap ? color.new(color.green, 50) : na, title="Bullish Above VWAP")
bgcolor(bullish_below_vwap ? color.new(color.green, 80) : na, title="Bullish Below VWAP")
bgcolor(bearish_below_vwap ? color.new(color.red, 50) : na, title="Bearish Below VWAP")
bgcolor(bearish_above_vwap ? color.new(color.red, 80) : na, title="Bearish Above VWAP")
```
- **What it does**: Defines trend conditions based on EMA alignments:
- Bullish: Shorter EMAs stacked above longer ones (9 > 20 > 50, indicating upward momentum).
- Bearish: The opposite (downward momentum).
- Sub-conditions combine with VWAP: E.g., bullish_above_vwap is true only if bullish and price > VWAP.
- Applies background colors (bgcolor) to the entire chart pane:
- Strong bullish (above VWAP): Green with opacity 50 (less transparent, more intense).
- Weak bullish (below VWAP): Green with opacity 80 (more transparent, less intense).
- Strong bearish (below VWAP): Red with opacity 50.
- Weak bearish (above VWAP): Red with opacity 80.
- If no condition matches, no color (na).
- **Purpose**: Creates "clouds" for trend visualization, enhanced by VWAP context. This helps traders confirm trends—e.g., a strong bullish cloud (darker green) suggests a high-conviction uptrend when price is above VWAP. The varying opacity differentiates signal strength: Darker for aligned conditions (trend + VWAP agreement), lighter for misaligned (potential weakening or reversal).
### Overall Indicator Usage and Limitations
- **How to use it**: Add this to a TradingView chart (e.g., stocks, crypto, forex). Look for EMA crossovers, price bouncing off EMAs/VWAP, or cloud color changes as signals. Bullish clouds with price above VWAP might signal buys; bearish below for sells.
- **Strengths**: Combines momentum (EMAs), volume (VWAP), and volatility adaptation for a multi-layered view. Dynamic colors make it intuitive.
- **Limitations**:
- EMAs lag in ranging markets; volatility adjustment helps but doesn't eliminate whipsaws.
- VWAP resets daily (standard behavior), so it's best for intraday/session trading.
- No alerts or inputs for customization (e.g., changeable lengths)—it's hardcoded.
- Performance depends on the asset/timeframe; backtest before using.
- **License**: Mozilla Public License 2.0, so it's open-source and modifiable.
Retail Sentiment Indicator - Multi-Asset CFD & Fear/Greed IndexRetail Sentiment Indicator - Multi-Asset CFD & Fear/Greed Index
Overview
The Retail Sentiment Indicator provides real-time sentiment data for major financial instruments including stocks, forex, commodities, and cryptocurrencies. This indicator displays retail trader positioning and market sentiment using CFD data and fear/greed indices.
Methodology and Scale Calculation
This indicator operates on a **-50 to +50 scale** with zero representing perfect market equilibrium.
Scale Interpretation:
- **Zero (0)**: Market balance - exactly 50% of investors buying, 50% selling
- **Positive values**: Majority buying pressure
- Example: If 63% of investors are buying, the indicator shows +13 (63 - 50 = +13)
- **Negative values**: Majority selling pressure
- Example: If 92% of investors are selling, the indicator shows -42 (50 - 92 = -42)
BTC Fear & Greed Index Scaling:
The original `BTC FEAR&GREED` index is natively scaled from 0-100 by its creator. In our indicator, this data has been rescaled to also fit the -50 to +50 range for consistency with other sentiment data sources.
This unified scaling approach allows for direct comparison across all instruments and data sources within the indicator.
-Important Data Source Selection-
Bitcoin (BTC) Data Sources
When viewing Bitcoin charts, the indicator offers **two different data sources**:
1. **Default Auto-Mode**: `BTCUSD Retail CFD` - Retail CFD traders sentiment data (automatically loaded).
2. **Manual Selection**: `BTC FEAR&GREED` - Fear & Greed Index from website: alternative dot me
**To access BTC Fear & Greed Index**: Input settings -> disable checkbox "Auto-load Sentiment Data" -> manually select "BTC FEAR&GREED" from the dropdown menu.
US Stock Market Data Sources
For US stocks and indices (S&P 500, NASDAQ, Dow Jones), there are **two data source options**:
1. **Default Auto-Mode**: Individual retail CFD sentiment data for each instrument
2. **Manual Selection**: `SNN FEAR&GREED` - SNN's Fear & Greed Index covering the overall US market sentiment. SNN was used as the name to avoid any potential trademark infringement.
**To access SNN Fear & Greed Index**: When viewing US market charts, disable in input settings checkbox "Auto-load Sentiment Data" and manually select "SNN FEAR&GREED" from the dropdown menu.
This distinction allows traders to choose between **instrument-specific retail sentiment** (auto-mode) or **broader market sentiment indices** (manual selection).
Features
- **Auto-Detection**: Automatically loads sentiment data based on the current chart symbol
- **Manual Selection**: Choose from 40+ supported instruments when auto-detection is unavailable
- **Multiple Data Sources**: Combines retail CFD sentiment with Fear & Greed indices
- **Visual Zones**: Clear greed/fear zones with color-coded backgrounds
- **Real-time Updates**: Live sentiment data from merged data sources
Supported Instruments
Major Indices
- S&P 500, NASDAQ, Dow Jones 30, DAX
Forex Pairs
- Major pairs: EURUSD, GBPUSD, USDJPY, USDCHF, USDCAD
- Cross pairs: EURJPY, GBPJPY, AUDUSD, NZDUSD, and 20+ others
Commodities
- Precious metals: Gold (XAUUSD), Silver (XAGUSD)
- Energy: WTI Oil
- Agricultural: Wheat, Coffee
- Industrial: Copper
Cryptocurrencies
- Bitcoin (BTC) sentiment data
- BTC & SNN Fear & Greed indices
How to Use
1. **Auto Mode** (Default): Enable "Auto-load Sentiment Data" to automatically display sentiment for the current chart symbol
2. **Manual Mode**: Disable auto-load and select from the dropdown menu for specific instruments
3. **Interpretation**:
- Values above 0 (green) indicate retail greed/bullish sentiment
- Values below 0 (red) indicate retail fear/bearish sentiment
- Fear & Greed indices use 0-100 scale (50 is neutral)
Data Sources
This indicator uses curated sentiment data from retail CFD providers and established fear/greed indices. Data is updated regularly and sourced from reputable financial data providers.
Trading Strategy & Market Philosophy
Contrarian Trading Approach
The primary purpose of this indicator is based on the fundamental market principle that **the majority of retail investors are often wrong**, and markets typically move opposite to the positions held by the majority of market participants.
Key Strategy Guidelines:
- **Contrarian Signal**: When the majority of users are positioned on one side of the market, there is statistically greater market advantage in taking positions in the opposite direction
- **Trend Exhaustion Signal**: An interesting observed phenomenon occurs when, during a long-lasting trend where the majority of investors have consistently been on the wrong side, the Sentiment indicator suddenly shows that the majority has flipped and opened positions in the direction of that long-running trend. This is often a signal of fuel exhaustion for further movement in that direction
Interpretation Examples
- High greed readings (majority bullish) → Consider bearish opportunities
- High fear readings (majority bearish) → Consider bullish opportunities
- Sudden sentiment flip during established trends → Potential trend reversal signal
Technical Notes
- Built with PineScript v6
- Dynamic symbol detection with fallback options
- Optimized for performance with minimal resource usage
- Color-coded visualization with customizable zones
Data Sources & Expansion
Acknowledgments
We extend our gratitude to **TradingView** for enabling the use of custom data feeds based on GitHub repositories, making this comprehensive sentiment analysis possible.
Data Expansion Opportunities
As the operator of this indicator, I am **open to suggestions for new data sources** that could be integrated and published. If you have ideas for additional instruments or sentiment data:
How to Submit Suggestions:
1. Send a **private message** with your proposal
2. Include: **instrument/data type**, **source**, and **brief description**
3. If technically feasible, we will work to import and publish the data
Data Infrastructure Status
Current Data Upload Process:
Please note that sentiment data uploads may occasionally experience minor interruptions. However, this should not pose significant issues as sentiment data typically changes gradually rather than rapidly.
Infrastructure Development:
We are actively working on establishing permanent cloud-based infrastructure to ensure continuous, automated data collection and upload processes. This will provide more reliable and consistent data availability in the future.
Disclaimer
This indicator is for educational and informational purposes only. Sentiment data should be used as part of a comprehensive trading strategy and not as the sole basis for trading decisions. Past performance does not guarantee future results. The contrarian approach described is a market theory and may not always produce profitable results.
Volume-Weighted Money Flow [sgbpulse]Overview
The VWMF indicator is an advanced technical analysis tool that combines and summarizes five leading momentum and volume indicators (OBV, PVT, A/D, CMF, MFI) into one clear oscillator. The indicator helps to provide a clear picture of market sentiment by measuring the pressure from buyers and sellers. Unlike single indicators, VWMF provides a comprehensive view of market money flow by weighting existing indicators and presenting them in a uniform and understandable format.
Indicator Components
VWMF combines the following indicators, each normalized to a range of 0 to 100 before being weighted:
On-Balance Volume (OBV): A cumulative indicator that measures positive and negative volume flow.
Price-Volume Trend (PVT): Similar to OBV, but incorporates relative price change for a more precise measure.
Accumulation/Distribution Line (A/D): Used to identify whether an asset is being bought (accumulated) or sold (distributed).
Chaikin Money Flow (CMF): Measures the money flow over a period based on the close price's position relative to the candle's range.
Money Flow Index (MFI): A momentum oscillator that combines price and volume to measure buying and selling pressure.
Understanding the Normalized Oscillators
The indicator combines the five different momentum indicators by normalizing each one to a uniform range of 0 to 100 .
Why is Normalization Important?
Indicators like OBV, PVT, and the A/D Line are cumulative indicators whose values can become very large. To assess their trend, we use a Moving Average as a dynamic reference line . The Moving Average allows us to understand whether the indicator is currently trending up or down relative to its average behavior over time.
How Does Normalization Work?
Our normalization fully preserves the original trend of each indicator.
For Cumulative Indicators (OBV, PVT, A/D): We calculate the difference between the current indicator value and its Moving Average. This difference is then passed to the normalization process.
- If the indicator is above its Moving Average, the difference will be positive, and the normalized value will be above 50.
- If the indicator is below its Moving Average, the difference will be negative, and the normalized value will be below 50.
Handling Extreme Values: To overcome the issue of extreme values in indicators like OBV, PVT, and the A/D Line , the function calculates the highest absolute value over the selected period. This value is used to prevent sharp spikes or drops in a single indicator from compromising the accuracy of the normalization over time. It's a sophisticated method that ensures the oscillators remain relevant and accurate.
For Bounded Indicators (CMF, MFI): These indicators already operate within a known range (for example, CMF is between -1 and 1, and MFI is between 0 and 100), so they are normalized directly without an additional reference line.
Reference Line Settings:
Moving Average Type: Allows the user to choose between a Simple Moving Average (SMA) and an Exponential Moving Average (EMA).
Volume Flow MA Length: Allows the user to set the lookback period for the Moving Average, which affects the indicator's sensitivity.
The 50 line serves as the new "center line." This ensures that, even after normalization, the determination of whether a specific indicator supports a bullish or bearish trend remains clear.
Settings and Visual Tools
The indicator offers several customization options to provide a rich analysis experience:
VWMF Oscillator (Blue Line): Represents the weighted average of all five indicators. Values above 50 indicate bullish momentum, and values below 50 indicate bearish momentum.
Strength Metrics (Bullish/Bearish Strength %): Two metrics that appear on the status line, showing the percentage of indicators supporting the current trend. They range from 0% to 100%, providing a quick view of the strength of the consensus.
Dynamic Background Colors: The background color of the chart automatically changes to bullish (a blue shade by default) or bearish (a default brown-gray shade) based on the trend. The transparency of the color shows the consensus strength—the more opaque the background, the more indicators support the trend.
Advanced Settings:
- Background Color Logic: Allows the user to choose the trigger for the background color: Weighted Value (based on the combined oscillator) or Strength (based on the majority of individual indicators).
- Weights: Provides full control over the weight of each of the five indicators in the final oscillator.
Using the Data Window
TradingView provides a useful Data Window that allows you to see the exact numerical values of each normalized oscillator separately, in addition to the trend strength data.
You can use this window to:
Get more detailed information on each indicator: Viewing the precise numerical data of each of the five indicators can help in making trading decisions.
Calibrate weights: If you want to manually adjust the indicator weights (in the settings menu), you can do so while tracking the impact of each indicator on the weighted oscillator in the Data Window.
The indicator's default setting is an equal weight of 20% for each of the five indicators.
Alert Conditions
The indicator comes with a variety of built-in alerts that can be configured through the TradingView alerts menu:
VWMF Cross Above 50: An alert when the VWMF oscillator crosses above the 50 line, indicating a potential bullish momentum shift.
VWMF Cross Below 50: An alert when the VWMF oscillator crosses below the 50 line, indicating a potential bearish momentum shift.
Bullish Strength: High But Not Absolute Consensus: An alert when the bullish trend strength reaches 60% or more but is less than 100%, indicating a high but not absolute consensus.
Bullish Strength at 100%: An alert when all five indicators (MFI, OBV, PVT, A/D, CMF) show bullish strength, indicating a full and absolute consensus.
Bearish Strength: High But Not Absolute Consensus: An alert when the bearish trend strength reaches 60% or more but is less than 100%, indicating a high but not absolute consensus.
Bearish Strength at 100%: An alert when all five indicators (MFI, OBV, PVT, A/D, CMF) show bearish strength, indicating a full and absolute consensus.
Summary
The VWMF indicator is a powerful, all-in-one tool for analyzing market momentum, money flow, and sentiment. By combining and normalizing five different indicators into a single oscillator, it offers a holistic and accurate view of the market's underlying trend. Its dynamic visual features and customizable settings, including the ability to adjust indicator weights, provide a flexible experience for both novice and experienced traders. The built-in alerts for momentum shifts and trend consensus make it an effective tool for spotting trading opportunities with confidence. In essence, VWMF distills complex market data into clear, actionable signals.
Important Note: Trading Risk
This indicator is intended for educational and informational purposes only and does not constitute investment advice or a recommendation for trading in any form whatsoever.
Trading in financial markets involves significant risk of capital loss. It is important to remember that past performance is not indicative of future results. All trading decisions are your sole responsibility. Never trade with money you cannot afford to lose.
log.info() - 5 Exampleslog.info() is one of the most powerful tools in Pine Script that no one knows about. Whenever you code, you want to be able to debug, or find out why something isn’t working. The log.info() command will help you do that. Without it, creating more complex Pine Scripts becomes exponentially more difficult.
The first thing to note is that log.info() only displays strings. So, if you have a variable that is not a string, you must turn it into a string in order for log.info() to work. The way you do that is with the str.tostring() command. And remember, it's all lower case! You can throw in any numeric value (float, int, timestamp) into str.string() and it should work.
Next, in order to make your output intelligible, you may want to identify whatever value you are logging. For example, if an RSI value is 50, you don’t want a bunch of lines that just say “50”. You may want it to say “RSI = 50”.
To do that, you’ll have to use the concatenation operator. For example, if you have a variable called “rsi”, and its value is 50, then you would use the “+” concatenation symbol.
EXAMPLE 1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
log.info(“RSI= ” + str.tostring(rsi))
Example Output =>
RSI= 50
Here, we use double quotes to create a string that contains the name of the variable, in this case “RSI = “, then we concatenate it with a stringified version of the variable, rsi.
Now that you know how to write a log, where do you view them? There isn’t a lot of documentation on it, and the link is not conveniently located.
Open up the “Pine Editor” tab at the bottom of any chart view, and you’ll see a “3 dot” button at the top right of the pane. Click that, and right above the “Help” menu item you’ll see “Pine logs”. Clicking that will open that to open a pane on the right of your browser - replacing whatever was in the right pane area before. This is where your log output will show up.
But, because you’re dealing with time series data, using the log.info() command without some type of condition will give you a fast moving stream of numbers that will be difficult to interpret. So, you may only want the output to show up once per bar, or only under specific conditions.
To have the output show up only after all computations have completed, you’ll need to use the barState.islast command. Remember, barState is camelCase, but islast is not!
EXAMPLE 2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
if barState.islast
log.info("RSI=" + str.tostring(rsi))
plot(rsi)
However, this can be less than ideal, because you may want the value of the rsi variable on a particular bar, at a particular time, or under a specific chart condition. Let’s hit these one at a time.
In each of these cases, the built-in bar_index variable will come in handy. When debugging, I typically like to assign a variable “bix” to represent bar_index, and include it in the output.
So, if I want to see the rsi value when RSI crosses above 0.5, then I would have something like
EXAMPLE 3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,0.5)
if rsiCrossedOver
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
Example Output =>
bix=19964 - RSI=51.8449459867
bix=19972 - RSI=50.0975830828
bix=19983 - RSI=53.3529808079
bix=19985 - RSI=53.1595745146
bix=19999 - RSI=66.6466337654
bix=20001 - RSI=52.2191767466
Here, we see that the output only appears when the condition is met.
A useful thing to know is that if you want to limit the number of decimal places, then you would use the command str.tostring(rsi,”#.##”), which tells the interpreter that the format of the number should only be 2 decimal places. Or you could round the rsi variable with a command like rsi2 = math.round(rsi*100)/100 . In either case you’re output would look like:
bix=19964 - RSI=51.84
bix=19972 - RSI=50.1
bix=19983 - RSI=53.35
bix=19985 - RSI=53.16
bix=19999 - RSI=66.65
bix=20001 - RSI=52.22
This would decrease the amount of memory that’s being used to display your variable’s values, which can become a limitation for the log.info() command. It only allows 4096 characters per line, so when you get to trying to output arrays (which is another cool feature), you’ll have to keep that in mind.
Another thing to note is that log output is always preceded by a timestamp, but for the sake of brevity, I’m not including those in the output examples.
If you wanted to only output a value after the chart was fully loaded, that’s when barState.islast command comes in. Under this condition, only one line of output is created per tick update — AFTER the chart has finished loading. For example, if you only want to see what the the current bar_index and rsi values are, without filling up your log window with everything that happens before, then you could use the following code:
EXAMPLE 4
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
bix = bar_index
if barstate.islast
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
Example Output =>
bix=20203 - RSI=53.1103309071
This value would keep updating after every new bar tick.
The log.info() command is a huge help in creating new scripts, however, it does have its limitations. As mentioned earlier, only 4096 characters are allowed per line. So, although you can use log.info() to output arrays, you have to be aware of how many characters that array will use.
The following code DOES NOT WORK! And, the only way you can find out why will be the red exclamation point next to the name of the indicator. That, and nothing will show up on the chart, or in the logs.
// CODE DOESN’T WORK
//@version=6
indicator("MW - log.info()")
var array rsi_arr = array.new()
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,50)
if rsiCrossedOver
array.push(rsi_arr, rsi)
if barstate.islast
log.info("rsi_arr:" + str.tostring(rsi_arr))
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
// No code errors, but will not compile because too much is being written to the logs.
However, after putting some time restrictions in with the i_startTime and i_endTime user input variables, and creating a dateFilter variable to use in the conditions, I can limit the size of the final array. So, the following code does work.
EXAMPLE 5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// CODE DOES WORK
//@version=6
indicator("MW - log.info()")
i_startTime = input.time(title="Start", defval=timestamp("01 Jan 2025 13:30 +0000"))
i_endTime = input.time(title="End", defval=timestamp("1 Jan 2099 19:30 +0000"))
var array rsi_arr = array.new()
dateFilter = time >= i_startTime and time <= i_endTime
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,50) and dateFilter // <== The dateFilter condition keeps the array from getting too big
if rsiCrossedOver
array.push(rsi_arr, rsi)
if barstate.islast
log.info("rsi_arr:" + str.tostring(rsi_arr))
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
Example Output =>
rsi_arr:
bix=20210 - RSI=56.9030578034
Of course, if you restrict the decimal places by using the rounding the rsi value with something like rsiRounded = math.round(rsi * 100) / 100 , then you can further reduce the size of your array. In this case the output may look something like:
Example Output =>
rsi_arr:
bix=20210 - RSI=55.6947486019
This will give your code a little breathing room.
In a nutshell, I was coding for over a year trying to debug by pushing output to labels, tables, and using libraries that cluttered up my code. Once I was able to debug with log.info() it was a game changer. I was able to start building much more advanced scripts. Hopefully, this will help you on your journey as well.