Volume Weighted Stochastic RSIThis indicator calculates the Stochastic RSI, enhanced with optional Volume Weighting (VWStochRSI). It measures the level of a (Volume-Weighted) RSI relative to its high-low range over a set period, providing a sensitive momentum oscillator.
Key Features:
Volume-Weighted Core: The indicator is built on a Relative Strength Index (RSI) that can be optionally volume-weighted (Volume weighted).
Customizable Smoothing: The %K and %D lines are smoothed using a customizable moving average. The MA type (Smooth Method) can be selected (e.g., EMA, SMA, WMA) and will also be volume-weighted if the main Volume weighted option is enabled.
Full Divergence Suite (Class A, B, C): The primary feature is the integrated divergence engine. It automatically detects and plots all three major types of divergences:
Regular (A): Signals potential trend reversals.
Hidden (B): Signals potential trend continuations.
Exaggerated (C): Signals weakness at double tops/bottoms.
Divergence Filtering and Visualization:
Price Tolerance Filter: Divergence detection is enhanced with a percentage-based price tolerance (pivPrcTol) to filter out insignificant market noise.
Persistent Visualization: Divergence markers are plotted for the entire duration of the signal and are visually anchored to the %K line level of the confirming pivot.
Note on Confirmation (Lag): Divergence signals rely on a pivot confirmation method to ensure they do not repaint.
The Start of a- divergence is only detected after the confirming pivot is fully formed (a delay based on Pivot Right Bars).
The End of a divergence is detected either instantly (if the signal is invalidated by price action) or with a delay (when a new, non-divergent pivot is confirmed).
Multi-Timeframe (MTF) Capability:
MTF VWStochRSI Lines: The %K and %D lines can be calculated on a higher timeframe, with standard options to handle gaps (Fill Gaps) and prevent repainting (Wait for...).
Limitation: The Divergence detection engine (pivDiv) is disabled if a timeframe other than the chart's timeframe is selected. Divergences are only calculated on the active chart timeframe.
Integrated Alerts: Includes 20 comprehensive alerts for:
The start and end of all 6 divergence types.
The %K line crossing the %D line.
The %K line crossing the Overbought, Oversold, or 50-level lines.
DISCLAIMER
For Informational/Educational Use Only: This indicator is provided for informational and educational purposes only. It does not constitute financial, investment, or trading advice, nor is it a recommendation to buy or sell any asset.
Use at Your Own Risk: All trading decisions you make based on the information or signals generated by this indicator are made solely at your own risk.
No Guarantee of Performance: Past performance is not an indicator of future results. The author makes no guarantee regarding the accuracy of the signals or future profitability.
No Liability: The author shall not be held liable for any financial losses or damages incurred directly or indirectly from the use of this indicator.
Signals Are Not Recommendations: The alerts and visual signals (e.g., crossovers) generated by this tool are not direct recommendations to buy or sell. They are technical observations for your own analysis and consideration.
Tìm kiếm tập lệnh với "Divergence"
Volume Weighted Relative Strength IndexThis indicator calculates the Relative Strength Index (RSI) and enhances it with optional volume weighting (VWRSI). It also includes a customizable signal line and a built-in divergence detection engine.
Key Features:
Volume-Weighted Calculation: An option (Volume weighted) allows for volume to be incorporated into the calculation of both the RSI itself and its moving average signal line, making the oscillator more sensitive to high-volume price changes.
Customizable Signal Line: Includes an optional moving average of the VWRSI, which serves as a signal line. The type of MA (Smooth Method) and its length can be customized.
Full Divergence Suite (Class A, B, C): The primary feature is the integrated divergence engine. It automatically detects and plots all three major types of divergences:
Regular (A): Signals potential trend reversals.
Hidden (B): Signals potential trend continuations.
Exaggerated (C): Signals weakness at double tops/bottoms.
Divergence Filtering and Visualization:
Price Tolerance Filter: Divergence detection is enhanced with a percentage-based price tolerance (pivPrcTol) to filter out insignificant market noise.
Persistent Visualization: Divergence markers are plotted for the entire duration of the signal and are visually anchored to the VWRSI level of the confirming pivot.
Note on Confirmation (Lag): Divergence signals rely on a pivot confirmation method to ensure they do not repaint.
The Start of a- divergence is only detected after the confirming pivot is fully formed (a delay based on Pivot Right Bars).
The End of a divergence is detected either instantly (if the signal is invalidated by price action) or with a delay (when a new, non-divergent pivot is confirmed).
Multi-Timeframe (MTF) Capability:
MTF VWRSI Line: The VWRSI and its signal line can be calculated on a higher timeframe, with standard options to handle gaps (Fill Gaps) and prevent repainting (Wait for...).
Limitation: The Divergence detection engine (pivDiv) is disabled if a timeframe other than the chart's timeframe is selected. Divergences are only calculated on the active chart timeframe.
Integrated Alerts: Includes 20 comprehensive alerts for:
The start and end of all 6 divergence types.
The VWRSI crossing its signal line.
The VWRSI crossing the Overbought, Oversold, or 50-level lines.
DISCLAIMER
For Informational/Educational Use Only: This indicator is provided for informational and educational purposes only. It does not constitute financial, investment, or trading advice, nor is it a recommendation to buy or sell any asset.
Use at Your Own Risk: All trading decisions you make based on the information or signals generated by this indicator are made solely at your own risk.
No Guarantee of Performance: Past performance is not an indicator of future results. The author makes no guarantee regarding the accuracy of the signals or future profitability.
No Liability: The author shall not be held liable for any financial losses or damages incurred directly or indirectly from the use of this indicator.
Signals Are Not Recommendations: The alerts and visual signals (e.g., crossovers) generated by this tool are not direct recommendations to buy or sell. They are technical observations for your own analysis and consideration.
Chaikin Money FlowThis indicator provides an implementation of the classic Chaikin Money Flow (CMF), a volume-weighted oscillator designed to measure money flow pressure. It is enhanced with a customizable signal line and a built-in divergence detection engine.
Key Features:
Full Divergence Suite (Class A, B, C): The primary feature is the integrated divergence engine. It automatically detects and plots all three major types of divergences:
Regular (A): Signals potential trend reversals.
Hidden (B): Signals potential trend continuations.
Exaggerated (C): Signals weakness at double tops/bottoms.
Divergence Filtering and Visualization:
Price Tolerance Filter: Divergence detection is enhanced with a percentage-based price tolerance (pivPrcTol) to filter out insignificant market noise, leading to more robust signals.
Persistent Visualization: Divergence markers are plotted for the entire duration of the signal and are visually anchored to the CMF level of the confirming pivot.
Customizable Signal Line: Includes an optional moving average of the CMF, which serves as a signal line. The type of MA (Signal Smoothing) and its length can be customized. This signal line can also be optionally volume-weighted (Volume weighted).
Note on Confirmation (Lag): Divergence signals rely on a pivot confirmation method to ensure they do not repaint.
The Start of a- divergence is only detected after the confirming pivot is fully formed (a delay based on Pivot Right Bars).
The End of a divergence is detected either instantly (if the signal is invalidated by price action) or with a delay (when a new, non-divergent pivot is confirmed).
Multi-Timeframe (MTF) Capability:
MTF CMF & Signal Lines: The CMF and its signal line can be calculated on a higher timeframe, with standard options to handle gaps (Fill Gaps) and prevent repainting (Wait for...).
Limitation: The Divergence detection engine (pivDiv) is disabled if a timeframe other than the chart's timeframe is selected. Divergences are only calculated on the active chart timeframe.
Integrated Alerts: Includes 16 comprehensive alerts for:
The start and end of all 6 divergence types.
The CMF crossing its signal line.
The CMF crossing the zero line.
DISCLAIMER
For Informational/Educational Use Only: This indicator is provided for informational and educational purposes only. It does not constitute financial, investment, or trading advice, nor is it a recommendation to buy or sell any asset.
Use at Your Own Risk: All trading decisions you make based on the information or signals generated by this indicator are made solely at your own risk.
No Guarantee of Performance: Past performance is not an indicator of future results. The author makes no guarantee regarding the accuracy of the signals or future profitability.
No Liability: The author shall not be liable for any financial losses or damages incurred directly or indirectly from the use of this indicator.
Signals Are Not Recommendations: The alerts and visual signals (e.g., crossovers) generated by this tool are not direct recommendations to buy or sell. They are technical observations for your own analysis and consideration.
Accumulation Distribution LineThis indicator provides an implementation of the classic Accumulation/Distribution Line (ADL). It enhances the standard indicator with a built-in divergence detection engine.
Key Features:
Full Divergence Suite (Class A, B, C): The primary feature is the integrated divergence engine. It automatically detects and plots all three major types of divergences:
Regular (A): Signals potential trend reversals.
Hidden (B): Signals potential trend continuations.
Exaggerated (C): Signals weakness at double tops/bottoms.
Divergence Filtering and Visualization:
Price Tolerance Filter: Divergence detection is enhanced with a percentage-based price tolerance (pivPrcTol) to filter out insignificant market noise, leading to more robust signals.
Persistent Visualization: Divergence markers are plotted for the entire duration of the signal and are visually anchored to the ADL level of the confirming pivot.
Note on Confirmation (Lag): Divergence signals rely on a pivot confirmation method to ensure they do not repaint.
The Start of a- divergence is only detected after the confirming pivot is fully formed (a delay based on Pivot Right Bars).
The End of a divergence is detected either instantly (if the signal is invalidated by price action) or with a delay (when a new, non-divergent pivot is confirmed).
Multi-Timeframe (MTF) Capability:
MTF ADL Line: The ADL line itself can be calculated on a higher timeframe, with standard options to handle gaps (Fill Gaps) and prevent repainting (Wait for...).
Limitation: The Divergence detection engine (pivDiv) is disabled if a timeframe other than the chart's timeframe is selected. Divergences are only calculated on the active chart timeframe.
Integrated Alerts: Includes 12 comprehensive alerts that trigger on the start and end of all 6 divergence types (e.g., "Regular Bullish Started", "Regular Bullish Ended").
DISCLAIMER
For Informational/Educational Use Only: This indicator is provided for informational and educational purposes only. It does not constitute financial, investment, or trading advice, nor is it a recommendation to buy or sell any asset.
Use at Your Own Risk: All trading decisions you make based on the information or signals generated by this indicator are made solely at your own risk.
No Guarantee of Performance: Past performance is not an indicator of future results. The author makes no guarantee regarding the accuracy of the signals or future profitability.
No Liability: The author shall not be held liable for any financial losses or damages incurred directly or indirectly from the use of this indicator.
Signals Are Not Recommendations: The alerts and visual signals (e.g., crossovers) generated by this tool are not direct recommendations to buy or sell. They are technical observations for your own analysis and consideration.
On Balance VolumeThis indicator provides an implementation of the classic On Balance Volume (OBV) momentum indicator, enhanced with a built-in divergence detection engine.
Key Features:
Full Divergence Suite (Class A, B, C): The primary feature is the integrated divergence engine. It automatically detects and plots all three major types of divergences:
Regular (A): Signals potential trend reversals.
Hidden (B): Signals potential trend continuations.
Exaggerated (C): Signals weakness at double tops/bottoms.
Divergence Filtering and Visualization:
Price Tolerance Filter: Divergence detection is enhanced with a percentage-based price tolerance (pivPrcTol) to filter out insignificant market noise, leading to more robust signals.
Persistent Visualization: Divergence markers are plotted for the entire duration of the signal and are visually anchored to the OBV level of the confirming pivot.
Note on Confirmation (Lag): Divergence signals rely on a pivot confirmation method to ensure they do not repaint.
The Start of a- divergence is only detected after the confirming pivot is fully formed (a delay based on Pivot Right Bars).
The End of a divergence is detected either instantly (if the signal is invalidated by price action) or with a delay (when a new, non-divergent pivot is confirmed).
Multi-Timeframe (MTF) Capability:
MTF OBV Line: The OBV line itself can be calculated on a higher timeframe, with standard options to handle gaps (Fill Gaps) and prevent repainting (Wait for...).
Limitation: The Divergence detection engine (pivDiv) is disabled if a timeframe other than the chart's timeframe is selected. Divergences are only calculated on the active chart timeframe.
Integrated Alerts: Includes 12 comprehensive alerts that trigger on the start and end of all 6 divergence types (e.g., "Regular Bullish Started", "Regular Bullish Ended").
DISCLAIMER
For Informational/Educational Use Only: This indicator is provided for informational and educational purposes only. It does not constitute financial, investment, or trading advice, nor is it a recommendation to buy or sell any asset.
Use at Your Own Risk: All trading decisions you make based on the information or signals generated by this indicator are made solely at your own risk.
No Guarantee of Performance: Past performance is not an indicator of future results. The author makes no guarantee regarding the accuracy of the signals or future profitability.
No Liability: The author shall not be held liable for any financial losses or damages incurred directly or indirectly from the use of this indicator.
Signals Are Not Recommendations: The alerts and visual signals (e.g., crossovers) generated by this tool are not direct recommendations to buy or sell. They are technical observations for your own analysis and consideration.
OBV with Divergence (SMA Smoother)Title: OBV Divergence with SMA Smoothing
Description:
This indicator is a powerful tool designed to identify regular (reversal) and hidden (continuation) On-Balance Volume (OBV) divergences against price action. It uses a modified OBV calculation (an OBV Oscillator) and integrates pivot analysis to automatically highlight potential turning points or trend continuations directly on your chart.
Key Features
Advanced Divergence Detection: Automatically detects and labels four types of divergences:
Regular Bullish/Bearish: Signals potential trend reversals.
Regular Bullish: Price makes a Lower Low (LL) but the OBV Oscillator makes a Higher Low (HL).
Regular Bearish: Price makes a Higher High (HH) but the OBV Oscillator makes a Lower High (LH).
Hidden Bullish/Bearish: Signals potential trend continuations.
Hidden Bullish: Price makes a Higher Low (HL) but the OBV Oscillator makes a Lower Low (LL).
Hidden Bearish: Price makes a Lower High (LH) but the OBV Oscillator makes a Higher High (HH).
OBV Oscillator: Instead of plotting the raw OBV, this script uses the difference between the OBV and its Exponential Moving Average (EMA). This technique centers the indicator around zero, making it easier to visualize volume momentum shifts and clearly identify peaks and troughs for divergence analysis.
Optional SMA Smoothing Line (New Feature): An added Simple Moving Average (SMA) line can be toggled on to further smooth the OBV Oscillator. Traders can use this line for crossover signals or to confirm the underlying trend of the volume momentum, reducing whipsaws.
Customizable Lookback: The indicator allows you to define the lookback periods (Pivot Lookback Left/Right) for price and oscillator pivots, giving you precise control over sensitivity. The Max/Min of Lookback Range helps filter out divergences that are too close or too far apart.
Smart Money Proxy IndexOverview
The Smart Money Proxy Index (SMPI) is an educational tool that attempts to identify potential institutional-style behavior patterns using publicly available market data. This comprehensive tool combines multiple institutional analysis techniques into a single, easy-to-read 0-100 oscillator.
Important Disclaimer
This is an educational proxy indicator that analyzes volume and price patterns. It cannot identify actual institutional trading activity and should not be interpreted as tracking real "smart money." Use for educational purposes and combine with other analysis methods.
Inspiration & Methodology
This indicator is inspired by MAPsignals' Big Money Index (BMI) methodology but uses publicly available price and volume data with original calculations. This is an independent educational interpretation designed to teach smart money concepts to retail traders.
What It Analyzes
SMPI tracks potential "smart money" activity by combining:
Block Trading Detection - Identifies unusual volume surges with significant price impact
Money Flow Analysis - Volume-weighted price pressure using Money Flow Index
Accumulation/Distribution Patterns - Modified On-Balance Volume signals
Institutional Control Proxy - End-of-day positioning and control analysis
Key Features
– Multi-Component Analysis - Combines 4 different institutional detection methods
– BMI-Style 0-100 Scale - Familiar oscillator range with clear extreme levels
– Professional Visualization - Dynamic colors, gradient fills, and clean data table
– Comprehensive Alerts - Buy/sell signals plus divergence detection
– Fully Customizable - Adjust all parameters, colors, and display options
– Non-Repainting Signals - All alerts use confirmed data for reliability
– Educational Focus - Designed to teach institutional flow concepts
How to Interpret
Above 80: Potential smart money distribution phase (bearish pressure)
Below 20: Potential smart money accumulation phase (bullish opportunity)
Signal Generation: Buy signals when crossing above 20, sell signals when crossing below 80
Divergences: Price vs SMPI divergences can signal potential trend changes
Volume Confirmation: Higher volume ratios strengthen signal reliability
Best Practices
Timeframes: Works best on higher timeframes for institutional behavior analysis
Confirmation: Combine with other technical analysis tools and market context
Volume: Pay attention to volume confirmation in the data table
Context: Consider overall market conditions and fundamental factors
Risk Management: Not recommended as standalone trading system
Customizable Parameters
Block Volume Threshold: Sensitivity for unusual volume detection (default: 2.5x average)
SMPI Smoothing Period: Index calculation smoothing (default: 25 bars)
Extreme Levels: Overbought/oversold thresholds (default: 80/20)
Money Flow Length: MFI calculation period (default: 14)
Visual Options: Colors, signals, and display preferences
Available Alerts
Buy Signal: SMPI crosses above oversold level (20)
Sell Signal: SMPI crosses below overbought level (80)
Extreme Levels: Alerts when reaching overbought/oversold zones
Divergence Detection: Bullish and bearish price vs SMPI divergences
Educational Purpose & Limitations
This indicator is designed as an educational proxy for understanding institutional flow concepts. It analyzes publicly available price and volume data to identify potential smart money behavior patterns.
Cannot access actual institutional transaction data
Signals may be slower than day-trading indicators (intentionally designed for institutional timeframes)
Should be used in conjunction with other analysis methods
Past performance does not guarantee future results
What Makes This Different
Unlike simple volume or momentum indicators, SMPI combines multiple institutional analysis techniques into one comprehensive tool. The multi-component approach provides a more robust view of potential smart money activity.
Clustering & Divergences (RSI-Stoch-CCI) [Sam SDF-Solutions]The Clustering & Divergences (RSI-Stoch-CCI) indicator is a comprehensive technical analysis tool that consolidates three popular oscillators—Relative Strength Index (RSI), Stochastic, and Commodity Channel Index (CCI)—into one unified metric called the Score. This Score offers traders an aggregated view of market conditions, allowing them to quickly identify whether the market is oversold, balanced, or overbought.
Functionality:
Oscillator Clustering: The indicator calculates the values of RSI, Stochastic, and CCI using user-defined periods. These oscillator values are then normalized using one of three available methods: MinMax, Z-Score, or Z-Bins.
Score Calculation: Each normalized oscillator value is multiplied by its respective weight (which the user can adjust), and the weighted values are summed to generate an overall Score. This Score serves as a single, interpretable metric representing the combined oscillator behavior.
Market Clustering: The indicator performs clustering on the Score over a configurable window. By dividing the Score range into a set number of clusters (also configurable), the tool visually represents the market’s state. Each cluster is assigned a unique color so that traders can quickly see if the market is trending toward oversold, balanced, or overbought conditions.
Divergence Detection: The script automatically identifies both Regular and Hidden divergences between the price action and the Score. By using pivot detection on both price and Score data, the indicator marks potential reversal signals on the chart with labels and connecting lines. This helps in pinpointing moments when the price and the underlying oscillator dynamics diverge.
Customization Options: Users have full control over the indicator’s behavior. They can adjust:
The periods for each oscillator (RSI, Stochastic, CCI).
The weights applied to each oscillator in the Score calculation.
The normalization method and its manual boundaries.
The number of clusters and whether to invert the cluster order.
Parameters for divergence detection (such as pivot sensitivity and the minimum/maximum bar distance between pivots).
Visual Enhancements:
Depending on the user’s preference, either the Score or the Cluster Index (derived from the clustering process) is plotted on the chart. Additionally, the script changes the color of the price bars based on the identified cluster, providing an at-a-glance visual cue of the current market regime.
Logic & Methodology:
Input Parameters: The script starts by accepting user inputs for clustering settings, oscillator periods, weights, divergence detection, and manual boundary definitions for normalization.
Oscillator Calculation & Normalization: It computes RSI, Stochastic, and CCI values from the price data. These values are then normalized using either the MinMax method (scaling between a lower and upper band) or the Z-Score method (standardizing based on mean and standard deviation), or using Z-Bins for an alternative scaling approach.
Score Computation: Each normalized oscillator is multiplied by its corresponding weight. The sum of these products results in the overall Score that represents the combined oscillator behavior.
Clustering Algorithm: The Score is evaluated over a moving window to determine its minimum and maximum values. Using these values, the script calculates a cluster index that divides the Score into a predefined number of clusters. An option to invert the cluster calculation is provided to adjust the interpretation of the clustering.
Divergence Analysis: The indicator employs pivot detection (using left and right bar parameters) on both the price and the Score. It then compares recent pivot values to detect regular and hidden divergences. When a divergence is found, the script plots labels and optional connecting lines to highlight these key moments on the chart.
Plotting: Finally, based on the user’s selection, the indicator plots either the Score or the Cluster Index. It also overlays manual boundary lines (for the chosen normalization method) and adjusts the bar colors according to the cluster to provide clear visual feedback on market conditions.
_________
By integrating multiple oscillator signals into one cohesive tool, the Clustering & Divergences (RSI-Stoch-CCI) indicator helps traders minimize subjective analysis. Its dynamic clustering and automated divergence detection provide a streamlined method for assessing market conditions and potentially enhancing the accuracy of trading decisions.
For further details on using this indicator, please refer to the guide available at:
Volume/Price Divergence v2The "Volume/Price Divergence v2" indicator is designed to analyze the relationship between volume and price movements in a financial market. It helps traders identify potential divergences that may indicate a change in market trends. Here’s a breakdown of how it works:
### Key Components
1. **Volume Calculation**:
- **Buying Volume**: This is calculated based on the relationship between the closing price and the high/low range. If the closing price is closer to the low, more volume is attributed to buying.
- **Selling Volume**: Conversely, if the closing price is closer to the high, more volume is considered selling.
The formulas used are:
```pinescript
buyVolume = high == low ? 0 : volume * (close - low) / (high - low)
sellVolume = high == low ? 0 : volume * (high - close) / (high - low)
```
2. **Plotting Volume**:
- The total volume is plotted in red and buying volume is plotted in teal. This helps visualize the volume distribution during different price movements.
3. **Rate of Change (ROC)**:
- The indicator calculates the rate of change for both volume and price over a specified period. This allows traders to see how volume and price are changing relative to each other.
```pinescript
roc = source / source
roc2 = source2 / source2
```
4. **Volume/Price Divergence (VPD)**:
- The VPD is derived from the ratio of the ROC of volume to the ROC of price. This ratio helps identify divergences:
- A VPD significantly above 10 may indicate strong divergence, suggesting that price movements are not supported by volume.
- A VPD around 1 indicates that volume and price are moving in harmony.
5. **Horizontal Lines**:
- The indicator includes horizontal lines at levels 10 (high divergence) and 1 (low divergence), serving as visual cues for traders to assess the market's state.
### Interpretation
- **Divergence**: If price makes a new high but volume does not follow (or vice versa), it may signal a potential reversal or weakness in the trend.
- **Volume Trends**: Analyzing the buying vs. selling volume can provide insights into market sentiment, helping traders make informed decisions.
- **Potential for a Strong Move**: A high VPD during a breakout indicates that while volume is increasing, the price isn’t moving significantly, suggesting that a big price move could be imminent.
- **Caution Before Entry**: Traders should be aware that the lack of price movement relative to high volume may signal an impending volatility spike, which could lead to a rapid price change in either direction.
Overall, this indicator is useful for traders looking to gauge the strength of price movements and identify potential reversals or breakouts based on volume trends.
Advanced Gold Scalping Strategy with RSI Divergence# Advanced Gold Scalping Strategy with RSI Divergence
## Overview
This Pine Script implements an advanced scalping strategy for gold (XAUUSD) trading, primarily designed for the 1-minute timeframe. The strategy utilizes the Relative Strength Index (RSI) indicator along with its moving average to identify potential trade setups based on divergences between price action and RSI movements.
## Key Components
### 1. RSI Calculation
- Uses a customizable RSI length (default: 60)
- Allows selection of the source for RSI calculation (default: close price)
### 2. Moving Average of RSI
- Supports multiple MA types: SMA, EMA, SMMA (RMA), WMA, VWMA, and Bollinger Bands
- Customizable MA length (default: 3)
- Option to display Bollinger Bands with adjustable standard deviation multiplier
### 3. Divergence Detection
- Implements both bullish and bearish divergence identification
- Uses pivot high and pivot low points to detect divergences
- Allows for customization of lookback periods and range for divergence detection
### 4. Entry Conditions
- Long Entry: Bullish divergence when RSI is below 40
- Short Entry: Bearish divergence when RSI is above 60
### 5. Trade Management
- Stop Loss: Customizable, default set to 11 pips
- Take Profit: Customizable, default set to 33 pips
### 6. Visualization
- Plots RSI line and its moving average
- Displays horizontal lines at 30, 50, and 70 RSI levels
- Shows Bollinger Bands when selected
- Highlights divergences with "Bull" and "Bear" labels on the chart
## Input Parameters
- RSI Length: Adjusts the period for RSI calculation
- RSI Source: Selects the price source for RSI (close, open, high, low, hl2, hlc3, ohlc4)
- MA Type: Chooses the type of moving average applied to RSI
- MA Length: Sets the period for the moving average
- BB StdDev: Adjusts the standard deviation multiplier for Bollinger Bands
- Show Divergence: Toggles the display of divergence labels
- Stop Loss: Sets the stop loss distance in pips
- Take Profit: Sets the take profit distance in pips
## Strategy Logic
1. **RSI Calculation**:
- Computes RSI using the specified length and source
- Calculates the chosen type of moving average on the RSI
2. **Divergence Detection**:
- Identifies pivot points in both price and RSI
- Checks for higher lows in RSI with lower lows in price (bullish divergence)
- Checks for lower highs in RSI with higher highs in price (bearish divergence)
3. **Trade Entry**:
- Enters a long position when a bullish divergence is detected and RSI is below 40
- Enters a short position when a bearish divergence is detected and RSI is above 60
4. **Position Management**:
- Places a stop loss order at the entry price ± stop loss pips (depending on the direction)
- Sets a take profit order at the entry price ± take profit pips (depending on the direction)
5. **Visualization**:
- Plots the RSI and its moving average
- Draws horizontal lines for overbought/oversold levels
- Displays Bollinger Bands if selected
- Shows divergence labels on the chart for identified setups
## Usage Instructions
1. Apply the script to a 1-minute XAUUSD (Gold) chart in TradingView
2. Adjust the input parameters as needed:
- Increase RSI Length for less frequent but potentially more reliable signals
- Modify MA Type and Length to change the sensitivity of the RSI moving average
- Adjust Stop Loss and Take Profit levels based on current market volatility
3. Monitor the chart for Bull (long) and Bear (short) labels indicating potential trade setups
4. Use in conjunction with other analysis and risk management techniques
## Considerations
- This strategy is designed for short-term scalping and may not be suitable for all market conditions
- Always backtest and forward test the strategy before using it with real capital
- The effectiveness of divergence-based strategies can vary depending on market trends and volatility
- Consider using additional confirmation signals or filters to improve the strategy's performance
Remember to adapt the strategy parameters to your risk tolerance and trading style, and always practice proper risk management.
MTF TMOTMO - (T)rue (M)omentum (O)scillator) MTF (Higher Aggregation) Version
TMO calculates momentum using the DELTA of price. Giving a much better picture of the trend, reversals & divergences than most momentum oscillators using price. Aside from the regular TMO, this study combines four different TMO aggregations into one indicator for an even better picture of the trend. Once you look deeper into this study you will realize how complex this tool is. This version also produce much more information like crosses, divergences, overbought / oversold signals, higher aggregation fades etc. It is probably not even possible to explain them all, there could easily be an entire e-book about this study.
I have been using this tool for a couple of years now, and this is what i have learned so far:
Favorite Time Frame Variations:
1. 1m / 5m / 30m - Great for intraday futures or options scalps. 30m TMO serves as the overall trend gauge for the day. 5min dictates the longer term intraday moves as well as direction of the 1min. 1min is for the scalps. When the 5min TMO is sloping higher focus should be on 1min buy signals (red to green cross) and vice versa for the 5min agg. sloping down.
2. 5m / 30m / 60m - Also an interesting variation for day trading the 3-5 min charts. Producing more cleaner & beginner-friendly signals that lasts couple of minutes instead of seconds.
3. 120m / Day / 2 Day - For the 30m to 1H or 2H timeframes. Daily & 2 Day dictates the overall trend. 120 min for the signals. Great for a multi-day swings.
4. Day / 2 Day / Week - Good for the daily charts, swing trading analysis as the weekly dictates the overall trend, daily dictates the signals and the 2 day cleans out the daily signals. If the daily & 2 day are not aligned togather, daily signal means nothing. Weekly dictates 2 day - 2 day dictates daily.
5. Week / Month / 3 Month - Same thing as the previous variation but for the weekly charts.
TMO Length:
The default vanilla settings are 14,5,3. Some traders prefer 21,5,3 as the TMO length is litle higher = TMO will potenially last little longer which could teoretically produce less false signals but slower crosses which means signals will lag more behind price. The lower the length, the faster the oscillator oscillates. It is the noice vs. the lag debate. The Length can be changed, but i would not personally touch the other two. Few points up or down on length will not drastically change much. But changes on Calc Length and Smooth Length can produce totally different signals from the original.
Tips & Tricks:
1. Observe
- This is the best tip & trick I can give you. The #1 best way to learn how any study operates is to just observe how it works in certain situations from the past. MTF TMO is not
an exception.
2. The Power of the Higher Aggregation
- The higher aggregation ALWAYS dictates the lower one. Best way to see this? Just 2x the current timeframe aggregation = so on daily chart, plot the daily & two day TMOs and you will notice how the higher agg. smooths out the current agg. The higher the aggregation is, the smoother (but slower) will the TMO turn. The real power kicks in when the 3 or 4 aggregations are aligned togather in one direction.
3. Position of the Higher Aggregation in Relation to the Extremes
- Overbought / oversold signals might not really work on the current aggregation. But pay attention to the higher aggregations in relation to the extremes. Ex: on the daily chart - daily TMO inside the OB / OS extremes might not mean much. But once the higher aggregations such as 3 day or Weekly TMO enters OB/OS zone togather with the daily, this can be a very powerful signal for a TMO reversion to the zeroline.
4. Crosses
- Yes, crosses do work. Personally, I never really focused on them. The thing about the crosses is that it is crucial to pick the right higher aggregation to the combination of the current one that would be reliable but also print enough signals. The closer the cross is to the OB / OS extremes, the more bigger move can occur. Crosses around the zero line can be considered as less quality crosses.
5. Divergences
- TMO can print awesome divergences. The best divergences are on the current aggregation (TMO agg. same as the chart) since the current agg. oscillates fast, it can usually produce lower lows & higher highs faster then any higher aggregations. Easy setup: wait for the higher aggregation to reach the OB / OS extremes and watch the current (chart) aggregation to print a divergence.
6. Three is Enough
- I personally find more than three aggregations messy and hard to read. But there is always the option to turn on the 4th one. Just switch the TMO 4 Main, TMO 4 Signal and TMO 4 Fill in the style settings.
Hope it helps.
Velocity Divergence Radar [JOAT]
Velocity Divergence Radar - Momentum Physics Edition
Overview
Velocity Divergence Radar is an open-source oscillator indicator that applies physics concepts to market analysis. It calculates price velocity (rate of change), acceleration (rate of velocity change), and jerk (rate of acceleration change) to provide a multi-dimensional view of momentum. The indicator also includes divergence detection and force vector analysis.
What This Indicator Does
The indicator calculates and displays:
Velocity - Rate of price change over a configurable period, smoothed with EMA
Acceleration - Rate of velocity change, showing momentum shifts
Jerk (3rd Derivative) - Rate of acceleration change, indicating momentum stability
Force Vectors - Volume-weighted acceleration representing market force
Kinetic Energy - Calculated as 0.5 * mass (volume ratio) * velocity squared
Momentum Conservation - Tracks momentum relative to historical average
Divergence Detection - Identifies when price and velocity diverge at pivots
How It Works
Velocity is calculated as smoothed rate of change:
calculateVelocity(series float price, simple int period) =>
float roc = ta.roc(price, period)
float velocity = ta.ema(roc, period / 2)
velocity
Acceleration is the change in velocity:
calculateAcceleration(series float velocity, simple int period) =>
float accel = ta.change(velocity, period)
float smoothAccel = ta.ema(accel, period / 2)
smoothAccel
Jerk is the change in acceleration:
calculateJerk(series float acceleration, simple int period) =>
float jerk = ta.change(acceleration, period)
float smoothJerk = ta.ema(jerk, period / 2)
smoothJerk
Force is calculated using F = m * a (mass approximated by volume ratio):
calculateForceVector(series float mass, series float acceleration) =>
float force = mass * acceleration
float forceDirection = math.sign(force)
float forceMagnitude = math.abs(force)
Signal Generation
Signals are generated based on velocity behavior:
Bullish Divergence: Price makes lower low while velocity makes higher low
Bearish Divergence: Price makes higher high while velocity makes lower high
Velocity Cross: Velocity crosses above/below zero line
Extreme Velocity: Velocity exceeds 1.5x the upper/lower zone threshold
Jerk Extreme: Jerk exceeds 2x standard deviation
Force Extreme: Force magnitude exceeds 2x average
Dashboard Panel (Top-Right)
Velocity - Current velocity value
Acceleration - Current acceleration value
Momentum Strength - Combined velocity and acceleration strength
Radar Score - Composite score based on velocity and acceleration
Direction - STRONG UP/SLOWING UP/STRONG DOWN/SLOWING DOWN/FLAT
Jerk - Current jerk value
Force Vector - Current force magnitude
Kinetic Energy - Current kinetic energy value
Physics Score - Overall physics-based momentum score
Signal - Current actionable status
Visual Elements
Velocity Line - Main oscillator line with color based on direction
Velocity EMA - Smoothed velocity for trend reference
Acceleration Histogram - Bar chart showing acceleration direction
Jerk Area - Filled area showing jerk magnitude
Vector Magnitude - Line showing combined vector strength
Radar Scan - Oscillating pattern for visual effect
Zone Lines - Upper and lower threshold lines
Divergence Labels - BULL DIV / BEAR DIV markers
Extreme Markers - Triangles at velocity extremes
Input Parameters
Velocity Period (default: 14) - Period for velocity calculation
Acceleration Period (default: 7) - Period for acceleration calculation
Divergence Lookback (default: 10) - Bars to scan for divergence
Radar Sensitivity (default: 1.0) - Zone threshold multiplier
Jerk Analysis (default: true) - Enable 3rd derivative calculation
Force Vectors (default: true) - Enable force analysis
Kinetic Energy (default: true) - Enable energy calculation
Momentum Conservation (default: true) - Enable momentum tracking
Suggested Use Cases
Identify momentum direction using velocity sign and magnitude
Watch for divergences as potential reversal warnings
Use acceleration to detect momentum shifts before price confirms
Monitor jerk for momentum stability assessment
Combine force and kinetic energy for conviction analysis
Timeframe Recommendations
Works on all timeframes. Higher timeframes provide smoother readings; lower timeframes show more granular momentum changes.
Limitations
Physics analogies are conceptual and not literal market physics
Divergence detection uses pivot-based lookback and may lag
Force calculation uses volume ratio as mass proxy
Kinetic energy is a derived metric, not actual energy
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management.
- Made with passion by officialjackofalltrades
Stochastic Pro+ Suite📚 What Is the Stochastic Oscillator?
The stochastic oscillator is a momentum indicator comparing a security's closing price to its price range over a set number of periods. The %K line represents the raw stochastic value, while the %D line is a smoothed moving average of %K.
Stochastic helps identify:
Overbought and oversold conditions
Bullish and bearish crossovers
Momentum shifts before price reversals
It is widely used in both trending and ranging markets.
💡 What Makes This Suite Different?
This script supercharges the traditional stochastic with a multi-timeframe engine , divergence detection , and a highly customizable visual suite , including:
✅ Core Features:
- Multi-Timeframe (%K, %D, Spread): Pulls stochastic data from any higher timeframe for improved signal quality.
- Custom Overbought/Oversold Levels: Fully adjustable OB/OS thresholds (default: 80/20).
- %K-%D Spread Histogram: View the difference between %K and %D visually as a histogram.
- Color-coded Cross Highlights: Optional background shading for key crossover events in OB/OS zones (high probability reversal areas).
🔍 Divergence Detection (Optional):
- Bullish Divergence: Price makes lower lows while %K makes higher lows.
- Bearish Divergence: Price makes higher highs while %K makes lower highs.
- Customizable pivot lookbacks and range filters to control divergence strictness.
- Visual divergence labels plotted directly on the oscillator.
🎛️ Fully Toggleable Visuals:
Show/hide %K, %D, OB/OS lines, spread histogram, background highlight, and divergence — all via simple checkboxes.
🔔 Alerts:
Set alerts for both bullish and bearish divergences — ideal for swing, day, or trend reversal strategies.
⚙️ Use Cases
- Spot exhaustion in overbought/oversold zones
- Confirm or filter entries with divergence signals
- Monitor multiple timeframes without switching charts
- Use as a signal tool in confluence with price action or volume indicators
⚠️ Disclaimer
This tool is for educational and informational purposes only. It does not constitute financial advice, trading advice, or investment guidance. Always do your own research and consult a qualified financial advisor before making trading decisions.
RSI Overbought/Oversold + Divergence Indicator (new)//@version=5
indicator('CryptoSignalScanner - RSI Overbought/Oversold + Divergence Indicator (new)',
//---------------------------------------------------------------------------------------------------------------------------------
//--- Define Colors ---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------
vWhite = #FFFFFF
vViolet = #C77DF3
vIndigo = #8A2BE2
vBlue = #009CDF
vGreen = #5EBD3E
vYellow = #FFB900
vRed = #E23838
longColor = color.green
shortColor = color.red
textColor = color.white
bullishColor = color.rgb(38,166,154,0) //Used in the display table
bearishColor = color.rgb(239,83,79,0) //Used in the display table
nomatchColor = color.silver //Used in the display table
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Functions--------------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
TF2txt(TF) =>
switch TF
"S" => "RSI 1s:"
"5S" => "RSI 5s:"
"10S" => "RSI 10s:"
"15S" => "RSI 15s:"
"30S" => "RSI 30s"
"1" => "RSI 1m:"
"3" => "RSI 3m:"
"5" => "RSI 5m:"
"15" => "RSI 15m:"
"30" => "RSI 30m"
"45" => "RSI 45m"
"60" => "RSI 1h:"
"120" => "RSI 2h:"
"180" => "RSI 3h:"
"240" => "RSI 4h:"
"480" => "RSI 8h:"
"D" => "RSI 1D:"
"1D" => "RSI 1D:"
"2D" => "RSI 2D:"
"3D" => "RSI 2D:"
"3D" => "RSI 3W:"
"W" => "RSI 1W:"
"1W" => "RSI 1W:"
"M" => "RSI 1M:"
"1M" => "RSI 1M:"
"3M" => "RSI 3M:"
"6M" => "RSI 6M:"
"12M" => "RSI 12M:"
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Show/Hide Settings ----------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
rsiShowInput = input(true, title='Show RSI', group='Show/Hide Settings')
maShowInput = input(false, title='Show MA', group='Show/Hide Settings')
showRSIMAInput = input(true, title='Show RSIMA Cloud', group='Show/Hide Settings')
rsiBandShowInput = input(true, title='Show Oversold/Overbought Lines', group='Show/Hide Settings')
rsiBandExtShowInput = input(true, title='Show Oversold/Overbought Extended Lines', group='Show/Hide Settings')
rsiHighlightShowInput = input(true, title='Show Oversold/Overbought Highlight Lines', group='Show/Hide Settings')
DivergenceShowInput = input(true, title='Show RSI Divergence Labels', group='Show/Hide Settings')
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Table Settings --------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
rsiShowTable = input(true, title='Show RSI Table Information box', group="RSI Table Settings")
rsiTablePosition = input.string(title='Location', defval='middle_right', options= , group="RSI Table Settings", inline='1')
rsiTextSize = input.string(title=' Size', defval='small', options= , group="RSI Table Settings", inline='1')
rsiShowTF1 = input(true, title='Show TimeFrame1', group="RSI Table Settings", inline='tf1')
rsiTF1 = input.timeframe("15", title=" Time", group="RSI Table Settings", inline='tf1')
rsiShowTF2 = input(true, title='Show TimeFrame2', group="RSI Table Settings", inline='tf2')
rsiTF2 = input.timeframe("60", title=" Time", group="RSI Table Settings", inline='tf2')
rsiShowTF3 = input(true, title='Show TimeFrame3', group="RSI Table Settings", inline='tf3')
rsiTF3 = input.timeframe("240", title=" Time", group="RSI Table Settings", inline='tf3')
rsiShowTF4 = input(true, title='Show TimeFrame4', group="RSI Table Settings", inline='tf4')
rsiTF4 = input.timeframe("D", title=" Time", group="RSI Table Settings", inline='tf4')
rsiShowHist = input(true, title='Show RSI Historical Columns', group="RSI Table Settings", tooltip='Show the information of the 2 previous closed candles')
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- RSI Input Settings ----------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
rsiSourceInput = input.source(close, 'Source', group='RSI Settings')
rsiLengthInput = input.int(14, minval=1, title='RSI Length', group='RSI Settings', tooltip='Here we set the RSI lenght')
rsiColorInput = input.color(#26a69a, title="RSI Color", group='RSI Settings')
rsimaColorInput = input.color(#ef534f, title="RSIMA Color", group='RSI Settings')
rsiBandColorInput = input.color(#787B86, title="RSI Band Color", group='RSI Settings')
rsiUpperBandExtInput = input.int(title='RSI Overbought Extended Line', defval=80, minval=50, maxval=100, group='RSI Settings')
rsiUpperBandInput = input.int(title='RSI Overbought Line', defval=70, minval=50, maxval=100, group='RSI Settings')
rsiLowerBandInput = input.int(title='RSI Oversold Line', defval=30, minval=0, maxval=50, group='RSI Settings')
rsiLowerBandExtInput = input.int(title='RSI Oversold Extended Line', defval=20, minval=0, maxval=50, group='RSI Settings')
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- MA Input Settings -----------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
maTypeInput = input.string("EMA", title="MA Type", options= , group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
maColorInput = input.color(color.yellow, title="MA Color", group='MA Settings') //#7E57C2
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Divergence Input Settings ---------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
lbrInput = input(title="Pivot Lookback Right", defval=2, group='RSI Divergence Settings')
lblInput = input(title="Pivot Lookback Left", defval=2, group='RSI Divergence Settings')
lbRangeMaxInput = input(title="Max of Lookback Range", defval=10, group='RSI Divergence Settings')
lbRangeMinInput = input(title="Min of Lookback Range", defval=2, group='RSI Divergence Settings')
plotBullInput = input(title="Plot Bullish", defval=true, group='RSI Divergence Settings')
plotHiddenBullInput = input(title="Plot Hidden Bullish", defval=true, group='RSI Divergence Settings')
plotBearInput = input(title="Plot Bearish", defval=true, group='RSI Divergence Settings')
plotHiddenBearInput = input(title="Plot Hidden Bearish", defval=true, group='RSI Divergence Settings')
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- RSI Calculation -------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
rsi = ta.rsi(rsiSourceInput, rsiLengthInput)
rsiprevious = rsi
= request.security(syminfo.tickerid, rsiTF1, [rsi, rsi , rsi ], lookahead=barmerge.lookahead_on)
= request.security(syminfo.tickerid, rsiTF2, [rsi, rsi , rsi ], lookahead=barmerge.lookahead_on)
= request.security(syminfo.tickerid, rsiTF3, [rsi, rsi , rsi ], lookahead=barmerge.lookahead_on)
= request.security(syminfo.tickerid, rsiTF4, [rsi, rsi , rsi ], lookahead=barmerge.lookahead_on)
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- MA Calculation -------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
rsiMA = ma(rsi, maLengthInput, maTypeInput)
rsiMAPrevious = rsiMA
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Stoch RSI Settings + Calculation --------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
showStochRSI = input(false, title="Show Stochastic RSI", group='Stochastic RSI Settings')
smoothK = input.int(title="Stochastic K", defval=3, minval=1, maxval=10, group='Stochastic RSI Settings')
smoothD = input.int(title="Stochastic D", defval=4, minval=1, maxval=10, group='Stochastic RSI Settings')
lengthRSI = input.int(title="Stochastic RSI Lenght", defval=14, minval=1, group='Stochastic RSI Settings')
lengthStoch = input.int(title="Stochastic Lenght", defval=14, minval=1, group='Stochastic RSI Settings')
colorK = input.color(color.rgb(41,98,255,0), title="K Color", group='Stochastic RSI Settings', inline="1")
colorD = input.color(color.rgb(205,109,0,0), title="D Color", group='Stochastic RSI Settings', inline="1")
StochRSI = ta.rsi(rsiSourceInput, lengthRSI)
k = ta.sma(ta.stoch(StochRSI, StochRSI, StochRSI, lengthStoch), smoothK) //Blue Line
d = ta.sma(k, smoothD) //Red Line
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Divergence Settings ------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
bearColor = color.red
bullColor = color.green
hiddenBullColor = color.new(color.green, 50)
hiddenBearColor = color.new(color.red, 50)
//textColor = color.white
noneColor = color.new(color.white, 100)
osc = rsi
plFound = na(ta.pivotlow(osc, lblInput, lbrInput)) ? false : true
phFound = na(ta.pivothigh(osc, lblInput, lbrInput)) ? false : true
_inRange(cond) =>
bars = ta.barssince(cond == true)
lbRangeMinInput <= bars and bars <= lbRangeMaxInput
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Define Plot & Line Colors ---------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
rsiColor = rsi >= rsiMA ? rsiColorInput : rsimaColorInput
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Plot Lines ------------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Create a horizontal line at a specific price level
myLine = line.new(bar_index , 75, bar_index, 75, color = color.rgb(187, 14, 14), width = 2)
bottom = line.new(bar_index , 50, bar_index, 50, color = color.rgb(223, 226, 28), width = 2)
mymainLine = line.new(bar_index , 60, bar_index, 60, color = color.rgb(13, 154, 10), width = 3)
hline(50, title='RSI Baseline', color=color.new(rsiBandColorInput, 50), linestyle=hline.style_solid, editable=false)
hline(rsiBandExtShowInput ? rsiUpperBandExtInput : na, title='RSI Upper Band', color=color.new(rsiBandColorInput, 10), linestyle=hline.style_dashed, editable=false)
hline(rsiBandShowInput ? rsiUpperBandInput : na, title='RSI Upper Band', color=color.new(rsiBandColorInput, 10), linestyle=hline.style_dashed, editable=false)
hline(rsiBandShowInput ? rsiLowerBandInput : na, title='RSI Upper Band', color=color.new(rsiBandColorInput, 10), linestyle=hline.style_dashed, editable=false)
hline(rsiBandExtShowInput ? rsiLowerBandExtInput : na, title='RSI Upper Band', color=color.new(rsiBandColorInput, 10), linestyle=hline.style_dashed, editable=false)
bgcolor(rsiHighlightShowInput ? rsi >= rsiUpperBandExtInput ? color.new(rsiColorInput, 70) : na : na, title="Show Extended Oversold Highlight", editable=false)
bgcolor(rsiHighlightShowInput ? rsi >= rsiUpperBandInput ? rsi < rsiUpperBandExtInput ? color.new(#64ffda, 90) : na : na: na, title="Show Overbought Highlight", editable=false)
bgcolor(rsiHighlightShowInput ? rsi <= rsiLowerBandInput ? rsi > rsiLowerBandExtInput ? color.new(#F43E32, 90) : na : na : na, title="Show Extended Oversold Highlight", editable=false)
bgcolor(rsiHighlightShowInput ? rsi <= rsiLowerBandInput ? color.new(rsimaColorInput, 70) : na : na, title="Show Oversold Highlight", editable=false)
maPlot = plot(maShowInput ? rsiMA : na, title='MA', color=color.new(maColorInput,0), linewidth=1)
rsiMAPlot = plot(showRSIMAInput ? rsiMA : na, title="RSI EMA", color=color.new(rsimaColorInput,0), editable=false, display=display.none)
rsiPlot = plot(rsiShowInput ? rsi : na, title='RSI', color=color.new(rsiColor,0), linewidth=1)
fill(rsiPlot, rsiMAPlot, color=color.new(rsiColor, 60), title="RSIMA Cloud")
plot(showStochRSI ? k : na, title='Stochastic K', color=colorK, linewidth=1)
plot(showStochRSI ? d : na, title='Stochastic D', color=colorD, linewidth=1)
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Plot Divergence -------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Regular Bullish
// Osc: Higher Low
oscHL = osc > ta.valuewhen(plFound, osc , 1) and _inRange(plFound )
// Price: Lower Low
priceLL = low < ta.valuewhen(plFound, low , 1)
bullCond = plotBullInput and priceLL and oscHL and plFound
plot(
plFound ? osc : na,
offset=-lbrInput,
title="Regular Bullish",
linewidth=2,
color=(bullCond ? bullColor : noneColor)
)
plotshape(
DivergenceShowInput ? bullCond ? osc : na : na,
offset=-lbrInput,
title="Regular Bullish Label",
text=" Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor
)
//------------------------------------------------------------------------------
// Hidden Bullish
// Osc: Lower Low
oscLL = osc < ta.valuewhen(plFound, osc , 1) and _inRange(plFound )
// Price: Higher Low
priceHL = low > ta.valuewhen(plFound, low , 1)
hiddenBullCond = plotHiddenBullInput and priceHL and oscLL and plFound
plot(
plFound ? osc : na,
offset=-lbrInput,
title="Hidden Bullish",
linewidth=2,
color=(hiddenBullCond ? hiddenBullColor : noneColor)
)
plotshape(
DivergenceShowInput ? hiddenBullCond ? osc : na : na,
offset=-lbrInput,
title="Hidden Bullish Label",
text=" H Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor
)
//------------------------------------------------------------------------------
// Regular Bearish
// Osc: Lower High
oscLH = osc < ta.valuewhen(phFound, osc , 1) and _inRange(phFound )
// Price: Higher High
priceHH = high > ta.valuewhen(phFound, high , 1)
bearCond = plotBearInput and priceHH and oscLH and phFound
plot(
phFound ? osc : na,
offset=-lbrInput,
title="Regular Bearish",
linewidth=2,
color=(bearCond ? bearColor : noneColor)
)
plotshape(
DivergenceShowInput ? bearCond ? osc : na : na,
offset=-lbrInput,
title="Regular Bearish Label",
text=" Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor
)
//------------------------------------------------------------------------------
// Hidden Bearish
// Osc: Higher High
oscHH = osc > ta.valuewhen(phFound, osc , 1) and _inRange(phFound )
// Price: Lower High
priceLH = high < ta.valuewhen(phFound, high , 1)
hiddenBearCond = plotHiddenBearInput and priceLH and oscHH and phFound
plot(
phFound ? osc : na,
offset=-lbrInput,
title="Hidden Bearish",
linewidth=2,
color=(hiddenBearCond ? hiddenBearColor : noneColor)
)
plotshape(
DivergenceShowInput ? hiddenBearCond ? osc : na : na,
offset=-lbrInput,
title="Hidden Bearish Label",
text=" H Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor
)
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Check RSI Lineup ------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
bullTF = rsi > rsi and rsi > rsi
bearTF = rsi < rsi and rsi < rsi
bullTF1 = rsi1 > rsi1_1 and rsi1_1 > rsi1_2
bearTF1 = rsi1 < rsi1_1 and rsi1_1 < rsi1_2
bullTF2 = rsi2 > rsi2_1 and rsi2_1 > rsi2_2
bearTF2 = rsi2 < rsi2_1 and rsi2_1 < rsi2_2
bullTF3 = rsi3 > rsi3_1 and rsi3_1 > rsi3_2
bearTF3 = rsi3 < rsi3_1 and rsi3_1 < rsi3_2
bullTF4 = rsi4 > rsi4_1 and rsi4_1 > rsi4_2
bearTF4 = rsi4 < rsi4_1 and rsi4_1 < rsi4_2
bbTxt(bull,bear) =>
bull ? "BULLISH" : bear ? "BEARISCH" : 'NO LINEUP'
bbColor(bull,bear) =>
bull ? bullishColor : bear ? bearishColor : nomatchColor
newTC(tBox, col, row, txt, width, txtColor, bgColor, txtHA, txtSize) =>
table.cell(table_id=tBox,column=col, row=row, text=txt, width=width,text_color=txtColor,bgcolor=bgColor, text_halign=txtHA, text_size=txtSize)
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--- Define RSI Table Setting ----------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------
width_c0 = 0
width_c1 = 0
if rsiShowTable
var tBox = table.new(position=rsiTablePosition, columns=5, rows=6, bgcolor=color.rgb(18,22,33,50), frame_color=color.black, frame_width=1, border_color=color.black, border_width=1)
newTC(tBox, 0,1,"RSI Current",width_c0,color.orange,color.rgb(0,0,0,100),'right',rsiTextSize)
newTC(tBox, 1,1,str.format(" {0,number,#.##} ", rsi),width_c0,vWhite,rsi < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 4,1,bbTxt(bullTF, bearTF),width_c0,vWhite,bbColor(bullTF, bearTF),'center',rsiTextSize)
if rsiShowHist
newTC(tBox, 2,1,str.format(" {0,number,#.##} ", rsi ),width_c0,vWhite,rsi < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 3,1,str.format(" {0,number,#.##} ", rsi ),width_c0,vWhite,rsi < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
if rsiShowTF1
newTC(tBox, 0,2,TF2txt(rsiTF1),width_c0,vWhite,color.rgb(0,0,0,100),'right',rsiTextSize)
newTC(tBox, 1,2,str.format(" {0,number,#.##} ", rsi1),width_c0,vWhite,rsi1 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 4,2,bbTxt(bullTF1, bearTF1),width_c0,vWhite,bbColor(bullTF1,bearTF1),'center',rsiTextSize)
if rsiShowHist
newTC(tBox, 2,2,str.format(" {0,number,#.##} ", rsi1_1),width_c0,vWhite,rsi1_1 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 3,2,str.format(" {0,number,#.##} ", rsi1_2),width_c0,vWhite,rsi1_2 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
if rsiShowTF2
newTC(tBox, 0,3,TF2txt(rsiTF2),width_c0,vWhite,color.rgb(0,0,0,100),'right',rsiTextSize)
newTC(tBox, 1,3,str.format(" {0,number,#.##} ", rsi2),width_c0,vWhite,rsi2 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 4,3,bbTxt(bullTF2, bearTF2),width_c0,vWhite,bbColor(bullTF2,bearTF2),'center',rsiTextSize)
if rsiShowHist
newTC(tBox, 2,3,str.format(" {0,number,#.##} ", rsi2_1),width_c0,vWhite,rsi2_1 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 3,3,str.format(" {0,number,#.##} ", rsi2_2),width_c0,vWhite,rsi2_2 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
if rsiShowTF3
newTC(tBox, 0,4,TF2txt(rsiTF3),width_c0,vWhite,color.rgb(0,0,0,100),'right',rsiTextSize)
newTC(tBox, 1,4,str.format(" {0,number,#.##} ", rsi3),width_c0,vWhite,rsi3 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 4,4,bbTxt(bullTF3, bearTF3),width_c0,vWhite,bbColor(bullTF3,bearTF3),'center',rsiTextSize)
if rsiShowHist
newTC(tBox, 2,4,str.format(" {0,number,#.##} ", rsi3_1),width_c0,vWhite,rsi3_1 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 3,4,str.format(" {0,number,#.##} ", rsi3_2),width_c0,vWhite,rsi3_2 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
if rsiShowTF4
newTC(tBox, 0,5,TF2txt(rsiTF4),width_c0,vWhite,color.rgb(0,0,0,100),'right',rsiTextSize)
newTC(tBox, 1,5,str.format(" {0,number,#.##} ", rsi4),width_c0,vWhite,rsi4 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 4,5,bbTxt(bullTF4, bearTF4),width_c0,vWhite,bbColor(bullTF4,bearTF4),'center',rsiTextSize)
if rsiShowHist
newTC(tBox, 2,5,str.format(" {0,number,#.##} ", rsi4_1),width_c0,vWhite,rsi4_1 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
newTC(tBox, 3,5,str.format(" {0,number,#.##} ", rsi4_2),width_c0,vWhite,rsi4_2 < 50 ? bearishColor:bullishColor,'left',rsiTextSize)
//------------------------------------------------------
//--- Alerts -------------------------------------------
//------------------------------------------------------
KDJ Divergence Indicator(Regular & Hidden)📌 中文介绍
KDJ 背离指标(副图版,支持 Regular & Hidden)
这是一个基于 KDJ 指标 的背离检测工具,可以在副图中直观显示 Regular 背离(顶背离/底背离) 和 Hidden 背离(隐藏顶/隐藏底)。
功能特点:
可选计算基线:支持以 J 值 或 K 值 作为背离判定依据。
多种背离类型:
Regular Bullish(底背离):价格创新低,但指标不创新低 → 可能反弹。
Regular Bearish(顶背离):价格创新高,但指标不创新高 → 可能回落。
Hidden Bullish(隐藏底背离):价格不创新低,但指标创新低 → 可能延续上涨。
Hidden Bearish(隐藏顶背离):价格不创新高,但指标创新高 → 可能延续下跌。
连线显示:在副图用线条连接前后两个背离点,帮助更直观地发现趋势变化。
自定义选项:
可选择是否显示 Regular / Hidden 背离。
可调整回溯范围(左侧/右侧/最大最小)。
可自定义颜色和信号样式。
报警提醒:背离出现时会触发报警。
适合:
波段交易者寻找趋势反转。
短线交易者捕捉关键拐点。
技术分析结合 KDJ 的交易策略。
📌 English Introduction
KDJ Divergence Indicator (Sub-Chart, Regular & Hidden Supported)
This is a KDJ-based divergence detection tool, plotted in a sub-window, that highlights Regular Divergences (Bullish/Bearish) and Hidden Divergences (Hidden Bullish/Hidden Bearish).
Key Features:
Selectable Oscillator Line: Choose between J or K line as the basis for divergence detection.
Divergence Types:
Regular Bullish: Price makes a lower low, but oscillator makes a higher low → potential rebound.
Regular Bearish: Price makes a higher high, but oscillator makes a lower high → potential drop.
Hidden Bullish: Price holds higher low, but oscillator makes a lower low → potential trend continuation upward.
Hidden Bearish: Price holds lower high, but oscillator makes a higher high → potential trend continuation downward.
Line Connections: Draws connecting lines between divergence points for better visual clarity.
Customizable Settings:
Enable/disable Regular & Hidden divergences.
Adjustable left/right lookback and range filters.
Custom colors and shapes for signals.
Alert Ready: Alerts trigger when divergences are detected.
Best for:
Swing traders spotting trend reversals.
Short-term traders catching turning points.
Technical analysts using KDJ-based strategies.
RSI Divergence Pro+ VolumeRSI Divergence Pro+ Volume
What It Does:
RSI Divergence Pro+ Volume is a non-repainting indicator that helps traders spot potential bullish and bearish reversal zones using a classic technical analysis concept—RSI divergence—combined with advanced volume confirmation. The script highlights moments when price and RSI disagree, filtering for signals only when there is a significant volume spike, which helps reduce false positives in quiet or illiquid markets.
How It Works:
Bullish Divergence: Triggered when price makes a lower low but RSI forms a higher low, suggesting possible exhaustion in selling pressure.
Bearish Divergence: Triggered when price makes a higher high but RSI forms a lower high, signaling potential buying exhaustion.
Volume Confirmation: Signals only appear when trading volume exceeds a dynamic threshold (based on a user-defined moving average and multiplier), making alerts more reliable.
Visual Features: Customizable labels and optional gradient highlights mark the exact bars where divergence with volume confirmation occurs, making signals easy to see.
Alert System: Built-in alerts for both bullish and bearish divergences so traders can receive instant notifications.
How to Use:
Apply the script to any timeframe or liquid asset (15m–4H recommended for best results).
Watch for green “BULL↑” labels below bars (bullish divergence) and red “BEAR↓” labels above bars (bearish divergence).
Blue/violet background highlights confirm volume-verified signals.
Combine with your own risk management and confirmation tools for trade entries/exits.
Adjust lookback and volume settings to match your asset and style.
Originality & Usefulness:
This indicator stands out by combining traditional RSI divergence with advanced volume filtering, giving more credible and actionable reversal alerts. All logic is non-repainting and calculated on closed bars only. Settings are fully grouped and customizable, with professional visuals for clarity.
Limitations & Disclaimers:
Not every divergence results in a major reversal—use with other analysis.
More effective in trending or volatile markets; may produce more false signals in choppy/range conditions.
Signals are generated on bar close and do not repaint.
No indicator is a substitute for proper trading discipline and risk management.
Big Candle Identifier with RSI Divergence and Advanced Stops1. Strategy Objective
The main goal of this strategy is to:
Identify significant price momentum (big candles).
Enter trades at opportune moments based on market signals (candlestick patterns and RSI divergence).
Limit initial risk through a fixed stop loss.
Maximize profits by using a trailing stop that activates only after the trade moves a specified distance in the profitable direction.
2. Components of the Strategy
A. Big Candle Identification
The strategy identifies big candles as indicators of strong momentum.
A big candle is defined as:
The body (absolute difference between close and open) of the current candle (body0) is larger than the bodies of the last five candles.
The candle is:
Bullish Big Candle: If close > open.
Bearish Big Candle: If open > close.
Purpose: Big candles signal potential continuation or reversal of trends, serving as the primary entry trigger.
B. RSI Divergence
Relative Strength Index (RSI): A momentum oscillator used to detect overbought/oversold conditions and divergence.
Fast RSI: A 5-period RSI, which is more sensitive to short-term price movements.
Slow RSI: A 14-period RSI, which smoothens fluctuations over a longer timeframe.
Divergence: The difference between the fast and slow RSIs.
Positive divergence (divergence > 0): Bullish momentum.
Negative divergence (divergence < 0): Bearish momentum.
Visualization: The divergence is plotted on the chart, helping traders confirm momentum shifts.
C. Stop Loss
Initial Stop Loss:
When entering a trade, an immediate stop loss of 200 points is applied.
This stop loss ensures the maximum risk is capped at a predefined level.
Implementation:
Long Trades: Stop loss is set below the entry price at low - 200 points.
Short Trades: Stop loss is set above the entry price at high + 200 points.
Purpose:
Prevents significant losses if the price moves against the trade immediately after entry.
D. Trailing Stop
The trailing stop is a dynamic risk management tool that adjusts with price movements to lock in profits. Here’s how it works:
Activation Condition:
The trailing stop only starts trailing when the trade moves 200 ticks (profit) in the right direction:
Long Position: close - entry_price >= 200 ticks.
Short Position: entry_price - close >= 200 ticks.
Trailing Logic:
Once activated, the trailing stop:
For Long Positions: Trails behind the price by 150 ticks (trail_stop = close - 150 ticks).
For Short Positions: Trails above the price by 150 ticks (trail_stop = close + 150 ticks).
Exit Condition:
The trade exits automatically if the price touches the trailing stop level.
Purpose:
Ensures profits are locked in as the trade progresses while still allowing room for price fluctuations.
E. Trade Entry Logic
Long Entry:
Triggered when a bullish big candle is identified.
Stop loss is set at low - 200 points.
Short Entry:
Triggered when a bearish big candle is identified.
Stop loss is set at high + 200 points.
F. Trade Exit Logic
Trailing Stop: Automatically exits the trade if the price touches the trailing stop level.
Fixed Stop Loss: Exits the trade if the price hits the predefined stop loss level.
G. 21 EMA
The strategy includes a 21-period Exponential Moving Average (EMA), which acts as a trend filter.
EMA helps visualize the overall market direction:
Price above EMA: Indicates an uptrend.
Price below EMA: Indicates a downtrend.
H. Visualization
Big Candle Identification:
The open and close prices of big candles are plotted for easy reference.
Trailing Stop:
Plotted on the chart to visualize its progression during the trade.
Green Line: Indicates the trailing stop for long positions.
Red Line: Indicates the trailing stop for short positions.
RSI Divergence:
Positive divergence is shown in green.
Negative divergence is shown in red.
3. Key Parameters
trail_start_ticks: The number of ticks required before the trailing stop activates (default: 200 ticks).
trail_distance_ticks: The distance between the trailing stop and price once the trailing stop starts (default: 150 ticks).
initial_stop_loss_points: The fixed stop loss in points applied at entry (default: 200 points).
tick_size: Automatically calculates the minimum tick size for the trading instrument.
4. Workflow of the Strategy
Step 1: Entry Signal
The strategy identifies a big candle (bullish or bearish).
If conditions are met, a trade is entered with a fixed stop loss.
Step 2: Initial Risk Management
The trade starts with an initial stop loss of 200 points.
Step 3: Trailing Stop Activation
If the trade moves 200 ticks in the profitable direction:
The trailing stop is activated and follows the price at a distance of 150 ticks.
Step 4: Exit the Trade
The trade is exited if:
The price hits the trailing stop.
The price hits the initial stop loss.
5. Advantages of the Strategy
Risk Management:
The fixed stop loss ensures that losses are capped.
The trailing stop locks in profits after the trade becomes profitable.
Momentum-Based Entries:
The strategy uses big candles as entry triggers, which often indicate strong price momentum.
Divergence Confirmation:
RSI divergence helps validate momentum and avoid false signals.
Dynamic Profit Protection:
The trailing stop adjusts dynamically, allowing the trade to capture larger moves while protecting gains.
6. Ideal Market Conditions
This strategy performs best in:
Trending Markets:
Big candles and momentum signals are more effective in capturing directional moves.
High Volatility:
Larger price swings improve the probability of reaching the trailing stop activation level (200 ticks).
Comprehensive Trading Toolkit [BigBeluga]Trading Toolkit is a comprehensive indicator inspired by the trading strategies of the renowned crypto influencer Michaël van de Poppe . This tool combines RSI divergences, correction zones, and advanced support/resistance levels to provide traders with a robust framework for analyzing market movements.
🔵 Key Features:
RSI Divergences on Chart:
Automatically identifies and plots RSI divergences (bullish and bearish) directly on the main price chart.
Green lines indicate bullish divergences, suggesting potential upward reversals.
Red lines indicate bearish divergences, signaling possible downward movements.
Correction Boxes:
Traders typically define a correction as a drop in value of 10% or more. This drop can happen over a few hours or a few days. Also, it can last for less than 24 hours or many months.
This indicator visualizes corrections with blue shaded boxes, triggered by a percentage decline defined in the settings.
The boxes highlight sharp price drops, helping traders identify significant market movements quickly.
Advanced Support and Resistance Levels:
Dynamically detects key support and resistance levels based on price pivots.
When the price is above a level, it plots a green shaded area from the cross point, marking support.
When the price drops below a level, it plots a red shaded area, highlighting resistance.
Dashed lines indicate weaker levels, while solid lines represent stronger, more reliable levels.
🔵 Usage:
Identify Divergences: Use plotted RSI divergences to detect potential market reversals and align them with price action.
Analyze Correction Zones: Utilize correction boxes to evaluate significant price declines and find potential buying opportunities during these corrections.
Leverage Support and Resistance Levels: Confirm breakouts, reversals, or consolidation zones with the color-coded areas.
Enhance Risk Management: Combine divergences and correction zones to set informed stop-loss or take-profit levels.
Trading Toolkit empowers traders with actionable insights into market trends, corrections, and support/resistance dynamics, making it an invaluable tool for crypto and forex markets.
BTC CME Futures Divergence TrackerThis script tracks divergences between price action and open interest for the BTC CME Futures contract (symbol "BTC1!") using the following components:
Key Features:
1. Price Analysis: Identifies lower highs in the price over a specified lookback period. Marks these points with red upward-facing triangles above the bars.
2. Open Interest Analysis: Retrieves open interest (OI) data for the BTC CME Futures contract via request.security. Detects lower highs in open interest over the same lookback period. Highlights these points with blue downward-facing triangles below the bars.
3. Divergence Detection: A divergence is identified when both price and open interest form lower highs simultaneously. Highlights such occurrences with a purple background, indicating potential bearish sentiment or weakening momentum.
4. Alerts: If divergences are detected, an alert is triggered (if enabled), notifying the trader to take action.
5. Visualization: Open interest is plotted as a blue line in a separate pane for added context. Red and blue markers highlight significant points in price and open interest trends.
Use Cases:
- Spot Weakening Trends: Divergences between price and open interest may indicate a loss of momentum or bearish sentiment, allowing traders to preemptively adjust their strategies.
- Monitor Institutional Activity: Open interest changes reflect shifts in market participation, especially in derivative markets like CME Futures.
- Set Alerts for Key Signals: With automated alerts, traders can stay informed of potential divergence signals without constant monitoring.
Customization Options:
- Lookback Period: Adjust the number of bars used to detect lower highs.
- Timeframe: Choose the timeframe for fetching open interest data (e.g., daily, hourly).
- Alert Activation: Enable or disable alerts for divergences.
This tool combines price action with open interest dynamics to provide a robust method for identifying market trends and potential reversals in BTC CME Futures.
SMI Ergodic Indicator/Oscillator of Money Flow Index▮ Introduction
The Stochastic Momentum Index Ergodic (SMII) indicator is a technical analysis tool designed to predict trend reversals in the price of an asset.
It functions as a momentum oscillator, measuring the ratio of the smoothed price change to the smoothed absolute price change over a given number of previous periods.
The Ergodic SMI is based on the True Strength Index (TSI) and integrates a signal line, which is an exponential moving average (EMA) of the SMI indicator itself.
The Ergodic SMI oscillator provides a clearer picture of market trends than the traditional stochastic oscillator by incorporating the concept of 'ergodicity', which helps remove market noise.
On ther other hand, MFI (Money Flow Index) is a technical analysis indicator used to measure the inflow of money into an asset and thus help identify buying and selling pressure in a given financial instrument.
When these two indicators are combined, they can provide a more comprehensive view of price direction and market strength.
▮ Motivation: why another indicator?
By combining SMII with MFI, we can gain even more insights into the market.
One way to do this is to use the MFI as an input to the SMII, rather than just using price.
This means we are measuring momentum based on buying and selling pressure rather than just price.
Furthermore, there is the possibility of making several fine adjustments to both the calculation and visualization parameters that are not present in other indicators.
▮ What to look for
When using the SMII MFI indicator, there are a few things to look out for.
First, look at the SMII signal line.
When the line crosses above -40, it is considered a buy signal, while the crossing below +40 is considered a sell signal.
Also, pay attention to divergences between the SMII and the price.
If price is rising but the SMII is showing negative divergence, it could indicate that momentum is waning and a reversal could be in the offing.
Likewise, if price is falling but the SMII is showing positive divergence, this could indicate that momentum is building and a reversal could also be in the offing.
Divergences can be considered in both indicator and/or histogram.
Examples:
▮ Notes
The indicator presented here offers both the 'SMII' and the 'SMIO', that is, the 'Stochastic Momentum Index Ergodic Indicator' together with the 'Stochastic Momentum Index Ergodic Oscillator' (histogram), as per the documentation described in reference links.
So it is important to highlight the differences in relation to my other indicator, the 'Stochastic Momentum Index (SMI) of Money Flow Index (MFI)':
This last one is purely based on the SMI , which is implemented using SMA smoothing for the relative range and the high/low range.
Although they may seem the same in some situations, the calculation is actually different. The TSI tends to be more responsive at the expense of being noisier, while the SMI tends to be smoother. Which of these two indicators is best depends on the situation, the context, and the analyst's personal preference.
Please refer to reference links to more info.
▮ References
SMI documentation
SMII documentation
SMIO documentation
MFI documentation
VWAP DivergenceThe "VWAP Divergence" indicator leverages the VWAP Rolling indicator available in TradingView's library to analyze price and volume dynamics. This custom indicator calculates a rolling VWAP (Volume Weighted Average Price) and compares it with a Simple Moving Average (SMA) over a specified historical period.
Advantages:
1. Accurate VWAP Calculation: The VWAP Rolling indicator computes a VWAP that dynamically adjusts based on recent price and volume data. VWAP is a vital metric used by traders to understand the average price at which a security has traded, factoring in volume.
2. SMA Comparison: By contrasting the rolling VWAP from the VWAP Rolling indicator with an SMA of the same length, the indicator highlights potential divergences. This comparison can reveal shifts in market sentiment.
3. Divergence Identification: The primary purpose of this indicator is to detect divergences between the rolling VWAP from VWAP Rolling and the SMA. Divergence occurs when the rolling VWAP significantly differs from the SMA, indicating potential changes in market dynamics.
Interpretation:
1. Positive Oscillator Values: A positive oscillator (difference between rolling VWAP and SMA) suggests that the rolling VWAP, derived from the VWAP Rolling indicator, is above the SMA. This could indicate strong buying interest or accumulation.
2. Negative Oscillator Values: Conversely, a negative oscillator value indicates that the rolling VWAP is below the SMA. This might signal selling pressure or distribution.
3. Divergence Signals: Significant divergences between the rolling VWAP (from VWAP Rolling) and SMA can indicate shifts in market sentiment. For instance, a rising rolling VWAP diverging upwards from the SMA might suggest increasing bullish sentiment.
4. Confirmation with Price Movements: Traders often use these divergences alongside price action to confirm potential trend reversals or continuations.
Implementation:
1. Length Parameter: Adjust the Length input to modify the lookback period for computing both the rolling VWAP from VWAP Rolling and the SMA. A longer period provides a broader view of market sentiment, while a shorter period is more sensitive to recent price movements.
2. Visualization: The indicator plots the VWAP SMA Oscillator, which visually represents the difference (oscillator) between the rolling VWAP (from VWAP Rolling) and SMA over time.
3. Zero Line: The zero line (gray line) serves as a reference point. Oscillator values crossing above or below this line can be interpreted as bullish or bearish signals, respectively.
4. Contextual Analysis: Interpret signals from this indicator in conjunction with broader market conditions and other technical indicators to make informed trading decisions.
This indicator, utilizing the VWAP Rolling component, is valuable for traders seeking insights into the relationship between volume-weighted price levels and traditional moving averages, aiding in the identification of potential trading opportunities based on market dynamics.
Volume Delta Divergence Candle ColorThis indicator identifies divergences between price action and volume delta, highlighting potential reversal or continuation signals by coloring candles when buyer/seller pressure conflicts with the candle's direction.
**How It Works:**
The indicator analyzes real-time up/down volume data to detect two types of divergences:
🟣 **Seller Divergence (Fuscia)** - Occurs when a candle closes bullish (green) but the volume delta is negative, indicating more selling pressure despite the upward price movement. This suggests weak buying or potential distribution.
🔵 **Buyer Divergence (Cyan)** - Occurs when a candle closes bearish (red) but the volume delta is positive, indicating more buying pressure despite the downward price movement. This suggests weak selling or potential accumulation.
**Features:**
✓ Colors only divergent candles - non-divergent candles maintain your chart's default colors
✓ Uses actual exchange volume delta data (works best with CME futures and other instruments with tick-level data)
✓ Optional triangle markers above/below divergent candles for quick visual identification
✓ Clean, minimal design that doesn't clutter your chart
**Best Used For:**
- Identifying potential reversals or continuations
- Spotting weak price movements that may not follow through
- Confirming price action with underlying volume pressure
- Works on any timeframe with available volume delta data
**Note:** This indicator requires volume data from exchanges that provide tick-level information (CME futures, cryptocurrency exchanges, etc.). Results may vary on instruments with limited volume data.
RSI Divergence Strategy v6 What this does
Detects regular and hidden divergences between price and RSI using confirmed RSI pivots. Adds RSI@pivot entry gates, a normalized strength + volume filter, optional volume gate, delayed entries, and transparent risk management with rigid SL and activatable trailing. Visuals are throttled for clarity and include a gap-free horizontal RSI gradient.
How it works (simple)
🧮 RSI is calculated on your selected source/period.
📌 RSI pivots are confirmed with left/right lookbacks (lbL/lbR). A pivot becomes final only after lbR bars; before that, it can move (expected).
🔎 The latest confirmed pivot is compared against the previous confirmed pivot within your bar window:
• Regular Bullish = price lower low + RSI higher low
• Hidden Bullish = price higher low + RSI lower low
• Regular Bearish = price higher high + RSI lower high
• Hidden Bearish = price lower high + RSI higher high
💪 Each divergence gets a strength score that multiplies price % change, RSI change, and a volume ratio (Volume SMA / Baseline Volume SMA).
• Set Min divergence strength to filter tiny/noisy signals.
• Turn on the volume gate to require volume ratio ≥ your threshold (e.g., 1.0).
🎯 RSI@pivot gating:
• Longs only if RSI at the bullish pivot ≤ 30 (default).
• Shorts only if RSI at the bearish pivot ≥ 70 (default).
⏱ Entry timing:
• Immediate: on divergence confirm (delay = 0).
• Delayed: after N bars if RSI is still valid.
• RSI-only mode: ignore divergences; use RSI thresholds only.
🛡 Risk:
• Rigid SL is placed from average entry.
• Trailing activates only after unrealized gain ≥ threshold; it re-anchors on new highs (long) or new lows (short).
What’s NEW here (vs. the reference) — and why you may care
• Improved pivots + bar window → fewer early/misaligned signals; cleaner drawings.
• RSI@pivot gates → entries aligned with true oversold/overbought at the exact decision bar.
• Normalized strength + volume gate → ignore weak or low-volume divergences.
• Delayed entries → require the signal to persist N bars if you want more confirmation.
• Rigid SL + activatable trailing → trailing engages only after a cushion, so it’s less noisy.
• Clutter control + gradient → readable chart with a smooth RSI band look.
Suggested starting values (clear ranges)
• RSI@pivot thresholds: LONG ≤ 30 (oversold), SHORT ≥ 70 (overbought).
• Min divergence strength:
0.0 = off
3–6 = moderate filter
7–12 = strict filter for noisy LTFs
• Volume gate (ratio):
1.0 = at least baseline volume
1.2–1.5 = strong-volume only (fewer but cleaner signals)
• Pivot lookbacks:
lbL 1–2, lbR 3–4 (raise lbR to confirm later and reduce noise)
• Bar window (between pivots):
Min 5–10, Max 30–60 (increase Min if you see micro-pivots; increase Max for wider structures)
• Risk:
Rigid SL 2–5% on liquid majors; 5–10% on higher-volatility symbols
Trailing activation 1–3%, trailing 0.5–1.5% are common intraday starts
Plain-text examples
• BTCUSDT 1h → RSI 9, lbL 1, lbR 3, Min strength 5.0, Volume gate 1.0, SL 4.5%, Trail on 2.0%, Trail 1.0%.
• SPY 15m → RSI 8, lbL 1, lbR 3, Min strength 7.0, Volume gate 1.2, SL 3.0%, Trail on 1.5%, Trail 0.8%.
• EURUSD 4h → RSI 14, lbL 2, lbR 4, Min strength 4.0, Volume gate 1.0, SL 2.5%, Trail on 1.0%, Trail 0.5%.
Notes & limitations
• Pivot confirmation means the newest candidate pivot can move until lbR confirms it (expected).
• Results vary by timeframe/symbol/settings; always forward-test.
• Educational tool — no performance or profit claims.
Credits
• RSI by J. Welles Wilder Jr. (1978).
• Reference divergence script by eemani123:
• This version by tagstrading 2025 adds: improved pivot engine, RSI@pivot gating, normalized strength + optional volume gate, delayed entries, rigid SL and activatable trailing, and a gap-free RSI gradient.






















