Bayesian Price Projection Model [Pinescriptlabs]📊 Dynamic Price Projection Algorithm 📈
This algorithm combines **statistical calculations**, **technical analysis**, and **Bayesian theory** to forecast a future price while providing **uncertainty ranges** that represent upper and lower bounds. The calculations are designed to adjust projections by considering market **trends**, **volatility**, and the historical probabilities of reaching new highs or lows.
Here’s how it works:
🚀 Future Price Projection
A dynamic calculation estimates the future price based on three key elements:
1. **Trend**: Defines whether the market is predisposed to move up or down.
2. **Volatility**: Quantifies the magnitude of the expected change based on historical fluctuations.
3. **Time Factor**: Uses the logarithm of the projected period (`proyeccion_dias`) to adjust how time impacts the estimate.
🧠 **Bayesian Probabilistic Adjustment**
- Conditional probabilities are calculated using **Bayes' formula**:
\
This models future events using conditional information:
- **Probability of reaching a new all-time high** if the price is trending upward.
- **Probability of reaching a new all-time low** if the price is trending downward.
- These probabilities refine the future price estimate by considering:
- **Higher volatility** increases the likelihood of hitting extreme levels (highs/lows).
- **Market trends** influence the expected price movement direction.
🌟 **Volatility Calculation**
- Volatility is measured using the **ATR (Average True Range)** indicator with a 14-period window. This reflects the average amplitude of price fluctuations.
- To express volatility as a percentage, the ATR is normalized by dividing it by the closing price and multiplying it by 200.
- Volatility is then categorized into descriptive levels (e.g., **Very Low**, **Low**, **Moderate**, etc.) for better interpretation.
---
🎯 **Deviation Limits (Upper and Lower)**
- The upper and lower limits form a **projected range** around the estimated future price, providing a framework for uncertainty.
- These limits are calculated by adjusting the ATR using:
- A user-defined **multiplier** (`factor_desviacion`).
- **Bayesian probabilities** calculated earlier.
- The **square root of the projected period** (`proyeccion_dias`), incorporating the principle that uncertainty grows over time.
🔍 **Interpreting the Model**
This can be seen as a **dynamic probabilistic model** that:
- Combines **technical analysis** (trends and ATR).
- Refines probabilities using **Bayesian theory**.
- Provides a **visual projection range** to help you understand potential future price movements and associated uncertainties.
⚡ Whether you're analyzing **volatile markets** or confirming **bullish/bearish scenarios**, this tool equips you with a robust, data-driven approach! 🚀
Español :
📊 Algoritmo de Proyección de Precio Dinámico 📈
Este algoritmo combina **cálculos estadísticos**, **análisis técnico** y **la teoría de Bayes** para proyectar un precio futuro, junto con rangos de **incertidumbre** que representan los límites superior e inferior. Los cálculos están diseñados para ajustar las proyecciones considerando la **tendencia del mercado**, **volatilidad** y las probabilidades históricas de alcanzar nuevos máximos o mínimos.
Aquí se explica su funcionamiento:
🚀 **Proyección de Precio Futuro**
Se realiza un cálculo dinámico del precio futuro estimado basado en tres elementos clave:
1. **Tendencia**: Define si el mercado tiene predisposición a subir o bajar.
2. **Volatilidad**: Determina la magnitud del cambio esperado en función de las fluctuaciones históricas.
3. **Factor de Tiempo**: Usa el logaritmo del período proyectado (`proyeccion_dias`) para ajustar cómo el tiempo afecta la estimación.
🧠 **Ajuste Probabilístico con la Teoría de Bayes**
- Se calculan probabilidades condicionales mediante la fórmula de **Bayes**:
\
Esto permite modelar eventos futuros considerando información condicional:
- **Probabilidad de alcanzar un nuevo máximo histórico** si el precio sube.
- **Probabilidad de alcanzar un nuevo mínimo histórico** si el precio baja.
- Estas probabilidades ajustan la estimación del precio futuro considerando:
- **Mayor volatilidad** aumenta la probabilidad de alcanzar niveles extremos (máximos/mínimos).
- **La tendencia del mercado** afecta la dirección esperada del movimiento del precio.
🌟 **Cálculo de Volatilidad**
- La volatilidad se mide usando el indicador **ATR (Average True Range)** con un período de 14 velas. Este indicador refleja la amplitud promedio de las fluctuaciones del precio.
- Para obtener un valor porcentual, el ATR se normaliza dividiéndolo por el precio de cierre y multiplicándolo por 200.
- Además, se clasifica esta volatilidad en categorías descriptivas (e.g., **Muy Baja**, **Baja**, **Moderada**, etc.) para facilitar su interpretación.
🎯 **Límites de Desviación (Superior e Inferior)**
- Los límites superior e inferior representan un **rango proyectado** en torno al precio futuro estimado, proporcionando un marco para la incertidumbre.
- Estos límites se calculan ajustando el ATR según:
- Un **multiplicador** definido por el usuario (`factor_desviacion`).
- Las **probabilidades condicionales** calculadas previamente.
- La **raíz cuadrada del período proyectado** (`proyeccion_dias`), lo que incorpora el principio de que la incertidumbre aumenta con el tiempo.
---
🔍 **Interpretación del Modelo**
Este modelo se puede interpretar como un **modelo probabilístico dinámico** que:
- Integra **análisis técnico** (tendencias y ATR).
- Ajusta probabilidades utilizando **la teoría de Bayes**.
- Proporciona un **rango de proyección visual** para ayudarte a entender los posibles movimientos futuros del precio y su incertidumbre.
⚡ Ya sea que estés analizando **mercados volátiles** o confirmando **escenarios alcistas/bajistas**, ¡esta herramienta te ofrece un enfoque robusto y basado en datos! 🚀
Historical Volatility
Volatility % (Standard Deviation of Returns)This script takes closing prices of candles to measure the Standard Deviation (σ) which is then used to calculate the volatility by taking the stdev of the last 30 candles and multiplying it by the root of the trading days in a year, month and week. It then multiplies that number by 100 to show a percentage.
Default settings are annual volatility (252 candles, red), monthly volatility (30 candles, blue) and weekly volatility (5 candles, green) if you use daily candles. It is open source so you can increase the number of candles with which the stdev is calculated, and change the number of the root that multiplies the stdev.
Z Value AlertZ Value Alert analyzes daily price movements by evaluating fluctuations relative to historical volatility. It calculates the daily percentage change in the closing price, the average of this change over 252 days, and the standard deviation. Using these values, a Z-Score is calculated, indicating how much the current price change deviates from the historical range of fluctuations.
The user can set a threshold in standard deviations (Z-Score). When the absolute Z-Score exceeds this threshold, a significant movement is detected, indicating increased volatility. The Z-Score is visualized as a histogram, and an alert can be triggered when a significant movement occurs.
The number of trading days used to calculate historical volatility is adjustable, allowing the Sigma Move Alert to be tailored to various trading strategies and analysis periods.
Additionally, a dropdown option for the calculation method is available in the input menu, allowing the user to select between:
Normal: Calculates the percentage change in closing prices without using the logarithm.
Logarithmic: Uses the natural logarithm of daily returns. This method is particularly suitable for longer timeframes and scientific analyses, as logarithmic returns are additive.
These comprehensive features allow for precise customization of the Sigma Move Alert to individual needs and specific market conditions.
30D Vs 90D Historical VolatilityVolatility equals risk for an underlying asset's price meaning bullish volatility is bearish for prices while bearish volatility is bullish. This compares 30-Day Historical Volatility to 90-Day Historical Volatility.
When the 30-Day crosses under the 90-day, this is typically when asset prices enter a bullish trend.
Conversely, When the 30-Day crosses above the 90-Day, this is when asset prices enter a bearish trend.
Peaks in volatility are bullish divergences while troughs are bearish divergences.
Range Tightening Indicator (RTI)The Range Tightening Indicator (RTI) quantifies price volatility relative to recent price action, helping traders identify low-volatility consolidations that often precede breakouts.
Range Tightening is calculated by measuring the range between each bar’s high and low prices over a chosen lookback period.
A 5-bar period is recommended for shorter-term momentum setups and a 15-bar period is recommended for swing trading. An option for a custom period is available to suit specific strategies. The default look back for custom is 50, ideal for longer term traders.
Other Key Features:
Dynamic Color Coding: The RTI line turns green when volatility doubles after a drop to or below 20, flagging significant volatility shifts commonly seen before breakouts.
Low-Volatility Dots: Orange dots appear on the RTI line when two or more consecutive bars show RTI values below 20, visually marking extended low-volatility periods.
Volatility Zones: Shaded zones provide quick context:
Zone 1 (0-5): Extremely tight volatility, shown in red.
Zone 2 (5-10): Low volatility, shown in light green.
Zone 3 (10-15): Moderate low volatility, shown in green.
The RTI indicator is ideal for traders looking to anticipate breakout conditions, with features that highlight consolidation phases, support momentum strategies, and help improve entry timing by focusing on shifts in volatility.
This indicator was inspired after Deepvue's RMV Indicator, but uses a different calculation. Results may vary.
Relative VolatilityRelative Volatility is a technical indicator designed to assess changes in market volatility by comparing fast and slow Average True Range (ATR) values. It operates by subtracting a slower ATR (e.g., 50-period ATR) from a faster ATR (e.g., 20-period ATR) and visualizing the result as a histogram. This enables traders to determine whether volatility is increasing or decreasing over time.
This indicator can help traders recognize volatility trends, which can inform decisions related to trade entries, exits, and risk management.
Interpreting Volatility Changes
Increasing Volatility: When the histogram is above zero, it indicates that the fast ATR is greater than the slow ATR, signifying an increase in short-term volatility compared to the long-term average. This may suggest heightened market activity and potential trading opportunities.
Decreasing Volatility: When the histogram is below zero, it shows that the fast ATR is less than the slow ATR, indicating a decrease in short-term volatility relative to the long-term average. This may suggest consolidating markets or reduced trading activity.
Relative Volatility assists traders in monitoring and analyzing changes in market volatility, providing insights that can enhance trading strategies and decision-making processes.
Crypto Volatility Bitcoin Correlation Strategy Description:
The Crypto Volatility Bitcoin Correlation Strategy is designed to leverage market volatility specifically in Bitcoin (BTC) using a combination of volatility indicators and trend-following techniques. This strategy utilizes the VIXFix (a volatility indicator adapted for crypto markets) and the BVOL7D (Bitcoin 7-Day Volatility Index from BitMEX) to identify periods of high volatility, while confirming trends with the Exponential Moving Average (EMA). These components work together to offer a comprehensive system that traders can use to enter positions when volatility and trends are aligned in their favor.
Key Features:
VIXFix (Volatility Index for Crypto Markets): This indicator measures the highest price of Bitcoin over a set period and compares it with the current low price to gauge market volatility. A rise in VIXFix indicates increasing market volatility, signaling that large price movements could occur.
BVOL7D (Bitcoin 7-Day Volatility Index): This volatility index, provided by BitMEX, measures the volatility of Bitcoin over the past 7 days. It helps traders monitor the recent volatility trend in the market, particularly useful when making short-term trading decisions.
Exponential Moving Average (EMA): The 50-period EMA acts as a trend indicator. When the price is above the EMA, it suggests the market is in an uptrend, and when the price is below the EMA, it suggests a downtrend.
How It Works:
Long Entry: A long position is triggered when both the VIXFix and BVOL7D indicators are rising, signaling increased volatility, and the price is above the 50-period EMA, confirming that the market is trending upward.
Exit: The strategy exits the position when the price crosses below the 50-period EMA, which signals a potential weakening of the uptrend and a decrease in volatility.
This strategy ensures that traders only enter positions when the volatility aligns with a clear trend, minimizing the risk of entering trades during periods of market uncertainty.
Testing and Timeframe:
This strategy has been tested on Bitcoin using the daily timeframe, which provides a longer-term perspective on market trends and volatility. However, users can adjust the timeframe according to their trading preferences. It is crucial to note that this strategy does not include comprehensive risk management, aside from the exit condition when the price crosses below the EMA. Users are strongly advised to implement their own risk management techniques, such as setting appropriate stop-loss levels, to safeguard their positions during high volatility periods.
Utility:
The Crypto Volatility Bitcoin Correlation Strategy is particularly well-suited for traders who aim to capitalize on the high volatility often seen in the Bitcoin market. By combining volatility measurements (VIXFix and BVOL7D) with a trend-following mechanism (EMA), this strategy helps identify optimal moments for entering and exiting trades. This approach ensures that traders participate in potentially profitable market moves while minimizing exposure during times of uncertainty.
Use Cases:
Volatility-Based Entries: Traders looking to take advantage of market volatility spikes will find this strategy useful for timing entry points during market swings.
Trend Confirmation: By using the EMA as a confirmation tool, traders can avoid entering trades that go against the trend, which can result in significant losses during volatile market conditions.
Risk Management: While the strategy exits when price falls below the EMA, it is important to recognize that this is not a full risk management system. Traders should use caution and integrate additional risk measures, such as stop-losses and position sizing, to better manage potential losses.
How to Use:
Step 1: Monitor the VIXFix and BVOL7D indicators. When both are rising and the Bitcoin price is above the EMA, the strategy will trigger a long entry, indicating that the market is experiencing increased volatility with a confirmed uptrend.
Step 2: Exit the position when the price drops below the 50-period EMA, signaling that the trend may be reversing or weakening, reducing the likelihood of continued upward price movement.
This strategy is open-source and is intended to help traders navigate volatile market conditions, particularly in Bitcoin, using proven indicators for volatility and trend confirmation.
Risk Disclaimer:
This strategy has been tested on the daily timeframe of Bitcoin, but users should be aware that it does not include built-in risk management except for the below-EMA exit condition. Users should be extremely cautious when using this strategy and are encouraged to implement their own risk management, such as using stop-losses, position sizing, and setting appropriate limits. Trading involves significant risk, and this strategy does not guarantee profits or prevent losses. Past performance is not indicative of future results. Always test any strategy in a demo environment before applying it to live markets.
Standard Deviation based Upper Lower RangeThis script makes use of historical data for finding the standard deviation on daily returns. Based on the mean and standard deviation, the upper and lower range for the stock is shown upto 2x standard deviation. These bounds can be treated as volatility range for the next n trading sessions. This volatility is based on historical data. Users can change the lookback historical period, and can also set the time period (days) for upcoming trading sessions.
This indicator can be useful in determining stoploss and target levels along with the traditional support/resistance levels. It can also be useful in option trading where one needs to determine a range beyond which it is safe to sell an option.
A range of 1 SD has around 65% to 68% probability that it will not be breached. A range of 2 SD has around 95% probability that it will not be breached.
The indicator is based on Normal distribution theory. In future editions, I envision to also calculate the skewness and kurtosis so that we can determine if a stock is properly following Normal Distribution theory. That may further favor the calculated range.
Multi-Step Vegas SuperTrend - strategy [presentTrading]Long time no see! I am back : ) Please allow me to gain some warm-up.
█ Introduction and How it is Different
The "Vegas SuperTrend Strategy" is an enhanced trading strategy that leverages both the Vegas Channel and SuperTrend indicators to generate buy and sell signals.
What sets this strategy apart from others is its dynamic adjustment to market volatility and its multi-step take profit mechanism. Unlike traditional single-step profit-taking approaches, this strategy allows traders to systematically scale out of positions at predefined profit levels, thereby optimizing their risk-reward ratio and maximizing potential gains.
BTCUSD 6hr performance
█ Strategy, How it Works: Detailed Explanation
The Vegas SuperTrend Strategy combines the strengths of the Vegas Channel and SuperTrend indicators to identify market trends and generate trade signals. The following subsections delve into the details of how each component works and how they are integrated.
🔶 Vegas Channel Calculation
The Vegas Channel is based on a simple moving average (SMA) and the standard deviation (STD) of the closing prices over a specified period. The channel is defined by upper and lower bounds that are dynamically adjusted based on market volatility.
Simple Moving Average (SMA):
SMA_vegas = (1/N) * Σ(Close_i) for i = 0 to N-1
where N is the length of the Vegas Window.
Standard Deviation (STD):
STD_vegas = sqrt((1/N) * Σ(Close_i - SMA_vegas)^2) for i = 0 to N-1
Vegas Channel Upper and Lower Bounds:
VegasChannelUpper = SMA_vegas + STD_vegas
VegasChannelLower = SMA_vegas - STD_vegas
The details are here:
🔶 Trend Detection and Trade Signals
The strategy determines the current market trend based on the closing price relative to the SuperTrend bounds:
Market Trend:
MarketTrend = 1 if Close > SuperTrendPrevLower
-1 if Close < SuperTrendPrevUpper
Previous Trend otherwise
Trade signals are generated when there is a shift in the market trend:
Bullish Signal: When the market trend shifts from -1 to 1.
Bearish Signal: When the market trend shifts from 1 to -1.
🔶 Multi-Step Take Profit Mechanism
The strategy incorporates a multi-step take profit mechanism that allows for partial exits at predefined profit levels. This helps in locking in profits gradually and reducing exposure to market reversals.
Take Profit Levels:
The take profit levels are calculated as percentages of the entry price:
TakeProfitLevel_i = EntryPrice * (1 + TakeProfitPercent_i/100) for long positions
TakeProfitLevel_i = EntryPrice * (1 - TakeProfitPercent_i/100) for short positions
Multi-steps take profit local picture:
█ Trade Direction
The trade direction can be customized based on the user's preference:
Long: The strategy only takes long positions.
Short: The strategy only takes short positions.
Both: The strategy can take both long and short positions based on the market trend.
█ Usage
To use the Vegas SuperTrend Strategy, follow these steps:
Configure Input Settings:
- Set the ATR period, Vegas Window length, SuperTrend Multiplier, and Volatility Adjustment Factor.
- Choose the desired trade direction (Long, Short, Both).
- Enable or disable the take profit mechanism and set the take profit percentages and amounts for each step.
█ Default Settings
The default settings of the strategy are designed to provide a balanced approach to trading. Below is an explanation of each setting and its effect on the strategy's performance:
ATR Period (10): This setting determines the length of the ATR used in the SuperTrend calculation. A longer period smoothens the ATR, making the SuperTrend less sensitive to short-term volatility. A shorter period makes the SuperTrend more responsive to recent price movements.
Vegas Window Length (100): This setting defines the period for the Vegas Channel's moving average. A longer window provides a broader view of the market trend, while a shorter window makes the channel more responsive to recent price changes.
SuperTrend Multiplier (5): This base multiplier adjusts the sensitivity of the SuperTrend to the ATR. A higher multiplier makes the SuperTrend less sensitive, reducing the frequency of trade signals. A lower multiplier increases sensitivity, generating more signals.
Volatility Adjustment Factor (5): This factor dynamically adjusts the SuperTrend multiplier based on the width of the Vegas Channel. A higher factor increases the sensitivity of the SuperTrend to changes in market volatility, while a lower factor reduces it.
Take Profit Percentages (3.0%, 6.0%, 12.0%, 21.0%): These settings define the profit levels at which portions of the trade are exited. They help in locking in profits progressively as the trade moves in favor.
Take Profit Amounts (25%, 20%, 10%, 15%): These settings determine the percentage of the position to exit at each take profit level. They are distributed to ensure that significant portions of the trade are closed as the price reaches the set levels, reducing exposure to reversals.
Adjusting these settings can significantly impact the strategy's performance. For instance, increasing the ATR period or the SuperTrend multiplier can reduce the number of trades, potentially improving the win rate but also missing out on some profitable opportunities. Conversely, lowering these values can increase trade frequency, capturing more short-term movements but also increasing the risk of false signals.
Historical Volatility (adjustable time period)Historical Volatility with Adjustable Time Period and Moving Average
This indicator calculates the historical volatility of an asset within a user-defined date range. Volatility is a measure of the dispersion of returns and is commonly used to assess the risk and potential price fluctuations of an asset.
How It Works
User-Defined Date Range: You can specify the start and end dates to focus on a particular period for volatility calculation. This is useful for analyzing specific historical events or trends within a defined timeframe.
Daily Returns Calculation: The script calculates the daily returns as the percentage change between the current close price and the previous close price. This percentage change is essential for determining the asset's volatility.
Volatility Calculation: The historical volatility is computed as the standard deviation of the daily returns over a specified period. The standard deviation is a statistical measure that quantifies the amount of variation or dispersion in a set of values.
Moving Average: An optional feature allows you to plot a moving average of the volatility. You can customize the type (SMA, EMA, WMA, VWMA) and the period of the moving average, helping to smooth out the volatility data and identify trends.
Indicator Settings
Start Date: Select the beginning date of the period for which you want to calculate volatility.
End Date: Select the end date of the period.
Period: Set the number of bars (days) over which to calculate the average volatility.
Show Moving Average: Toggle to display the moving average of the volatility.
Moving Average Period: Define the length of the moving average.
Moving Average Type: Choose the type of moving average: Simple (SMA), Exponential (EMA), Weighted (WMA), or Volume-Weighted (VWMA).
How to Use
Configure Date Range: Set the start and end dates to focus on the specific historical period you are interested in.
Adjust Period for Volatility Calculation: Select the period over which you want to calculate the average volatility. A shorter period will be more sensitive to recent price changes, while a longer period will provide a more smoothed view.
Enable and Configure Moving Average: If desired, enable the moving average and select the type and period that best fits your analysis style.
Example Use Cases
Market Analysis: Identify periods of high or low volatility to assess market conditions.
Risk Management: Use historical volatility to evaluate the risk associated with a particular asset.
Event Impact: Analyze how specific events within the selected date range affected the asset's volatility.
By providing these functionalities, this indicator is a valuable tool for traders looking to understand and analyze the volatility of assets over custom time periods with the flexibility of adding a moving average for trend analysis.
IV Rank Oscillator by dinvestorqShort Title: IVR OscSlg
Description:
The IV Rank Oscillator is a custom indicator designed to measure and visualize the Implied Volatility (IV) Rank using Historical Volatility (HV) as a proxy. This indicator helps traders determine whether the current volatility level is relatively high or low compared to its historical levels over a specified period.
Key Features :
Historical Volatility (HV) Calculation: Computes the historical volatility based on the standard deviation of logarithmic returns over a user-defined period.
IV Rank Calculation: Normalizes the current HV within the range of the highest and lowest HV values over the past 252 periods (approximately one year) to generate the IV Rank.
IV Rank Visualization: Plots the IV Rank, along with reference lines at 50 (midline), 80 (overbought), and 20 (oversold), making it easy to interpret the relative volatility levels.
Historical Volatility Plot: Optionally plots the Historical Volatility for additional reference.
Usage:
IV Rank : Use the IV Rank to assess the relative level of volatility. High IV Rank values (close to 100) indicate that the current volatility is high relative to its historical range, while low IV Rank values (close to 0) indicate low relative volatility.
Reference Lines: The overbought (80) and oversold (20) lines help identify extreme volatility conditions, aiding in trading decisions.
Example Use Case:
A trader can use the IV Rank Oscillator to identify potential entry and exit points based on the volatility conditions. For instance, a high IV Rank may suggest a period of high market uncertainty, which could be a signal for options traders to consider strategies like selling premium. Conversely, a low IV Rank might indicate a more stable market condition.
Parameters:
HV Calculation Length: Adjustable period length for the historical volatility calculation (default: 20 periods).
This indicator is a powerful tool for options traders, volatility analysts, and any market participant looking to gauge market conditions based on historical volatility patterns.
FOMO Alert (Miu)This indicator won't plot anything to the chart.
Please follow steps below to set your alarms based on price range variation:
1) Add indicator to the chart
2) Go to settings
3) Choose timeframe which will be used to calculate bars
4) Choose how many bars which will be used to calculate max and min range
5) Choose max and min range variation (%) to trigger alerts
5) Choose up to 6 different symbols to get alert notification
6) Once all is set go back to the chart and click on 3 dots to set alert in this indicator, rename your alert and confirm
7) You can remove indicator after alert is set and it'll keep working as expected
What does this indicator do?
This indicator will generate alerts based on following conditions:
- If min and max prices reach the range (%) from amount of bars on timeframe set for any symbol checked it will trigger an alert.
- If next set of bars reaches higher range than before it will trigger an alert with new data
- If next set of bars doesn't reach higher range than before it will not trigger alerts, even if they are above the range set (this is to prevent the alert to keep triggering with high frequency)
Once condition is met it will send an alert with the following information:
- Symbol name (e.g: BTC, ETH, LTC)
- Range achieved (e.g: 3,03%)
- Current symbol price and current bar direction (e.g: 63,477.1 ▲)
This script will request lowest and highest prices through request.security() built-in function from all different symbols within the range set. It also requests symbols' price (close) and amount of digits (mintick) for each symbol to send alerts with correct value.
This script was developed with main purpose to send alerts when there are strong price movements and I decided to share with community so anyone can set different parameters for different purposes.
Feel free to give feedbacks on comments section below.
Enjoy!
Custom spreadThis indictor allows you to plot the spread over an arbitrary period, which can be especially useful for futures and other instruments.
Inputs:
Expression : symbols for calculation and arithmetic operation
Period: from to period and timeframe
The output will show bars for the given period
Particularly useful for comparing two selected contracts on two futures
Realized volatility differentialAbout
This is a simple indicator that takes into account two types of realized volatility: Close-Close and High-Low (the latter is more useful for intraday trading).
The output of the indicator is two values / plots:
an average of High-Low volatility minus Close-Close volatility (10day period is used as a default)
the current value of the indicator
When the current value is:
lower / below the average, then it means that High-Low volatility should increase.
higher / above then obviously the opposite is true.
How to use it
It might be used as a timing tool for mean reversion strategies = when your primary strategy says a market is in mean reversion mode, you could use it as a signal for opening a position.
For example: let's say a security is in uptrend and approaching an important level (important to you).
If the current value is:
above the average, a short position can be opened, as High-Low volatility should decrease;
below the average, a trend should continue.
Intended securities
Futures contracts
Scalper's Volatility Filter [QuantraSystems]Scalpers Volatility Filter
Introduction
The 𝒮𝒸𝒶𝓁𝓅𝑒𝓇'𝓈 𝒱𝑜𝓁𝒶𝓉𝒾𝓁𝒾𝓉𝓎 𝐹𝒾𝓁𝓉𝑒𝓇 (𝒮𝒱𝐹) is a sophisticated technical indicator, designed to increase the profitability of lower timeframe trading.
Due to the inherent decrease in the signal-to-noise ratio when trading on lower timeframes, it is critical to develop analysis methods to inform traders of the optimal market periods to trade - and more importantly, when you shouldn’t trade.
The 𝒮𝒱𝐹 uses a blend of volatility and momentum measurements, to signal the dominant market condition - trending or ranging.
Legend
The 𝒮𝒱𝐹 consists of a signal line that moves above and below a central zero line, serving as the indication of market regime.
When the signal line is positioned above zero, it indicates a period of elevated volatility. These periods are more profitable for trading, as an asset will experience larger price swings, and by design, trend-following indicators will give less false signals.
Conversely, when the signal line moves below zero, a low volatility or mean-reverting market regime dominates.
This distinction is critical for traders in order to align strategies with the prevailing market behaviors - leveraging trends in volatile markets and exercising caution or implementing mean-reversion systems in periods of lower volatility.
Case Study
Here we can see the indicator's unique edge in action.
Out of the four potential long entries seen on the chart - displayed via bar coloring, two would result in losses.
However, with the power of the 𝒮𝒱𝐹 a trader can effectively filter false signals by only entering momentum-trades when the signal line is above zero.
In this small sample of four trades, the 𝒮𝒱𝐹 increased the win rate from 50% to 100%
Methodology
The methodology behind the 𝒮𝒱𝐹 is based upon three components:
By calculating and contrasting two ATR’s, the immediate market momentum relative to the broader, established trend is calculated. The original method for this can be credited to the user @xinolia
A modified and smoothed ADX indicator is calculated to further assess the strength and sustainability of trends.
The ‘Linear Regression Dispersion’ measures price deviations from a fitted regression line, adding further confluence to the signals representation of market conditions.
Together, these components synthesize a robust, balanced view of market conditions, enabling traders to help align strategies with the prevailing market environment, in order to potentially increase expected value and win rates.
Z-score changeAs a wise man once said that:
1. beginners think in $ change
2. intermediates think in % change
3. pros think in Z change
Here is the "Z-score change" indicator that calculates up/down moves normalized by standard deviation (volatility) displayed as bar chart with 1,2 and 3 stdev levels.
GARCH Volatility Estimation - The Quant ScienceThe GARCH (Generalized Autoregressive Conditional Heteroskedasticity) model is a statistical model used to forecast the volatility of a financial asset. This model takes into account the fluctuations in volatility over time, recognizing that volatility can vary in a heteroskedastic (i.e., non-constant variance) manner and can be influenced by past events.
The general formula of the GARCH model is:
σ²(t) = ω + α * ε²(t-1) + β * σ²(t-1)
where:
σ²(t) is the conditional variance at time t (i.e., squared volatility)
ω is the constant term (intercept) representing the baseline level of volatility
α is the coefficient representing the impact of the squared lagged error term on the conditional variance
ε²(t-1) is the squared lagged error term at the previous time period
β is the coefficient representing the impact of the lagged conditional variance on the current conditional variance
In the context of financial forecasting, the GARCH model is used to estimate the future volatility of the asset.
HOW TO USE
This quantitative indicator is capable of estimating the probable future movements of volatility. When the GARCH increases in value, it means that the volatility of the asset will likely increase as well, and vice versa. The indicator displays the relationship of the GARCH (bright red) with the trend of historical volatility (dark red).
USER INTERFACE
Alpha: select the starting value of Alpha (default value is 0.10).
Beta: select the starting value of Beta (default value is 0.80).
Lenght: select the period for calculating values within the model such as EMA (Exponential Moving Average) and Historical Volatility (default set to 20).
Forecasting: select the forecasting period, the number of bars you want to visualize data ahead (default set to 30).
Design: customize the indicator with your preferred color and choose from different types of charts, managing the design settings.
VIX Dashboard [NariCapitalTrading]Overview
This VIX Dashboard is designed to provide traders with a quick visual reference into the current volatility and trend direction of the market as measured by CBOE VIX. It uses statistical measures and indicators including Rate of Change (ROC), Average True Range (ATR), and simple moving averages (SMA) to analyze the VIX.
Components
ATR Period : The ATR Period is used to calculate the Average True Range. The default period set is 24.
Trend Period : This period is used for the Simple Moving Average (SMA) to determine the trend direction. The default is set to 48.
Speed Up/Down Thresholds : These thresholds are used to determine significant increases or decreases in the VIX’s rate of change, signaling potential market volatility spikes or drops. These are customizable in the input section.
VIX Data : The script fetches the closing price of the VIX from a specified source (CBOE:VIX) with a 60-minute interval.
Rate of Change (ROC) : The ROC measures the percentage change in price from one period to the next. The script uses a default period of 20. The period can be customized in the input section.
VIX ATR : This is the Average True Range of the VIX, indicating the daily volatility level.
Trend Direction : Determined by comparing the VIX data with its SMA, indicating if the trend is up, down, or neutral. The trend direction can be customized in the input section.
Dashboard Display : The script creates a table on the chart that dynamically updates with the VIX ROC, ATR, trend direction, and speed.
Calculations
VIX ROC : Calculated as * 100
VIX ATR : ATR is calculated using the 'atrPeriod' and is a measure of volatility.
Trend Direction : Compared against the SMA over 'trendPeriod'.
Trader Interpretation
High ROC Value : Indicates increasing volatility, which could signal a market turn or increased uncertainty.
High ATR Value : Suggests high volatility, often seen in turbulent market conditions.
Trend Direction : Helps in understanding the overall market sentiment and trend.
Speed Indicators : “Mooning” suggests rapid increase in volatility, whereas “Cratering” indicates a rapid decrease.
The interpretation of these indicators should be combined with other market analysis tools for best results.
Market Pivot Levels [Past & Live]Market Levels provide a robust view of daily pivot points of markets such as high/low/close with both past and live values shown at the same time using the recently updated system of polylines of pinescript.
The main need for this script arose from not being able to use plots for daily points because plots are inherently once drawn can't be erased and because we can't plot stuff for previous bars after values are determined we can't use them reliably. And while we can use traditional lines, because we would have extremely high amount of lines and we would have to keep removing the previous ones it wouldn't be that effective way for us. So we try to do it with the new method of polylines .
Features of this script:
- Daily High/Low Points
- Yesterday High/Low/Close Points
- Pre-Market High-Low points.
Now let's preview some of the important points of code and see how we achieve this:
With the code below we make sure no matter which chart we are using we are getting the extended hours version of sessions so our calculations are made safely for viewing pre-market conditions.
// Let's get ticker extended no matter what the current chart is
tc = ticker.new(syminfo.prefix, syminfo.ticker, session.extended)
Coding our own function to calculate high's and low's because inbuilt pinescript function cannot take series and we send this function to retrieve our high's and lows.
// On the fly function to calculate daily highlows instead of tv inbuilt because tv's length cannot take series
f_highlow(int last) =>
bardiff = last
float _low = low, float _high = high
for i = bardiff to 0 by 1
if high > _high
_high := high
if low < _low
_low := low
With doing calculations at the bars of day ending points we can retrieve the correct points and values and push them for our polylines array so it can be used in best way possible.
// Daily change points
changeD = timeframe.change("D")
// When new day starts fill polyline arrays with previous day values for polylines to draw on chart
// We also update prevtime values with current ones after we pushed to the arrays
if changeD
f_arrFill(cpArrHigh, cpArrLow, prevArrh, prevArrl, prevArrc, prevMarh, prevMarl)
valHolder.unshift(valueHold.new(_high, _low, _high, _close, _low, time, pr_h, pr_l))
The rest of the code is annotated and commented. You can let me know in comments if you have any questions. Happy trading.
Monthly beta (5Y monthly) with multi-timeframe supportThe PROPER way to calculate beta for a stock using monthly price returns . None of this nonsense using daily returns and sliding windows as done by other scripts...
Works on any timeframe.
This script has been checked against 100s of stocks on Yahoo finance and Zacks research data and matches 100% (some rounding error as this script is kept updated live on unconfirmed monthly bars).
You can check for yourself:
Zacks fundamentals - beta
The script calculates beta using the Variance-Covariance Method as described on Investopedia
How to calculate Beta
Percentage Range Consolidation HistogramThe Percentage Range Consolidation histogram is a measure of volatility, ranking current price range compared to past ranges.
🟩 USAGE
Here there are 2 heavy contractions of price shown on chart that lead to a big rally. Shows a possible way to approach trading this. Take into account that this is for illustration purposes only and these entry methods have not been tested for long term profitability.
Same price behaviour.
🟩 CALCULATION
The script will use 3 different ranges all configurable by the user to check for low volatility on different zone lengths . On default zone 1 will be 10 period, 2 will be 30 period and 3 is 50 periods long.
It will then measure the percentage these ranges have from top (highest close) to bottom (lowest close) and plot those numbers as 3 gray histograms.
For each of these histograms separately it will use 'percentage zone PNR Length setting' as a lookback to rank current zone percentage compared to past results.
How it will do that is using the 'percentage zone PNR % setting' it will draw a line using ta.percentile_nearest_rank() formula. At default this is 20% meaning that only 20% of lookback values where below this level.
When the histogram is below this white line (small range compared to past ranges) it will color the histogram. Yellow for zone 1, orange for zone 2 and blue for zone 3.
There is also a 'Percentage zone % filter' which you can use as a maximum % current zone for it to be considered a small range. On default this is set to 15%. You can turn this off by selecting 'median' as 'Consolidation filters' instead of 'all' . Or only use this by selecting 'percentage'
🟩 BAR COLORING
Now that you understand how to find small ranges (contractions of price) with the indicator there is a bar coloring option in the indicator.
You can select how many of the 3 zones have to be ranging for it to color the bar. On default this is set to 3 so the script will only color when price is in a very small range. As illustrated by the above charts these can lead to the beginnings of big trends.
Intraday Volatility BarsThis script produce a volatility histrogram by bar with the current volatility overlayed.
The histogram shows cumulative average volatility over n days.
And the dots are todays cumulative volatility.
In other words, it calculates the True Range of each bar and adds it to todays value.
This script is build for intraday timeframes between one and 1440 minutes only.
I use this to show me when volatility is above/below/equal to the average volatility.
When the dots are above the histogram then it is a more volatile day, and vice versa.
Recognizing a more volatile day as early as possible can be an advantage for daytrader.
Days that start with higher volatility seems to continue to increase relative to the past few days. Or when midday volatility rises it seems to continue as well.
Happy Trading!
Volatility Price RangeThe Volatility Price Range is an overlay which estimates a price range for the next seven days and next day, based on historical volatility (already available in TradingView). The upper and lower bands are calculated as follows:
The Volatility for one week is calculated using the formula: WV = HV * √t where:
WV: one-week volatility
HV: annual volatility
√: square root
t: the time factor expressed in years
From this formula we can deduce the weekly volatility WV = HV * √(1 / 52) = HV / 7.2 where 52: weeks in a year.
The daily volatility DV = HV * √(1 / 365) = HV / 19.1 where 365: days in a year.
To calculate the lower and upper value of the bands, the weekly/daily volatility value obtained will be subtracted/added from/to the current price.