Multiple Values TableThis Pine Script indicator, named "Multiple Values Table," provides a comprehensive view of various technical indicators in a tabular format directly on your trading chart. It allows traders to quickly assess multiple metrics without switching between different charts or panels.
Key Features:
Table Position and Size:
Users can choose the position of the table on the chart (e.g., top left, top right).
The size of the table can be adjusted (e.g., tiny, small, normal, large).
Moving Averages:
Calculates the 5-day Exponential Moving Average (5DEMA) using daily data.
Calculates the 5-week and 20-week EMAs (5WEMA and 20WEMA) using weekly data.
Indicates whether the current price is above or below these moving averages in percentage terms.
Drawdown and Williams VIX Fix:
Computes the drawdown from the 365-day high to the current close.
Calculates the Williams VIX Fix (WVF), which measures the volatility of the asset.
Shows both the current WVF and a 2% drawdown level.
Relative Strength Index (RSI):
Displays the current RSI and compares it to the RSI from 14 days ago.
Indicates whether the RSI is increasing, decreasing, or flat.
Stochastic RSI:
Computes the Stochastic RSI and compares it to the value from 14 days ago.
Indicates whether the Stochastic RSI is increasing, decreasing, or flat.
Normalized MACD (NMACD):
Calculates the Normalized MACD values.
Indicates whether the MACD is increasing, decreasing, or flat.
Awesome Oscillator (AO):
Calculates the AO on a daily timeframe.
Indicates whether the AO is increasing, decreasing, or flat.
Volume Analysis:
Displays the average volume over the last 22 days.
Shows the current day's volume as a percentage of the average volume.
Percentile Calculations:
Calculates the current percentile rank of the WVF and ATH over specified periods.
Indicates the percentile rank of the current volume percentage over the past period.
Table Display:
All these values are presented in a neatly formatted table.
The table updates dynamically with the latest data.
Example Use Cases:
Comprehensive Market Analysis: Quickly assess multiple indicators at a glance.
Trend and Momentum Analysis: Identify trends and momentum changes based on various moving averages and oscillators.
Volatility and Drawdown Monitoring: Track volatility and drawdown levels to manage risk effectively.
This script offers a powerful tool for traders who want to have a holistic view of various technical indicators in one place. It provides flexibility in customization and a user-friendly interface to enhance your trading experience.
Cerca negli script per "港股央企红利etf"
Drawdown from 22-Day High (Daily Anchored)This Pine Script indicator, titled "Drawdown from 22-Day High (Daily Anchored)," is designed to plot various drawdown levels from the highest high over the past 22 days. This helps traders visualize the performance and potential risk of the security in terms of its recent high points.
Key Features:
Daily High Data:
Fetches daily high prices using the request.security function with a daily timeframe.
Highest High Calculation:
Calculates the highest high over the last 22 days using daily data. This represents the highest price the security has reached in this period.
Drawdown Levels:
Computes various drawdown levels from the highest high:
2% Drawdown
5% Drawdown
10% Drawdown
15% Drawdown
25% Drawdown
45% Drawdown
50% Drawdown
Dynamic Line Coloring:
The color of the 2% drawdown line changes dynamically based on the current closing price:
Green (#02ff0b) if the close is above the 2% drawdown level.
Red (#ff0000) if the close is below the 2% drawdown level.
Plotting Drawdown Levels:
Plots each drawdown level on the chart with specific colors and line widths for easy visual distinction:
2% Drawdown: Green or Red, depending on the closing price.
5% Drawdown: Orange.
10% Drawdown: Blue.
15% Drawdown: Maroon.
25% Drawdown: Purple.
45% Drawdown: Yellow.
50% Drawdown: Black.
Labels for Drawdown Levels:
Adds labels at the end of each drawdown line to indicate the percentage drawdown:
Labels display "2% WVF," "5% WVF," "10% WVF," "15% WVF," "25% WVF," "45% WVF," and "50% WVF" respectively.
The labels are positioned dynamically at the latest bar index to ensure they are always visible.
Explanation of Williams VIX Fix (WVF)
The Williams VIX Fix (WVF) is a volatility indicator designed to replicate the behavior of the VIX (Volatility Index) using price data instead of options prices. It helps traders identify market bottoms and volatility spikes.
Key Aspects of WVF:
Calculation:
The WVF measures the highest high over a specified period (typically 22 days) and compares it to the current closing price.
It is calculated as:
WVF
=
highest high over period
−
current close
highest high over period
×
100
This formula provides a percentage measure of how far the price has fallen from its recent high.
Interpretation:
High WVF Values: Indicate increased volatility and potential market bottoms, suggesting oversold conditions.
Low WVF Values: Suggest lower volatility and potentially overbought conditions.
Usage:
WVF can be used in conjunction with other indicators (e.g., moving averages, RSI) to confirm signals.
It is particularly useful for identifying periods of significant price declines and potential reversals.
In the script, the WVF concept is incorporated into the drawdown levels, providing a visual representation of how far the price has fallen from its 22-day high.
Example Use Cases:
Risk Management: Quickly identify significant drawdown levels to assess the risk of current positions.
Volatility Monitoring: Use the WVF-based drawdown levels to gauge market volatility.
Support Levels: Utilize drawdown levels as potential support levels where price might find buying interest.
This script offers traders and analysts an efficient way to visualize and track important drawdown levels from recent highs, helping in better risk management and decision-making. The dynamic color and label features enhance the readability and usability of the indicator.
Tandem EMA TrendsThis indicator helps to identify trends using 2 (tandem) EMAs: a fast EMA and a slow EMA. Set the lengths of the EMAs in the inputs (fast EMA should be a smaller number than the slow EMA).
The trend is bullish if the current value of the fast EMA > current value of the slow EMA AND the current value of the fast EMA > the prior bar's value of the fast EMA.
The trend is bearish if the current value of the fast EMA < current value of the slow EMA AND the current value of the fast EMA < the prior bar's value of the fast EMA.
The fast EMA is countertrend to the slow EMA if either of the following 2 conditions exist:
The current value of the fast EMA > current value of the slow EMA AND the current value of the fast EMA < the prior bar's value of the fast EMA (bullish countertrend).
-OR-
The current value of the fast EMA < current value of the slow EMA AND the current value of the fast EMA > the prior bar's value of the fast EMA (bearish countertrend).
Use this script to set custom alerts based off of the current trend like sending webhooks when specific conditions exist.
Customize the colors of the plots.
RSI OB/OS Strategy Analyzer█ OVERVIEW
The RSI OB/OS Strategy Analyzer is a comprehensive trading tool designed to help traders identify and evaluate overbought/oversold reversal opportunities using the Relative Strength Index (RSI). It provides visual signals, performance metrics, and a detailed table to analyze the effectiveness of RSI-based strategies over a user-defined lookback period.
█ KEY FEATURES
RSI Calculation
Calculates RSI with customizable period (default 14)
Plots dynamic overbought (70) and oversold (30) levels
Adds background coloring for OB/OS regions
Reversal Signals
Identifies signals based on RSI crossing OB/OS levels
Two entry strategies available:
Revert Cross: Triggers when RSI exits OB/OS zone
Cross Threshold: Triggers when RSI enters OB/OS zone
Trade Direction
Users can select a trade bias:
Long: Focuses on oversold reversals (bullish signals)
Short: Focuses on overbought reversals (bearish signals)
Performance Metrics
Calculates three key statistics for each lookback period:
Win Rate: Percentage of profitable trades
Mean Return: Average return across all trades
Median Return: Median return across all trades
Metrics calculated as percentage changes from entry price
Visual Signals
Dual-layer signal display:
BUY: Green triangles + text labels below price
SELL: Red triangles + text labels above price
Semi-transparent background highlighting in OB/OS zones
Performance Table
Interactive table showing metrics for each lookback period
Color-coded visualization:
Win Rate: Gradient from red (low) to green (high)
Returns: Green for positive, red for negative
Time Filtering
Users can define a specific time window for the indicator to analyze trades, ensuring that performance metrics are calculated only for the desired period.
Customizable Display
Adjustable table font sizes: Auto/Small/Normal/Large
Toggle option for table visibility
█ PURPOSE
The RSI OB/OS Strategy Analyzer helps traders:
Identify mean-reversion opportunities through RSI extremes
Backtest entry strategy effectiveness across multiple time horizons
Optimize trade timing through visual historical performance data
Quickly assess strategy robustness with color-coded metrics
█ IDEAL USERS
Counter-Trend Traders: Looking to capitalize on RSI extremes
Systematic Traders: Needing quantitative strategy validation
Educational Users: Studying RSI behavior in different market conditions
Multi-Timeframe Analysts: Interested in forward returns analysis
Internal Bar Strength (IBS) Strategy█ STRATEGY DESCRIPTION
The "Internal Bar Strength (IBS) Strategy" is a mean-reversion strategy designed to identify trading opportunities based on the closing price's position within the daily price range. It enters a long position when the IBS indicates oversold conditions and exits when the IBS reaches overbought levels. This strategy was designed to be used on the daily timeframe.
█ WHAT IS INTERNAL BAR STRENGTH (IBS)?
Internal Bar Strength (IBS) measures where the closing price falls within the high-low range of a bar. It is calculated as:
IBS = (Close - Low) / (High - Low)
- **Low IBS (≤ 0.2)**: Indicates the close is near the bar's low, suggesting oversold conditions.
- **High IBS (≥ 0.8)**: Indicates the close is near the bar's high, suggesting overbought conditions.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The IBS value drops below the Lower Threshold (default: 0.2).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
2. EXIT CONDITION
A Sell Signal is generated when the IBS value rises to or above the Upper Threshold (default: 0.8). This prompts the strategy to exit the position.
█ ADDITIONAL SETTINGS
Upper Threshold: The IBS level at which the strategy exits trades. Default is 0.8.
Lower Threshold: The IBS level at which the strategy enters long positions. Default is 0.2.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for ranging markets and performs best when prices frequently revert to the mean.
It is sensitive to extreme IBS values, which help identify potential reversals.
Backtesting results should be analyzed to optimize the Upper/Lower Thresholds for specific instruments and market conditions.
Bollinger Bands Reversal Strategy Analyzer█ OVERVIEW
The Bollinger Bands Reversal Overlay is a versatile trading tool designed to help traders identify potential reversal opportunities using Bollinger Bands. It provides visual signals, performance metrics, and a detailed table to analyze the effectiveness of reversal-based strategies over a user-defined lookback period.
█ KEY FEATURES
Bollinger Bands Calculation
The indicator calculates the standard Bollinger Bands, consisting of:
A middle band (basis) as the Simple Moving Average (SMA) of the closing price.
An upper band as the basis plus a multiple of the standard deviation.
A lower band as the basis minus a multiple of the standard deviation.
Users can customize the length of the Bollinger Bands and the multiplier for the standard deviation.
Reversal Signals
The indicator identifies potential reversal signals based on the interaction between the price and the Bollinger Bands.
Two entry strategies are available:
Revert Cross: Waits for the price to close back above the lower band (for longs) or below the upper band (for shorts) after crossing it.
Cross Threshold: Triggers a signal as soon as the price crosses the lower band (for longs) or the upper band (for shorts).
Trade Direction
Users can select a trade bias:
Long: Focuses on bullish reversal signals.
Short: Focuses on bearish reversal signals.
Performance Metrics
The indicator calculates and displays the performance of trades over a user-defined lookback period ( barLookback ).
Metrics include:
Win Rate: The percentage of trades that were profitable.
Mean Return: The average return across all trades.
Median Return: The median return across all trades.
These metrics are calculated for each bar in the lookback period, providing insights into the strategy's performance over time.
Visual Signals
The indicator plots buy and sell signals on the chart:
Buy Signals: Displayed as green triangles below the price bars.
Sell Signals: Displayed as red triangles above the price bars.
Performance Table
A customizable table is displayed on the chart, showing the performance metrics for each bar in the lookback period.
The table includes:
Win Rate: Highlighted with gradient colors (green for high win rates, red for low win rates).
Mean Return: Colored based on profitability (green for positive returns, red for negative returns).
Median Return: Colored similarly to the mean return.
Time Filtering
Users can define a specific time window for the indicator to analyze trades, ensuring that performance metrics are calculated only for the desired period.
Customizable Display
The table's font size can be adjusted to suit the user's preference, with options for "Auto," "Small," "Normal," and "Large."
█ PURPOSE
The Bollinger Bands Reversal Overlay is designed to:
Help traders identify high-probability reversal opportunities using Bollinger Bands.
Provide actionable insights into the performance of reversal-based strategies.
Enable users to backtest and optimize their trading strategies by analyzing historical performance metrics.
█ IDEAL USERS
Swing Traders: Looking for reversal opportunities within a trend.
Mean Reversion Traders: Interested in trading price reversals to the mean.
Strategy Developers: Seeking to backtest and refine Bollinger Bands-based strategies.
Performance Analysts: Wanting to evaluate the effectiveness of reversal signals over time.
Buy on 5 day low Strategy█ STRATEGY DESCRIPTION
The "Buy on 5 Day Low Strategy" is a mean-reversion strategy designed to identify potential buying opportunities when the price drops below the lowest low of the previous five days. It enters a long position when specific conditions are met and exits when the price exceeds the high of the previous day. This strategy is optimized for use on daily or higher timeframes.
█ WHAT IS THE 5-DAY LOW?
The 5-Day Low is the lowest price observed over the last five days. This level is used as a reference to identify potential oversold conditions and reversal points.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The close price is below the lowest low of the previous five days (`close < _lowest `).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
2. EXIT CONDITION
A Sell Signal is generated when the current closing price exceeds the high of the previous day (`close > high `). This indicates that the price has shown strength, potentially confirming the reversal and prompting the strategy to exit the position.
█ ADDITIONAL SETTINGS
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for mean-reverting markets and performs best when the price frequently oscillates around key support levels.
It is sensitive to oversold conditions, as indicated by the 5-Day Low, and overbought conditions, as indicated by the previous day's high.
Backtesting results should be analyzed to optimize the strategy for specific instruments and market conditions.
3-Bar Low Strategy█ STRATEGY DESCRIPTION
The "3-Bar Low Strategy" is a mean-reversion strategy designed to identify potential buying opportunities when the price drops below the lowest low of the previous three bars. It enters a long position when specific conditions are met and exits when the price exceeds the highest high of the previous seven bars. This strategy is suitable for use on various timeframes.
█ WHAT IS THE 3-BAR LOW?
The 3-Bar Low is the lowest price observed over the last three bars. This level is used as a reference to identify potential oversold conditions and reversal points.
█ WHAT IS THE 7-BAR HIGH?
The 7-Bar High is the highest price observed over the last seven bars. This level is used as a reference to identify potential overbought conditions and exit points.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The close price is below the lowest low of the previous three bars (`close < _lowest `).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
If the EMA Filter is enabled, the close price must also be above the 200-period Exponential Moving Average (EMA).
2. EXIT CONDITION
A Sell Signal is generated when the current closing price exceeds the highest high of the previous seven bars (`close > _highest `). This indicates that the price has shown strength, potentially confirming the reversal and prompting the strategy to exit the position.
█ ADDITIONAL SETTINGS
MA Period: The lookback period for the 200-period EMA used in the EMA Filter. Default is 200.
Use EMA Filter: Enables or disables the EMA Filter for long entries. Default is disabled.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for mean-reverting markets and performs best when the price frequently oscillates around key support and resistance levels.
It is sensitive to oversold conditions, as indicated by the 3-Bar Low, and overbought conditions, as indicated by the 7-Bar High.
Backtesting results should be analyzed to optimize the MA Period and EMA Filter settings for specific instruments.
Bollinger Bands Reversal + IBS Strategy█ STRATEGY DESCRIPTION
The "Bollinger Bands Reversal Strategy" is a mean-reversion strategy designed to identify potential buying opportunities when the price deviates below the lower Bollinger Band and the Internal Bar Strength (IBS) indicates oversold conditions. It enters a long position when specific conditions are met and exits when the IBS indicates overbought conditions. This strategy is suitable for use on various timeframes.
█ WHAT ARE BOLLINGER BANDS?
Bollinger Bands consist of three lines:
- **Basis**: A Simple Moving Average (SMA) of the price over a specified period.
- **Upper Band**: The basis plus a multiple of the standard deviation of the price.
- **Lower Band**: The basis minus a multiple of the standard deviation of the price.
Bollinger Bands help identify periods of high volatility and potential reversal points.
█ WHAT IS INTERNAL BAR STRENGTH (IBS)?
Internal Bar Strength (IBS) is a measure of where the closing price is relative to the high and low of the bar. It is calculated as:
IBS = (Close - Low) / (High - Low)
A low IBS value (e.g., below 0.2) indicates that the close is near the low of the bar, suggesting oversold conditions. A high IBS value (e.g., above 0.8) indicates that the close is near the high of the bar, suggesting overbought conditions.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The IBS value is below 0.2, indicating oversold conditions.
The close price is below the lower Bollinger Band.
The signal occurs within the specified time window (between `Start Time` and `End Time`).
2. EXIT CONDITION
A Sell Signal is generated when the IBS value exceeds 0.8, indicating overbought conditions. This prompts the strategy to exit the position.
█ ADDITIONAL SETTINGS
Length: The lookback period for calculating the Bollinger Bands. Default is 20.
Multiplier: The number of standard deviations used to calculate the upper and lower Bollinger Bands. Default is 2.0.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for mean-reverting markets and performs best when the price frequently deviates from the Bollinger Bands.
It is sensitive to oversold and overbought conditions, as indicated by the IBS, which helps to identify potential reversals.
Backtesting results should be analyzed to optimize the Length and Multiplier parameters for specific instruments.
Average High-Low Range + IBS Reversal Strategy█ STRATEGY DESCRIPTION
The "Average High-Low Range + IBS Reversal Strategy" is a mean-reversion strategy designed to identify potential buying opportunities when the price deviates significantly from its average high-low range and the Internal Bar Strength (IBS) indicates oversold conditions. It enters a long position when specific conditions are met and exits when the price shows strength by exceeding the previous bar's high. This strategy is suitable for use on various timeframes.
█ WHAT IS THE AVERAGE HIGH-LOW RANGE?
The Average High-Low Range is calculated as the Simple Moving Average (SMA) of the difference between the high and low prices over a specified period. It helps identify periods of increased volatility and potential reversal points.
█ WHAT IS INTERNAL BAR STRENGTH (IBS)?
Internal Bar Strength (IBS) is a measure of where the closing price is relative to the high and low of the bar. It is calculated as:
IBS = (Close - Low) / (High - Low)
A low IBS value (e.g., below 0.2) indicates that the close is near the low of the bar, suggesting oversold conditions.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The close price has been below the buy threshold (calculated as `upper - (2.5 * hl_avg)`) for a specified number of consecutive bars (`bars_below_threshold`).
The IBS value is below the specified buy threshold (`ibs_buy_treshold`).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
2. EXIT CONDITION
A Sell Signal is generated when the current closing price exceeds the high of the previous bar (`close > high `). This indicates that the price has shown strength, potentially confirming the reversal and prompting the strategy to exit the position.
█ ADDITIONAL SETTINGS
Length: The lookback period for calculating the average high-low range. Default is 20.
Bars Below Threshold: The number of consecutive bars the price must remain below the buy threshold to trigger a Buy Signal. Default is 2.
IBS Buy Threshold: The IBS value below which a Buy Signal is triggered. Default is 0.2.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for mean-reverting markets and performs best when the price frequently deviates from its average high-low range.
It is sensitive to oversold conditions, as indicated by the IBS, which helps to identify potential reversals.
Backtesting results should be analyzed to optimize the Length, Bars Below Threshold, and IBS Buy Threshold parameters for specific instruments.
Turn of the Month Strategy on Steroids█ STRATEGY DESCRIPTION
The "Turn of the Month Strategy on Steroids" is a seasonal mean-reversion strategy designed to capitalize on price movements around the end of the month. It enters a long position when specific conditions are met and exits when the Relative Strength Index (RSI) indicates overbought conditions. This strategy is optimized for use on daily or higher timeframes.
█ WHAT IS THE TURN OF THE MONTH EFFECT?
The Turn of the Month effect refers to the observed tendency of stock prices to rise around the end of the month. This strategy leverages this phenomenon by entering long positions when the price shows signs of a reversal during this period.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The current day of the month is greater than or equal to the specified `dayOfMonth` threshold (default is 25).
The close price is lower than the previous day's close (`close < close `).
The previous day's close is also lower than the close two days ago (`close < close `).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
There is no existing open position (`strategy.position_size == 0`).
2. EXIT CONDITION
A Sell Signal is generated when the 2-period RSI exceeds 65, indicating overbought conditions. This prompts the strategy to exit the position.
█ ADDITIONAL SETTINGS
Day of Month: The day of the month threshold for triggering a Buy Signal. Default is 25.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed to exploit seasonal price patterns around the end of the month.
It performs best in markets where the Turn of the Month effect is pronounced.
Backtesting results should be analyzed to optimize the `dayOfMonth` threshold and RSI parameters for specific instruments.
Consecutive Bars Above/Below EMA Buy the Dip Strategy█ STRATEGY DESCRIPTION
The "Consecutive Bars Above/Below EMA Buy the Dip Strategy" is a mean-reversion strategy designed to identify potential buying opportunities when the price dips below a moving average for a specified number of consecutive bars. It enters a long position when the dip condition is met and exits when the price shows strength by exceeding the previous bar's high. This strategy is suitable for use on various timeframes.
█ WHAT IS THE MOVING AVERAGE?
The strategy uses either a Simple Moving Average (SMA) or an Exponential Moving Average (EMA) as a reference for identifying dips. The type and length of the moving average can be customized in the settings.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The close price is below the selected moving average for a specified number of consecutive bars (`consecutiveBarsTreshold`).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
2. EXIT CONDITION
A Sell Signal is generated when the current closing price exceeds the high of the previous bar (`close > high `). This indicates that the price has shown strength, potentially confirming the reversal and prompting the strategy to exit the position.
█ ADDITIONAL SETTINGS
Consecutive Bars Threshold: The number of consecutive bars the price must remain below the moving average to trigger a Buy Signal. Default is 3.
MA Type: The type of moving average used (SMA or EMA). Default is SMA.
MA Length: The length of the moving average. Default is 5.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for mean-reverting markets and performs best when the price frequently oscillates around the moving average.
It is sensitive to the number of consecutive bars below the moving average, which helps to identify potential dips.
Backtesting results should be analysed to optimize the Consecutive Bars Threshold, MA Type, and MA Length for specific instruments.
Consecutive Bearish Candle Strategy█ STRATEGY DESCRIPTION
The "Consecutive Bearish Candle Strategy" is a momentum-based strategy designed to identify potential reversals after a sustained bearish move. It enters a long position when a specific number of consecutive bearish candles occur and exits when the price shows strength by exceeding the previous bar's high. This strategy is optimized for use on various timeframes and instruments.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The close price has been lower than the previous close for at least `Lookback` consecutive bars. This indicates a sustained bearish move, suggesting a potential reversal.
The signal occurs within the specified time window (between `Start Time` and `End Time`).
2. EXIT CONDITION
A Sell Signal is generated when the current closing price exceeds the high of the previous bar (`close > high `). This indicates that the price has shown strength, potentially confirming the reversal and prompting the strategy to exit the position.
█ ADDITIONAL SETTINGS
Lookback: The number of consecutive bearish bars required to trigger a Buy Signal. Default is 3.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for markets with frequent momentum shifts.
It performs best in volatile conditions where price movements are significant.
Backtesting results should be analysed to optimize the `Lookback` parameter for specific instruments.
4 Bar Momentum Reversal strategy█ STRATEGY DESCRIPTION
The "4 Bar Momentum Reversal Strategy" is a mean-reversion strategy designed to identify price reversals following a sustained downward move. It enters a long position when a reversal condition is met and exits when the price shows strength by exceeding the previous bar's high. This strategy is optimized for indices and stocks on the daily timeframe.
█ WHAT IS THE REFERENCE CLOSE?
The Reference Close is the closing price from X bars ago, where X is determined by the Lookback period. Think of it as a moving benchmark that helps the strategy assess whether prices are trending upwards or downwards relative to past performance. For example, if the Lookback is set to 4, the Reference Close is the closing price 4 bars ago (`close `).
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The close price has been lower than the Reference Close for at least `Buy Threshold` consecutive bars. This indicates a sustained downward move, suggesting a potential reversal.
The signal occurs within the specified time window (between `Start Time` and `End Time`).
2. EXIT CONDITION
A Sell Signal is generated when the current closing price exceeds the high of the previous bar (`close > high `). This indicates that the price has shown strength, potentially confirming the reversal and prompting the strategy to exit the position.
█ ADDITIONAL SETTINGS
Buy Threshold: The number of consecutive bearish bars needed to trigger a Buy Signal. Default is 4.
Lookback: The number of bars ago used to calculate the Reference Close. Default is 4.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for trending markets with frequent reversals.
It performs best in volatile conditions where price movements are significant.
Backtesting results should be analysed to optimize the Buy Threshold and Lookback parameters for specific instruments.
Pivot Points High Low - JVersion**Indicator Name**: Pivot Points High Low (Without Price Labels)
**Overview**
The Pivot Points High Low indicator is designed to identify and mark local highs and lows (or “pivot” points) on a price chart. Unlike other pivot-based indicators that label each pivot with its exact price, this version displays only small circular markers—removing clutter and focusing attention on the pivot locations themselves.
**Key Features**
1. **Pivot Detection**
- The script uses TradingView’s built-in `ta.pivothigh()` and `ta.pivotlow()` functions to determine when the market has formed a pivot high or pivot low.
- You can define how many bars to the left and right are required to confirm a pivot, helping you tailor the indicator to different market conditions and timeframes.
2. **Clean Markers**
- Each confirmed pivot high or low is represented by a circle placed precisely on the candle where the pivot is detected.
- No numeric labels are shown, keeping your chart visually uncluttered while still highlighting important turning points in price.
3. **Customization**
- **Left/Right Pivot Length**: Choose how many bars to the left and right must be lower (for highs) or higher (for lows) to validate a pivot. Larger values mean fewer but more significant pivots; smaller values mean more frequent pivots.
- **Marker Colors**: Independently customize the colors of the high-marker circles and low-marker circles to easily distinguish between local tops and bottoms.
4. **Usage and Interpretation**
- **Identifying Reversals**: As soon as a circle appears at a local high or low, it may indicate a short-term trend reversal or the beginning of a new swing in price.
- **Combine with Other Tools**: Pivot points are more informative when used alongside broader trend analysis, support/resistance identification, or other momentum indicators.
- **Adjusting Sensitivity**: By increasing or decreasing the left/right pivot lengths, you can make the indicator more or less sensitive to small market fluctuations.
5. **Practical Tips**
- **Swing Trading**: Shorter lengths can be used by swing traders looking for quick reversals in lower timeframes.
- **Longer-Term Trends**: Larger lengths are better for position traders or those who prefer to see only major turning points in the market.
- **Clean Chart Layout**: Because text labels are removed, you can visually focus on the circles—especially helpful if you use multiple indicators and prefer a less cluttered chart.
---
By pinpointing local highs and lows without price labels, the **Pivot Points High Low** indicator keeps charts neat yet informative, allowing traders to quickly recognize potential turning points in the market and make more informed decisions.
HTF RangeThis Pine Script indicator, HTF Range , is a tool designed to help traders visualize predefined ranges (highs and lows) and analyze price action within those levels. It's particularly useful for identifying key levels and trends for a set of pre-configured assets, such as cryptocurrencies, stocks, and forex pairs.
Key Features:
1. Predefined Symbol Ranges:
Stores a list of assets (tickers) with corresponding high, low, and trend information in an array.
Automatically matches the current symbol on the chart (syminfo.ticker) to fetch and display relevant range data:
High Range: The upper price level.
Low Range: The lower price level.
Trend: Indicates whether the trend is "up" or "down."
Example tickers: BTCUSDT, ETHUSDT, GBPUSD, NVDA, and more.
2. Range Visualizations:
Extremeties: Draws dashed horizontal lines for the high and low levels.
Half-Level: Marks the midpoint of the range with a dashed yellow line.
Upper and Lower Quarters: Highlights upper and lower portions of the range using shaded boxes with customizable extensions:
3. Configurable Inputs:
Enable/Disable Levels: Toggles for extremeties, half-levels, and quarter-levels.
Table Info: Option to display a table summarizing the range data (symbol, high, low, and trend).
4. Dynamic Calculations:
Automatically calculates the difference between the high and low (diff) for precise range subdivisions.
Dynamically adjusts visuals based on the trend (up or down) for better relevance to the market condition.
5. Table Display:
Provides a detailed summary of the asset's range and trend in the top-right corner of the chart:
Symbol ticker.
High and low levels.
Overall trend direction.
Use Case:
This indicator is ideal for traders who:
Trade multiple assets and want a quick overview of key price ranges.
Analyze price movements relative to predefined support and resistance zones.
Use range-based strategies for trend following, breakout trading, or reversals.
Request█ OVERVIEW
This library is a tool for Pine Script™ programmers that consolidates access to a wide range of lesser-known data feeds available on TradingView, including metrics from the FRED database, FINRA short sale volume, open interest, and COT data. The functions in this library simplify requests for these data feeds, making them easier to retrieve and use in custom scripts.
█ CONCEPTS
Federal Reserve Economic Data (FRED)
FRED (Federal Reserve Economic Data) is a comprehensive online database curated by the Federal Reserve Bank of St. Louis. It provides free access to extensive economic and financial data from U.S. and international sources. FRED includes numerous economic indicators such as GDP, inflation, employment, and interest rates. Additionally, it provides financial market data, regional statistics, and international metrics such as exchange rates and trade balances.
Sourced from reputable organizations, including U.S. government agencies, international institutions, and other public and private entities, FRED enables users to analyze over 825,000 time series, download their data in various formats, and integrate their information into analytical tools and programming workflows.
On TradingView, FRED data is available from ticker identifiers with the "FRED:" prefix. Users can search for FRED symbols in the "Symbol Search" window, and Pine scripts can retrieve data for these symbols via `request.*()` function calls.
FINRA Short Sale Volume
FINRA (the Financial Industry Regulatory Authority) is a non-governmental organization that supervises and regulates U.S. broker-dealers and securities professionals. Its primary aim is to protect investors and ensure integrity and transparency in financial markets.
FINRA's Short Sale Volume data provides detailed information about daily short-selling activity across U.S. equity markets. This data tracks the volume of short sales reported to FINRA's trade reporting facilities (TRFs), including shares sold on FINRA-regulated Alternative Trading Systems (ATSs) and over-the-counter (OTC) markets, offering transparent access to short-selling information not typically available from exchanges. This data helps market participants, researchers, and regulators monitor trends in short-selling and gain insights into bearish sentiment, hedging strategies, and potential market manipulation. Investors often use this data alongside other metrics to assess stock performance, liquidity, and overall trading activity.
It is important to note that FINRA's Short Sale Volume data does not consolidate short sale information from public exchanges and excludes trading activity that is not publicly disseminated.
TradingView provides ticker identifiers for requesting Short Sale Volume data with the format "FINRA:_SHORT_VOLUME", where "" is a supported U.S. equities symbol (e.g., "AAPL").
Open Interest (OI)
Open interest is a cornerstone indicator of market activity and sentiment in derivatives markets such as options or futures. In contrast to volume, which measures the number of contracts opened or closed within a period, OI measures the number of outstanding contracts that are not yet settled. This distinction makes OI a more robust indicator of how money flows through derivatives, offering meaningful insights into liquidity, market interest, and trends. Many traders and investors analyze OI alongside volume and price action to gain an enhanced perspective on market dynamics and reinforce trading decisions.
TradingView offers many ticker identifiers for requesting OI data with the format "_OI", where "" represents a derivative instrument's ticker ID (e.g., "COMEX:GC1!").
Commitment of Traders (COT)
Commitment of Traders data provides an informative weekly breakdown of the aggregate positions held by various market participants, including commercial hedgers, non-commercial speculators, and small traders, in the U.S. derivative markets. Tallied and managed by the Commodity Futures Trading Commission (CFTC) , these reports provide traders and analysts with detailed insight into an asset's open interest and help them assess the actions of various market players. COT data is valuable for gaining a deeper understanding of market dynamics, sentiment, trends, and liquidity, which helps traders develop informed trading strategies.
TradingView has numerous ticker identifiers that provide access to time series containing data for various COT metrics. To learn about COT ticker IDs and how they work, see our LibraryCOT publication.
█ USING THE LIBRARY
Common function characteristics
• This library's functions construct ticker IDs with valid formats based on their specified parameters, then use them as the `symbol` argument in request.security() to retrieve data from the specified context.
• Most of these functions automatically select the timeframe of a data request because the data feeds are not available for all timeframes.
• All the functions have two overloads. The first overload of each function uses values with the "simple" qualifier to define the requested context, meaning the context does not change after the first script execution. The second accepts "series" values, meaning it can request data from different contexts across executions.
• The `gaps` parameter in most of these functions specifies whether the returned data is `na` when a new value is unavailable for request. By default, its value is `false`, meaning the call returns the last retrieved data when no new data is available.
• The `repaint` parameter in applicable functions determines whether the request can fetch the latest unconfirmed values from a higher timeframe on realtime bars, which might repaint after the script restarts. If `false`, the function only returns confirmed higher-timeframe values to avoid repainting. The default value is `true`.
`fred()`
The `fred()` function retrieves the most recent value of a specified series from the Federal Reserve Economic Data (FRED) database. With this function, programmers can easily fetch macroeconomic indicators, such as GDP and unemployment rates, and use them directly in their scripts.
How it works
The function's `fredCode` parameter accepts a "string" representing the unique identifier of a specific FRED series. Examples include "GDP" for the "Gross Domestic Product" series and "UNRATE" for the "Unemployment Rate" series. Over 825,000 codes are available. To access codes for available series, search the FRED website .
The function adds the "FRED:" prefix to the specified `fredCode` to construct a valid FRED ticker ID (e.g., "FRED:GDP"), which it uses in request.security() to retrieve the series data.
Example Usage
This line of code requests the latest value from the Gross Domestic Product series and assigns the returned value to a `gdpValue` variable:
float gdpValue = fred("GDP")
`finraShortSaleVolume()`
The `finraShortSaleVolume()` function retrieves EOD data from a FINRA Short Sale Volume series. Programmers can call this function to retrieve short-selling information for equities listed on supported exchanges, namely NASDAQ, NYSE, and NYSE ARCA.
How it works
The `symbol` parameter determines which symbol's short sale volume information is retrieved by the function. If the value is na , the function requests short sale volume data for the chart's symbol. The argument can be the name of the symbol from a supported exchange (e.g., "AAPL") or a ticker ID with an exchange prefix ("NASDAQ:AAPL"). If the `symbol` contains an exchange prefix, it must be one of the following: "NASDAQ", "NYSE", "AMEX", or "BATS".
The function constructs a ticker ID in the format "FINRA:ticker_SHORT_VOLUME", where "ticker" is the symbol name without the exchange prefix (e.g., "AAPL"). It then uses the ticker ID in request.security() to retrieve the available data.
Example Usage
This line of code retrieves short sale volume for the chart's symbol and assigns the result to a `shortVolume` variable:
float shortVolume = finraShortSaleVolume(syminfo.tickerid)
This example requests short sale volume for the "NASDAQ:AAPL" symbol, irrespective of the current chart:
float shortVolume = finraShortSaleVolume("NASDAQ:AAPL")
`openInterestFutures()` and `openInterestCrypto()`
The `openInterestFutures()` function retrieves EOD open interest (OI) data for futures contracts. The `openInterestCrypto()` function provides more granular OI data for cryptocurrency contracts.
How they work
The `openInterestFutures()` function retrieves EOD closing OI information. Its design is focused primarily on retrieving OI data for futures, as only EOD OI data is available for these instruments. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe.
The `openInterestCrypto()` function retrieves opening, high, low, and closing OI data for a cryptocurrency contract on a specified timeframe. Unlike `openInterest()`, this function can also retrieve granular data from intraday timeframes.
Both functions contain a `symbol` parameter that determines the symbol for which the calls request OI data. The functions construct a valid OI ticker ID from the chosen symbol by appending "_OI" to the end (e.g., "CME:ES1!_OI").
The `openInterestFutures()` function requests and returns a two-element tuple containing the futures instrument's EOD closing OI and a "bool" condition indicating whether OI is rising.
The `openInterestCrypto()` function requests and returns a five-element tuple containing the cryptocurrency contract's opening, high, low, and closing OI, and a "bool" condition indicating whether OI is rising.
Example usage
This code line calls `openInterest()` to retrieve EOD OI and the OI rising condition for a futures symbol on the chart, assigning the values to two variables in a tuple:
= openInterestFutures(syminfo.tickerid)
This line retrieves the EOD OI data for "CME:ES1!", irrespective of the current chart's symbol:
= openInterestFutures("CME:ES1!")
This example uses `openInterestCrypto()` to retrieve OHLC OI data and the OI rising condition for a cryptocurrency contract on the chart, sampled at the chart's timeframe. It assigns the returned values to five variables in a tuple:
= openInterestCrypto(syminfo.tickerid, timeframe.period)
This call retrieves OI OHLC and rising information for "BINANCE:BTCUSDT.P" on the "1D" timeframe:
= openInterestCrypto("BINANCE:BTCUSDT.P", "1D")
`commitmentOfTraders()`
The `commitmentOfTraders()` function retrieves data from the Commitment of Traders (COT) reports published by the Commodity Futures Trading Commission (CFTC). This function significantly simplifies the COT request process, making it easier for programmers to access and utilize the available data.
How It Works
This function's parameters determine different parts of a valid ticker ID for retrieving COT data, offering a streamlined alternative to constructing complex COT ticker IDs manually. The `metricName`, `metricDirection`, and `includeOptions` parameters are required. They specify the name of the reported metric, the direction, and whether it includes information from options contracts.
The function also includes several optional parameters. The `CFTCCode` parameter allows programmers to request data for a specific report code. If unspecified, the function requests data based on the chart symbol's root prefix, base currency, or quoted currency, depending on the `mode` argument. The call can specify the report type ("Legacy", "Disaggregated", or "Financial") and metric type ("All", "Old", or "Other") with the `typeCOT` and `metricType` parameters.
Explore the CFTC website to find valid report codes for specific assets. To find detailed information about the metrics included in the reports and their meanings, see the CFTC's Explanatory Notes .
View the function's documentation below for detailed explanations of its parameters. For in-depth information about COT ticker IDs and more advanced functionality, refer to our previously published COT library .
Available metrics
Different COT report types provide different metrics . The tables below list all available metrics for each type and their applicable directions:
+------------------------------+------------------------+
| Legacy (COT) Metric Names | Directions |
+------------------------------+------------------------+
| Open Interest | No direction |
| Noncommercial Positions | Long, Short, Spreading |
| Commercial Positions | Long, Short |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No direction |
| Traders Noncommercial | Long, Short, Spreading |
| Traders Commercial | Long, Short |
| Traders Total Reportable | Long, Short |
| Concentration Gross LT 4 TDR | Long, Short |
| Concentration Gross LT 8 TDR | Long, Short |
| Concentration Net LT 4 TDR | Long, Short |
| Concentration Net LT 8 TDR | Long, Short |
+------------------------------+------------------------+
+-----------------------------------+------------------------+
| Disaggregated (COT2) Metric Names | Directions |
+-----------------------------------+------------------------+
| Open Interest | No Direction |
| Producer Merchant Positions | Long, Short |
| Swap Positions | Long, Short, Spreading |
| Managed Money Positions | Long, Short, Spreading |
| Other Reportable Positions | Long, Short, Spreading |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No Direction |
| Traders Producer Merchant | Long, Short |
| Traders Swap | Long, Short, Spreading |
| Traders Managed Money | Long, Short, Spreading |
| Traders Other Reportable | Long, Short, Spreading |
| Traders Total Reportable | Long, Short |
| Concentration Gross LE 4 TDR | Long, Short |
| Concentration Gross LE 8 TDR | Long, Short |
| Concentration Net LE 4 TDR | Long, Short |
| Concentration Net LE 8 TDR | Long, Short |
+-----------------------------------+------------------------+
+-------------------------------+------------------------+
| Financial (COT3) Metric Names | Directions |
+-------------------------------+------------------------+
| Open Interest | No Direction |
| Dealer Positions | Long, Short, Spreading |
| Asset Manager Positions | Long, Short, Spreading |
| Leveraged Funds Positions | Long, Short, Spreading |
| Other Reportable Positions | Long, Short, Spreading |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No Direction |
| Traders Dealer | Long, Short, Spreading |
| Traders Asset Manager | Long, Short, Spreading |
| Traders Leveraged Funds | Long, Short, Spreading |
| Traders Other Reportable | Long, Short, Spreading |
| Traders Total Reportable | Long, Short |
| Concentration Gross LE 4 TDR | Long, Short |
| Concentration Gross LE 8 TDR | Long, Short |
| Concentration Net LE 4 TDR | Long, Short |
| Concentration Net LE 8 TDR | Long, Short |
+-------------------------------+------------------------+
Example usage
This code line retrieves "Noncommercial Positions (Long)" data, without options information, from the "Legacy" report for the chart symbol's root, base currency, or quote currency:
float nonCommercialLong = commitmentOfTraders("Noncommercial Positions", "Long", false)
This example retrieves "Managed Money Positions (Short)" data, with options included, from the "Disaggregated" report:
float disaggregatedData = commitmentOfTraders("Managed Money Positions", "Short", true, "", "Disaggregated")
█ NOTES
• This library uses dynamic requests , allowing dynamic ("series") arguments for the parameters defining the context (ticker ID, timeframe, etc.) of a `request.*()` function call. With this feature, a single `request.*()` call instance can flexibly retrieve data from different feeds across historical executions. Additionally, scripts can use such calls in the local scopes of loops, conditional structures, and even exported library functions, as demonstrated in this script. All scripts coded in Pine Script™ v6 have dynamic requests enabled by default. To learn more about the behaviors and limitations of this feature, see the Dynamic requests section of the Pine Script™ User Manual.
• The library's example code offers a simple demonstration of the exported functions. The script retrieves available data using the function specified by the "Series type" input. The code requests a FRED series or COT (Legacy), FINRA Short Sale Volume, or Open Interest series for the chart's symbol with specific parameters, then plots the retrieved data as a step-line with diamond markers.
Look first. Then leap.
█ EXPORTED FUNCTIONS
This library exports the following functions:
fred(fredCode, gaps)
Requests a value from a specified Federal Reserve Economic Data (FRED) series. FRED is a comprehensive source that hosts numerous U.S. economic datasets. To explore available FRED datasets and codes, search for specific categories or keywords at fred.stlouisfed.org Calls to this function count toward a script's `request.*()` call limit.
Parameters:
fredCode (series string) : The unique identifier of the FRED series. The function uses the value to create a valid ticker ID for retrieving FRED data in the format `"FRED:fredCode"`. For example, `"GDP"` refers to the "Gross Domestic Product" series ("FRED:GDP"), and `"GFDEBTN"` refers to the "Federal Debt: Total Public Debt" series ("FRED:GFDEBTN").
gaps (simple bool) : Optional. If `true`, the function returns a non-na value only when a new value is available from the requested context. If `false`, the function returns the latest retrieved value when new data is unavailable. The default is `false`.
Returns: (float) The value from the requested FRED series.
finraShortSaleVolume(symbol, gaps, repaint)
Requests FINRA daily short sale volume data for a specified symbol from one of the following exchanges: NASDAQ, NYSE, NYSE ARCA. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request short sale volume data. If the specified value contains an exchange prefix, it must be one of the following: "NASDAQ", "NYSE", "AMEX", "BATS".
gaps (simple bool) : Optional. If `true`, the function returns a non-na value only when a new value is available from the requested context. If `false`, the function returns the latest retrieved value when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the chart's timeframe is intraday, the value requested on realtime bars may change its time offset after the script restarts its executions. If `false`, the function returns the last confirmed period's values to avoid repainting. The default is `true`.
Returns: (float) The short sale volume for the specified symbol or the chart's symbol.
openInterestFutures(symbol, gaps, repaint)
Requests EOD open interest (OI) and OI rising information for a valid futures symbol. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request open interest data.
gaps (simple bool) : Optional. If `true`, the function returns non-na values only when new values are available from the requested context. If `false`, the function returns the latest retrieved values when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the chart's timeframe is intraday, the value requested on realtime bars may change its time offset after the script restarts its executions. If `false`, the function returns the last confirmed period's values to avoid repainting. The default is `true`.
Returns: ( ) A tuple containing the following values:
- The closing OI value for the symbol.
- `true` if the closing OI is above the previous period's value, `false` otherwise.
openInterestCrypto(symbol, timeframe, gaps, repaint)
Requests opening, high, low, and closing open interest (OI) data and OI rising information for a valid cryptocurrency contract on a specified timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request open interest data.
timeframe (series string) : The timeframe of the data request. If the timeframe is lower than the chart's timeframe, it causes a runtime error.
gaps (simple bool) : Optional. If `true`, the function returns non-na values only when new values are available from the requested context. If `false`, the function returns the latest retrieved values when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the `timeframe` represents a higher timeframe, the function returns unconfirmed values from the timeframe on realtime bars, which repaint when the script restarts its executions. If `false`, it returns only confirmed higher-timeframe values to avoid repainting. The default is `true`.
Returns: ( ) A tuple containing the following values:
- The opening, high, low, and closing OI values for the symbol, respectively.
- `true` if the closing OI is above the previous period's value, `false` otherwise.
commitmentOfTraders(metricName, metricDirection, includeOptions, CFTCCode, typeCOT, mode, metricType)
Requests Commitment of Traders (COT) data with specified parameters. This function provides a simplified way to access CFTC COT data available on TradingView. Calls to this function count toward a script's `request.*()` call limit. For more advanced tools and detailed information about COT data, see TradingView's LibraryCOT library.
Parameters:
metricName (series string) : One of the valid metric names listed in the library's documentation and source code.
metricDirection (series string) : Metric direction. Possible values are: "Long", "Short", "Spreading", and "No direction". Consult the library's documentation or code to see which direction values apply to the specified metric.
includeOptions (series bool) : If `true`, the COT symbol includes options information. Otherwise, it does not.
CFTCCode (series string) : Optional. The CFTC code for the asset. For example, wheat futures (root "ZW") have the code "001602". If one is not specified, the function will attempt to get a valid code for the chart symbol's root, base currency, or main currency.
typeCOT (series string) : Optional. The type of report to request. Possible values are: "Legacy", "Disaggregated", "Financial". The default is "Legacy".
mode (series string) : Optional. Specifies the information the function extracts from a symbol. Possible modes are:
- "Root": The function extracts the futures symbol's root prefix information (e.g., "ES" for "ESH2020").
- "Base currency": The function extracts the first currency from a currency pair (e.g., "EUR" for "EURUSD").
- "Currency": The function extracts the currency of the symbol's quoted values (e.g., "JPY" for "TSE:9984" or "USDJPY").
- "Auto": The function tries the first three modes (Root -> Base currency -> Currency) until it finds a match.
The default is "Auto". If the specified mode is not available for the symbol, it causes a runtime error.
metricType (series string) : Optional. The metric type. Possible values are: "All", "Old", "Other". The default is "All".
Returns: (float) The specified Commitment of Traders data series. If no data is available, it causes a runtime error.
NVOL Normalized Volume & VolatilityOVERVIEW
Plots a normalized volume (or volatility) relative to a given bar's typical value across all charted sessions. The concept is similar to Relative Volume (RVOL) and Average True Range (ATR), but rather than using a moving average, this script uses bar data from previous sessions to more accurately separate what's normal from what's anomalous. Compatible on all timeframes and symbols.
Having volume and volatility processed within a single indicator not only allows you to toggle between the two for a consistent data display, it also allows you to measure how correlated they are. These measurements are available in the data table.
DATA & MATH
The core formula used to normalize each bar is:
( Value / Basis ) × Scale
Value
The current bar's volume or volatility (see INPUTS section). When set to volume, it's exactly what you would expect (the volume of the bar). When set to volatility, it's the bar's range (high - low).
Basis
A statistical threshold (Mean, Median, or Q3) plus a Sigma multiple (standard deviations). The default is set to the Mean + Sigma × 3 , which represents 99.7% of data in a normal distribution. The values are derived from the current bar's equivalent in other sessions. For example, if the current bar time is 9:30 AM, all previous 9:30 AM bars would be used to get the Mean and Sigma. Thus Mean + Sigma × 3 would represent the Normal Bar Vol at 9:30 AM.
Scale
Depends on the Normalize setting, where it is 1 when set to Ratio, and 100 when set to Percent. This simply determines the plot's scale (ie. 0 to 1 vs. 0 to 100).
INPUTS
While the default configuration is recommended for a majority of use cases (see BEST PRACTICES), settings should be adjusted so most of the Normalized Plot and Linear Regression are below the Signal Zone. Only the most extreme values should exceed this area.
Normalize
Allows you to specify what should be normalized (Volume or Volatility) and how it should be measured (as a Ratio or Percentage). This sets the value and scale in the core formula.
Basis
Specifies the statistical threshold (Mean, Median, or Q3) and how many standard deviations should be added to it (Sigma). This is the basis in the core formula.
Mean is the sum of values divided by the quantity of values. It's what most people think of when they say "average."
Median is the middle value, where 50% of the data will be lower and 50% will be higher.
Q3 is short for Third Quartile, where 75% of the data will be lower and 25% will be higher (think three quarters).
Sample
Determines the maximum sample size.
All Charted Bars is the default and recommended option, and ignores the adjacent lookback number.
Lookback is not recommended, but it is available for comparisons. It uses the adjacent lookback number and is likely to produce unreliable results outside a very specific context that is not suitable for most traders. Normalization is not a moving average. Unless you have a good reason to limit the sample size, do not use this option and instead use All Charted Bars .
Show Vol. name on plot
Overlays "VOLUME" or "VOLATILITY" on the plot (whichever you've selected).
Lin. Reg.
Polynomial regressions are great for capturing non-linear patterns in data. TradingView offers a "linear regression curve", which this script uses as a substitute. If you're unfamiliar with either term, think of this like a better moving average.
You're able to specify the color, length, and multiple (how much to amplify the value). The linear regression derives its value from the normalized values.
Norm. Val.
This is the color of the normalized value of the current bar (see DATA & MATH section). You're able to specify the default, within signal, and beyond signal colors. As well as the plot style.
Fade in colors between zero and the signal
Programmatically adjust the opacity of the primary plot color based on it's normalized value. When enabled, values equal to 0 will be fully transparent, become more opaque as they move away from 0, and be fully opaque at the signal. Adjusting opacity in this way helps make difference more obvious.
Plot relative to bar direction
If enabled, the normalized value will be multiplied by -1 when a bar's open is greater than the bar's close, mirroring price direction.
Technically volume and volatility are directionless. Meaning there's really no such thing as buy volume, sell volume, positive volatility, or negative volatility. There is just volume (1 buy = 1 sell = 1 volume) and volatility (high - low). Even so, visually reflecting the net effect of pricing pressure can still be useful. That's all this setting does.
Sig. Zone
Signal zones make identifying extremes easier. They do not signal if you should buy or sell, only that the current measurement is beyond what's normal. You are able to adjust the color and bounds of the zone.
Int. Levels
Interim levels can be useful when you want to visually bracket values into high / medium / low. These levels can have a value anywhere between 0 and 1. They will automatically be multiplied by 100 when the scale is set to Percent.
Zero Line
This setting allows you to specify the visibility of the zero line to best suit your trading style.
Volume & Volatility Stats
Displays a table of core values for both volume and volatility. Specifically the actual value, threshold (mean, median, or Q3), sigma (standard deviation), basis, normalized value, and linear regression.
Correlation Stats
Displays a table of correlation statistics for the current bar, as well as the data set average. Specifically the coefficient, R2, and P-Value.
Indices & Sample Size
Displays a table of mixed data. Specifically the current bar's index within the session, the current bar's index within the sample, and the sample size used to normalize the current bar's value.
BEST PRACTICES
NVOL can tell you what's normal for 9:30 AM. RVOL and ATR can only tell you if the current value is higher or lower than a moving average.
In a normal distribution (bell curve) 99.7% of data occurs within 3 standard deviations of the mean. This is why the default basis is set to "Mean, 3"; it includes the typical day-to-day fluctuations, better contextualizing what's actually normal, minimizing false positives.
This means a ratio value greater than 1 only occurs 0.3% of the time. A series of these values warrants your attention. Which is why the default signal zone is between 1 and 2. Ratios beyond 2 would be considered extreme with the default settings.
Inversely, ratio values less than 1 (the normal daily fluctuations) also tell a story. We should expect most values to occur around the middle 3rd, which is why interim levels default to 0.33 and 0.66, visually simplifying a given move's participation. These can be set to whatever you like and only serve as visual aids for your specific trading style.
It's worth noting that the linear regression oscillates when plotted directionally, which can help clarify short term move exhaustion and continuation. Akin to a relative strength index (RSI), it may be used to inform a trading decision, but it should not be the only factor.
SuperTrend Heikin AshiSupertrend Heikin Ashi is an indicator based on the standard calculation of the Supertrend with the difference of using the Open and Close value of the Heikin Ashi candles instead of the normal Candle Sticks.
In this way the main characteristic of the HA candles is exploited, thus filtering movements that could generate false signals.
I recommend using SPY, SPX, QQQ to be aware of the market situation, not operating (or paying great attention) long on stocks when the indicator is red and the price is below the drawn line.
FTD & DD AnalyzerFTD & DD Analyzer
A comprehensive tool for identifying Follow-Through Days (FTDs) and Distribution Days (DDs) to analyze market conditions and potential trend changes, based on William J. O'Neil's proven methodology.
About the Methodology
This indicator implements the market analysis techniques developed by William J. O'Neil, founder of Investor's Business Daily and author of "How to Make Money in Stocks." O'Neil's research, spanning market data back to the 1880s, has successfully identified major market turns throughout history. His FTD and DD concepts remain crucial tools for institutional investors and serious traders.
Overview
This indicator helps traders identify two critical market conditions:
Distribution Days (DDs) - days of institutional selling pressure
Follow-Through Days (FTDs) - confirmation of potential market bottoms and new uptrends
The combination of these signals provides valuable insight into market health and potential trend changes.
Key Features
Distribution Day detection with customizable criteria
Follow-Through Day identification based on classical methodology
Market bottom detection using EMA analysis
Dynamic warning system for accumulated Distribution Days
Visual alerts with customizable labels
Advanced debug mode for detailed analysis
Flexible display options for different trading styles
Distribution Days Analysis
What is a Distribution Day?
A Distribution Day occurs when:
The price closes lower by a specified percentage (default -0.2%)
Volume is higher than the previous day
DD Settings
Price Threshold: Minimum price decline to qualify (default -0.2%)
Lookback Period: Number of days to analyze for DD accumulation (default 25)
Warning Levels:
First warning at 4 DDs
Severe warning (SOS - Sign of Strength) at 6 DDs
Display Options:
Show/hide DD count
Show/hide DD labels
Choose between showing all DDs or only within lookback period
Follow-Through Day Detection
What is a Follow-Through Day?
Following O'Neil's research, a Follow-Through Day confirms a potential market bottom when:
Occurs between day 4 and 13 after a bottom formation (optimal: days 4-7)
Shows significant price gain (default 1.5%)
Accompanied by higher volume than the previous day
Key Statistics:
FTDs followed by distribution on days 1-2 fail 95% of the time
Distribution on day 3 leads to 70% failure rate
Later distribution (days 4-5) shows only 30% failure rate
FTD Settings
Minimum Price Gain: Required percentage gain (default 1.5%)
Valid Window: Day 4 to Day 13 after bottom
Quality Rating:
🚀 for FTDs occurring within 7 days (historically most reliable)
⭐ for later FTDs
Market Bottom Detection
The indicator uses a sophisticated approach to identify potential market bottoms:
EMA Analysis:
Tracks 8 and 21-period EMAs
Monitors EMA alignment and momentum
Customizable tolerance levels
Price Action:
Looks for lower lows within specified lookback period
Confirms bottom with subsequent price action
Reset mechanism to prevent false signals
Visual Indicators
Label Types
📉 Distribution Days
⬇️ Market Bottoms
🚀/⭐ Follow-Through Days
⚠️ DD Warning Levels
Customization Options
Label size: Tiny, Small, Normal, Large
Label style: Default, Arrows, Triangles
Background colors for different signals
Dynamic positioning using ATR multiplier
Practical Usage
1. Monitor DD Accumulation:
Watch for increasing number of Distribution Days
Pay attention to warning levels (4 and 6 DDs)
Consider reducing exposure when warnings appear
2. Bottom Recognition:
Look for potential bottom formations
Monitor EMA alignment and price action
Wait for confirmation signals
3. FTD Confirmation:
Track days after potential bottom
Watch for strong price/volume action in valid window
Note FTD quality rating for additional context
Alert System
Built-in alerts for:
New Distribution Days
Follow-Through Day signals
High DD accumulation warnings
Tips for Best Results
Use multiple timeframes for confirmation
Combine with other market health indicators
Pay attention to sector rotation and market leadership
Monitor volume patterns for confirmation
Consider market context and external factors
Technical Notes
The indicator uses advanced array handling for DD tracking
Dynamic calculations ensure accurate signal generation
Debug mode available for detailed analysis
Optimized for real-time and historical analysis
Additional Information
Compatible with all markets and timeframes
Best suited for daily charts
Regular updates and maintenance
Based on O'Neil's time-tested market analysis principles
Conclusion
The FTD & DD Analyzer provides a systematic approach to market analysis, combining O'Neil's proven methodologies with modern technical analysis. It helps traders identify potential market turns while monitoring institutional participation through volume analysis.
Remember that no indicator is perfect - always use in conjunction with other analysis tools and proper risk management.
Santa Clause RallyA Santa Claus rally is a calendar effect that involves a rise in stock prices during the last 5 trading days in December and the first 2 trading days in the following January.
The Santa Claus rally can potentially predict the future trend of stocks in the coming year.
Merry Christmas and Happy New Year 🎄🎄🎄
OBV TSI IndicatorThe OBV TSI Indicator combines two powerful technical analysis tools: the On-Balance Volume (OBV) and the True Strength Index (TSI). This hybrid approach provides insights into both volume dynamics and momentum, helping traders identify potential trend reversals, breakouts, or continuations with greater accuracy.
The OBV TSI Indicator tracks cumulative volume shifts via OBV and integrates the TSI for momentum analysis. It offers customizable moving average options for further smoothing. Visual trendlines, pivot points, and signal markers enhance clarity.
The OBV tracks volume flow by summing volumes based on price changes. Positive volume is added when prices rise, and negative volume is subtracted when prices fall. The result is smoothed to detect meaningful trends in volume. A volume spread is derived from the difference between the smoothed OBV and cumulative volume. This is then adjusted by the price deviation to generate the shadow spread, which highlights critical volume-driven price levels.
The shadow spread is added to either the high or low price, depending on its sign, producing a refined OBV output. This serves as the main source for the subsequent TSI calculation. The TSI is a momentum oscillator calculated using double-smoothed price changes. It provides an accurate measure of trend strength and direction.
Various moving average options, such as EMA, DEMA, or TEMA, are applied to the smoothed OBV for additional trend filtering. Users can select their preferred type and length to suit their trading strategy. Trendlines are plotted to visualize the overall direction. When a significant change in trend is detected, up or down arrows indicate potential buy or sell signals. The script identifies key pivot points based on the highest and lowest levels within a defined period. These pivots help pinpoint reversal zones.
The indicator offers customization options, allowing users to adjust the OBV length for smoothing, choose from various moving average types, and fine-tune the short, long, and signal periods for TSI. Additionally, users can toggle visibility for trendlines, signals, and pivots to suit their preferences.
This indicator is ideal for practical use cases such as spotting potential trend reversals by observing TSI crossovers and pivot levels, anticipating breakouts from key price levels using the shadow spread, and validating trends by aligning TSI signals with OBV and moving averages.
The OBV TSI Indicator is a versatile tool designed to enhance decision-making in trading by combining volume and momentum analysis. Its flexibility and visual aids make it suitable for traders of all experience levels. By leveraging its insights, you can confidently navigate market trends and improve your trading outcomes.
Economic RegimeThis indicator, "Economic Regime" , provides a comprehensive analysis of market conditions by combining multiple asset classes and financial metrics. It uses normalized scores and trend analysis to classify the current economic regime into one of four categories: Goldilocks, Reflation, Inflation, or Deflation. The classification is based on inputs like S&P 500 performance, bond yields, commodity prices, volatility indices, and sector ETFs. Additionally, it plots key financial spreads, including the yield spread (10Y-2Y) and credit spread (HYG-LQD), to offer deeper insights into liquidity and market sentiment. The background color dynamically reflects the identified economic regime, facilitating quick visual interpretation.