Volatility-Targeted Momentum Portfolio [BackQuant]Volatility-Targeted Momentum Portfolio
A complete momentum portfolio engine that ranks assets, targets a user-defined volatility, builds long, short, or delta-neutral books, and reports performance with metrics, attribution, Monte Carlo scenarios, allocation pie, and efficiency scatter plots. This description explains the theory and the mechanics so you can configure, validate, and deploy it with intent.
Table of contents
What the script does at a glance
Momentum, what it is, how to know if it is present
Volatility targeting, why and how it is done here
Portfolio construction modes: Long Only, Short Only, Delta Neutral
Regime filter and when the strategy goes to cash
Transaction cost modelling in this script
Backtest metrics and definitions
Performance attribution chart
Monte Carlo simulation
Scatter plot analysis modes
Asset allocation pie chart
Inputs, presets, and deployment checklist
Suggested workflow
1) What the script does at a glance
Pulls a list of up to 15 tickers, computes a simple momentum score on each over a configurable lookback, then volatility-scales their bar-to-bar return stream to a target annualized volatility.
Ranks assets by raw momentum, selects the top 3 and bottom 3, builds positions according to the chosen mode, and gates exposure with a fast regime filter.
Accumulates a portfolio equity curve with risk and performance metrics, optional benchmark buy-and-hold for comparison, and a full alert suite.
Adds visual diagnostics: performance attribution bars, Monte Carlo forward paths, an allocation pie, and scatter plots for risk-return and factor views.
2) Momentum: definition, detection, and validation
Momentum is the tendency of assets that have performed well to continue to perform well, and of underperformers to continue underperforming, over a specific horizon. You operationalize it by selecting a horizon, defining a signal, ranking assets, and trading the leaders versus laggards subject to risk constraints.
Signal choices . Common signals include cumulative return over a lookback window, regression slope on log-price, or normalized rate-of-change. This script uses cumulative return over lookback bars for ranking (variable cr = price/price - 1). It keeps the ranking simple and lets volatility targeting handle risk normalization.
How to know momentum is present .
Leaders and laggards persist across adjacent windows rather than flipping every bar.
Spread between average momentum of leaders and laggards is materially positive in sample.
Cross-sectional dispersion is non-trivial. If everything is flat or highly correlated with no separation, momentum selection will be weak.
Your validation should include a diagnostic that measures whether returns are explained by a momentum regression on the timeseries.
Recommended diagnostic tool . Before running any momentum portfolio, verify that a timeseries exhibits stable directional drift. Use this indicator as a pre-check: It fits a regression to price, exposes slope and goodness-of-fit style context, and helps confirm if there is usable momentum before you force a ranking into a flat regime.
3) Volatility targeting: purpose and implementation here
Purpose . Volatility targeting seeks a more stable risk footprint. High-vol assets get sized down, low-vol assets get sized up, so each contributes more evenly to total risk.
Computation in this script (per asset, rolling):
Return series ret = log(price/price ).
Annualized volatility estimate vol = stdev(ret, lookback) * sqrt(tradingdays).
Leverage multiplier volMult = clamp(targetVol / vol, 0.1, 5.0).
This caps sizing so extremely low-vol assets don’t explode weight and extremely high-vol assets don’t go to zero.
Scaled return stream sr = ret * volMult. This is the per-bar, risk-adjusted building block used in the portfolio combinations.
Interpretation . You are not levering your account on the exchange, you are rescaling the contribution each asset’s daily move has on the modeled equity. In live trading you would reflect this with position sizing or notional exposure.
4) Portfolio construction modes
Cross-sectional ranking . Assets are sorted by cr over the chosen lookback. Top and bottom indices are extracted without ties.
Long Only . Averages the volatility-scaled returns of the top 3 assets: avgRet = mean(sr_top1, sr_top2, sr_top3). Position table shows per-asset leverages and weights proportional to their current volMult.
Short Only . Averages the negative of the volatility-scaled returns of the bottom 3: avgRet = mean(-sr_bot1, -sr_bot2, -sr_bot3). Position table shows short legs.
Delta Neutral . Long the top 3 and short the bottom 3 in equal book sizes. Each side is sized to 50 percent notional internally, with weights within each side proportional to volMult. The return stream mixes the two sides: avgRet = mean(sr_top1,sr_top2,sr_top3, -sr_bot1,-sr_bot2,-sr_bot3).
Notes .
The selection metric is raw momentum, the execution stream is volatility-scaled returns. This separation is deliberate. It avoids letting volatility dominate ranking while still enforcing risk parity at the return contribution stage.
If everything rallies together and dispersion collapses, Long Only may behave like a single beta. Delta Neutral is designed to extract cross-sectional momentum with low net beta.
5) Regime filter
A fast EMA(12) vs EMA(21) filter gates exposure.
Long Only active when EMA12 > EMA21. Otherwise the book is set to cash.
Short Only active when EMA12 < EMA21. Otherwise cash.
Delta Neutral is always active.
This prevents taking long momentum entries during obvious local downtrends and vice versa for shorts. When the filter is false, equity is held flat for that bar.
6) Transaction cost modelling
There are two cost touchpoints in the script.
Per-bar drag . When the regime filter is active, the per-bar return is reduced by fee_rate * avgRet inside netRet = avgRet - (fee_rate * avgRet). This models proportional friction relative to traded impact on that bar.
Turnover-linked fee . The script tracks changes in membership of the top and bottom baskets (top1..top3, bot1..bot3). The intent is to charge fees when composition changes. The template counts changes and scales a fee by change count divided by 6 for the six slots.
Use case: increase fee_rate to reflect taker fees and slippage if you rebalance every bar or trade illiquid assets. Reduce it if you rebalance less often or use maker orders.
Practical advice .
If you rebalance daily, start with 5–20 bps round-trip per switch on liquid futures and adjust per venue.
For crypto perp microcaps, stress higher cost assumptions and add slippage buffers.
If you only rotate on lookback boundaries or at signals, use alert-driven rebalances and lower per-bar drag.
7) Backtest metrics and definitions
The script computes a standard set of portfolio statistics once the start date is reached.
Net Profit percent over the full test.
Max Drawdown percent, tracked from running peaks.
Annualized Mean and Stdev using the chosen trading day count.
Variance is the square of annualized stdev.
Sharpe uses daily mean adjusted by risk-free rate and annualized.
Sortino uses downside stdev only.
Omega ratio of sum of gains to sum of losses.
Gain-to-Pain total gains divided by total losses absolute.
CAGR compounded annual growth from start date to now.
Alpha, Beta versus a user-selected benchmark. Beta from covariance of daily returns, Alpha from CAPM.
Skewness of daily returns.
VaR 95 linear-interpolated 5th percentile of daily returns.
CVaR average of the worst 5 percent of daily returns.
Benchmark Buy-and-Hold equity path for comparison.
8) Performance attribution
Cumulative contribution per asset, adjusted for whether it was held long or short and for its volatility multiplier, aggregated across the backtest. You can filter to winners only or show both sides. The panel is sorted by contribution and includes percent labels.
9) Monte Carlo simulation
The panel draws forward equity paths from either a Normal model parameterized by recent mean and stdev, or non-parametric bootstrap of recent daily returns. You control the sample length, number of simulations, forecast horizon, visibility of individual paths, confidence bands, and a reproducible seed.
Normal uses Box-Muller with your seed. Good for quick, smooth envelopes.
Bootstrap resamples realized returns, preserving fat tails and volatility clustering better than a Gaussian assumption.
Bands show 10th, 25th, 75th, 90th percentiles and the path mean.
10) Scatter plot analysis
Four point-cloud modes, each plotting all assets and a star for the current portfolio position, with quadrant guides and labels.
Risk-Return Efficiency . X is risk proxy from leverage, Y is expected return from annualized momentum. The star shows the current book’s composite.
Momentum vs Volatility . Visualizes whether leaders are also high vol, a cue for turnover and cost expectations.
Beta vs Alpha . X is a beta proxy, Y is risk-adjusted excess return proxy. Useful to see if leaders are just beta.
Leverage vs Momentum . X is volMult, Y is momentum. Shows how volatility targeting is redistributing risk.
11) Asset allocation pie chart
Builds a wheel of current allocations.
Long Only, weights are proportional to each long asset’s current volMult and sum to 100 percent.
Short Only, weights show the short book as positive slices that sum to 100 percent.
Delta Neutral, 50 percent long and 50 percent short books, each side leverage-proportional.
Labels can show asset, percent, and current leverage.
12) Inputs and quick presets
Core
Portfolio Strategy . Long Only, Short Only, Delta Neutral.
Initial Capital . For equity scaling in the panel.
Trading Days/Year . 252 for stocks, 365 for crypto.
Target Volatility . Annualized, drives volMult.
Transaction Fees . Per-bar drag and composition change penalty, see the modelling notes above.
Momentum Lookback . Ranking horizon. Shorter is more reactive, longer is steadier.
Start Date . Ensure every symbol has data back to this date to avoid bias.
Benchmark . Used for alpha, beta, and B&H line.
Diagnostics
Metrics, Equity, B&H, Curve labels, Daily return line, Rolling drawdown fill.
Attribution panel. Toggle winners only to focus on what matters.
Monte Carlo mode with Normal or Bootstrap and confidence bands.
Scatter plot type and styling, labels, and portfolio star.
Pie chart and labels for current allocation.
Presets
Crypto Daily, Long Only . Lookback 25, Target Vol 50 percent, Fees 10 bps, Regime filter on, Metrics and Drawdown on. Monte Carlo Bootstrap with Recent 200 bars for bands.
Crypto Daily, Delta Neutral . Lookback 25, Target Vol 50 percent, Fees 15–25 bps, Regime filter always active for this mode. Use Scatter Risk-Return to monitor efficiency and keep the star near upper left quadrants without drifting rightward.
Equities Daily, Long Only . Lookback 60–120, Target Vol 15–20 percent, Fees 5–10 bps, Regime filter on. Use Benchmark SPX and watch Alpha and Beta to keep the book from becoming index beta.
13) Suggested workflow
Universe sanity check . Pick liquid tickers with stable data. Thin assets distort vol estimates and fees.
Check momentum existence . Run on your timeframe. If slope and fit are weak, widen lookback or avoid that asset or timeframe.
Set risk budget . Choose a target volatility that matches your drawdown tolerance. Higher target increases turnover and cost sensitivity.
Pick mode . Long Only for bull regimes, Short Only for sustained downtrends, Delta Neutral for cross-sectional harvesting when index direction is unclear.
Tune lookback . If leaders rotate too often, lengthen it. If entries lag, shorten it.
Validate cost assumptions . Increase fee_rate and stress Monte Carlo. If the edge vanishes with modest friction, refine selection or lengthen rebalance cadence.
Run attribution . Confirm the strategy’s winners align with intuition and not one unstable outlier.
Use alerts . Enable position change, drawdown, volatility breach, regime, momentum shift, and crash alerts to supervise live runs.
Important implementation details mapped to code
Momentum measure . cr = price / price - 1 per symbol for ranking. Simplicity helps avoid overfitting.
Volatility targeting . vol = stdev(log returns, lookback) * sqrt(tradingdays), volMult = clamp(targetVol / vol, 0.1, 5), sr = ret * volMult.
Selection . Extract indices for top1..top3 and bot1..bot3. The arrays rets, scRets, lev_vals, and ticks_arr track momentum, scaled returns, leverage multipliers, and display tickers respectively.
Regime filter . EMA12 vs EMA21 switch determines if the strategy takes risk for Long or Short modes. Delta Neutral ignores the gate.
Equity update . Equity multiplies by 1 + netRet only when the regime was active in the prior bar. Buy-and-hold benchmark is computed separately for comparison.
Tables . Position tables show current top or bottom assets with leverage and weights. Metric table prints all risk and performance figures.
Visualization panels . Attribution, Monte Carlo, scatter, and pie use the last bars to draw overlays that update as the backtest proceeds.
Final notes
Momentum is a portfolio effect. The edge comes from cross-sectional dispersion, adequate risk normalization, and disciplined turnover control, not from a single best asset call.
Volatility targeting stabilizes path but does not fix selection. Use the momentum regression link above to confirm structure exists before you size into it.
Always test higher lag costs and slippage, then recheck metrics, attribution, and Monte Carlo envelopes. If the edge persists under stress, you have something robust.
In den Scripts nach "Volatility" suchen
JPMorgan G7 Volatility IndexThe JPMorgan G7 Volatility Index: Scientific Analysis and Professional Applications
Introduction
The JPMorgan G7 Volatility Index (G7VOL) represents a sophisticated metric for monitoring currency market volatility across major developed economies. This indicator functions as an approximation of JPMorgan's proprietary volatility indices, providing traders and investors with a normalized measurement of cross-currency volatility conditions (Clark, 2019).
Theoretical Foundation
Currency volatility is fundamentally defined as "the statistical measure of the dispersion of returns for a given security or market index" (Hull, 2018, p.127). In the context of G7 currencies, this volatility measurement becomes particularly significant due to the economic importance of these nations, which collectively represent more than 50% of global nominal GDP (IMF, 2022).
According to Menkhoff et al. (2012, p.685), "currency volatility serves as a global risk factor that affects expected returns across different asset classes." This finding underscores the importance of monitoring G7 currency volatility as a proxy for global financial conditions.
Methodology
The G7VOL indicator employs a multi-step calculation process:
Individual volatility calculation for seven major currency pairs using standard deviation normalized by price (Lo, 2002)
- Weighted-average combination of these volatilities to form a composite index
- Normalization against historical bands to create a standardized scale
- Visual representation through dynamic coloring that reflects current market conditions
The mathematical foundation follows the volatility calculation methodology proposed by Bollerslev et al. (2018):
Volatility = σ(returns) / price × 100
Where σ represents standard deviation calculated over a specified timeframe, typically 20 periods as recommended by the Bank for International Settlements (BIS, 2020).
Professional Applications
Professional traders and institutional investors employ the G7VOL indicator in several key ways:
1. Risk Management Signaling
According to research by Adrian and Brunnermeier (2016), elevated currency volatility often precedes broader market stress. When the G7VOL breaches its high volatility threshold (typically 1.5 times the 100-period average), portfolio managers frequently reduce risk exposure across asset classes. As noted by Borio (2019, p.17), "currency volatility spikes have historically preceded equity market corrections by 2-7 trading days."
2. Counter-Cyclical Investment Strategy
Low G7 volatility periods (readings below the lower band) tend to coincide with what Shin (2017) describes as "risk-on" environments. Professional investors often use these signals to increase allocations to higher-beta assets and emerging markets. Campbell et al. (2021) found that G7 volatility in the lowest quintile historically preceded emerging market outperformance by an average of 3.7% over subsequent quarters.
3. Regime Identification
The normalized volatility framework enables identification of distinct market regimes:
- Readings above 1.0: Crisis/high volatility regime
- Readings between -0.5 and 0.5: Normal volatility regime
- Readings below -1.0: Unusually calm markets
According to Rey (2015), these regimes have significant implications for global monetary policy transmission mechanisms and cross-border capital flows.
Interpretation and Trading Applications
G7 currency volatility serves as a barometer for global financial conditions due to these currencies' centrality in international trade and reserve status. As noted by Gagnon and Ihrig (2021, p.423), "G7 currency volatility captures both trade-related uncertainty and broader financial market risk appetites."
Professional traders apply this indicator in multiple contexts:
- Leading indicator: Research from the Federal Reserve Board (Powell, 2020) suggests G7 volatility often leads VIX movements by 1-3 days, providing advance warning of broader market volatility.
- Correlation shifts: During periods of elevated G7 volatility, cross-asset correlations typically increase what Brunnermeier and Pedersen (2009) term "correlation breakdown during stress periods." This phenomenon informs portfolio diversification strategies.
- Carry trade timing: Currency carry strategies perform best during low volatility regimes as documented by Lustig et al. (2011). The G7VOL indicator provides objective thresholds for initiating or exiting such positions.
References
Adrian, T. and Brunnermeier, M.K. (2016) 'CoVaR', American Economic Review, 106(7), pp.1705-1741.
Bank for International Settlements (2020) Monitoring Volatility in Foreign Exchange Markets. BIS Quarterly Review, December 2020.
Bollerslev, T., Patton, A.J. and Quaedvlieg, R. (2018) 'Modeling and forecasting (un)reliable realized volatilities', Journal of Econometrics, 204(1), pp.112-130.
Borio, C. (2019) 'Monetary policy in the grip of a pincer movement', BIS Working Papers, No. 706.
Brunnermeier, M.K. and Pedersen, L.H. (2009) 'Market liquidity and funding liquidity', Review of Financial Studies, 22(6), pp.2201-2238.
Campbell, J.Y., Sunderam, A. and Viceira, L.M. (2021) 'Inflation Bets or Deflation Hedges? The Changing Risks of Nominal Bonds', Critical Finance Review, 10(2), pp.303-336.
Clark, J. (2019) 'Currency Volatility and Macro Fundamentals', JPMorgan Global FX Research Quarterly, Fall 2019.
Gagnon, J.E. and Ihrig, J. (2021) 'What drives foreign exchange markets?', International Finance, 24(3), pp.414-428.
Hull, J.C. (2018) Options, Futures, and Other Derivatives. 10th edn. London: Pearson.
International Monetary Fund (2022) World Economic Outlook Database. Washington, DC: IMF.
Lo, A.W. (2002) 'The statistics of Sharpe ratios', Financial Analysts Journal, 58(4), pp.36-52.
Lustig, H., Roussanov, N. and Verdelhan, A. (2011) 'Common risk factors in currency markets', Review of Financial Studies, 24(11), pp.3731-3777.
Menkhoff, L., Sarno, L., Schmeling, M. and Schrimpf, A. (2012) 'Carry trades and global foreign exchange volatility', Journal of Finance, 67(2), pp.681-718.
Powell, J. (2020) Monetary Policy and Price Stability. Speech at Jackson Hole Economic Symposium, August 27, 2020.
Rey, H. (2015) 'Dilemma not trilemma: The global financial cycle and monetary policy independence', NBER Working Paper No. 21162.
Shin, H.S. (2017) 'The bank/capital markets nexus goes global', Bank for International Settlements Speech, January 15, 2017.
Momentum-Adjusted Volatility Ratio (MAVR)The Momentum-Adjusted Volatility Ratio (MAVR) indicator is designed to help you understand the strength of price movements relative to the market's volatility. It combines the concepts of rate of change (ROC) and average true range (ATR) and then calculates their ratio, which is then smoothed using an exponential moving average (EMA). Here's a general guide on how to use the MAVR indicator:
Identify the trend: Look for the overall direction of the EMA of the MAVR. When the EMA is above the zero line, it indicates that the momentum is positive and the trend is generally bullish. Conversely, when the EMA is below the zero line, it indicates that the momentum is negative, and the trend is generally bearish.
Assess momentum strength: Pay attention to the distance between the EMA of the MAVR and the zero line. A larger distance indicates a stronger momentum, while a smaller distance suggests weaker momentum. If the EMA of the MAVR moves further away from the zero line, it indicates that the price movement is becoming more robust relative to the market's volatility.
Look for potential entry and exit signals: When the EMA of the MAVR crosses the zero line, it could provide a potential trading signal. For instance, a cross from below to above the zero line may indicate a potential buying opportunity, while a cross from above to below the zero line may signal a potential selling opportunity. Keep in mind that the MAVR indicator should not be used in isolation, and it's essential to combine it with other technical analysis tools and risk management techniques.
Monitor for divergences: Sometimes, the price and the EMA of the MAVR can show divergences. For example, if the price makes a higher high while the EMA of the MAVR makes a lower high, it could signal a bearish divergence, suggesting a potential trend reversal. Similarly, if the price makes a lower low while the EMA of the MAVR makes a higher low, it could indicate a bullish divergence, suggesting a possible trend reversal.
Remember that no indicator is perfect, and the MAVR should be used in conjunction with other technical analysis tools and a solid trading strategy to increase the chances of success. Always use proper risk management techniques to protect your capital.
Volatility Adjusted Moving Average - JD@version=3
This indicator gives an adjusted moving average, based on the volatility of the past x amount of bars, measured against the ema of a certain length.
The idea came out of my VA adjusted Bands indicator where the VAMA is actually the center line.
I scripted the moving average as a function so it is easy to inport into other scripts,
Feel free to use it in your scripts and experiment with it,
of cousre, if you want to publish your script, a little mention in the notes is always appreciated.
At first view I might add some smoothing otions and
a couple of different ma options as a base anchor in future releases.
If you have any other ideas for further development,... let me know!!
JD.
#NotTradingAdvice #DYOR
I build these indicators for myself and provide them open source, to use for free to use and improve upon,
as I believe the best way to learn is toghether.
volatility-adjusted breakout envelopethis indicator is designed to help traders visually identify potential entry and exit points based on volatility-adjusted price thresholds. it works by calculating a dynamic expected price move around the previous close using historical volatility data smoothed by exponential moving averages to reduce noise and present a clear range boundary on the chart.
the indicator first computes the logarithmic returns over a user-defined lookback period and calculates the standard deviation of these returns, which represents raw volatility. it annualizes this volatility according to the chart timeframe selected, then uses it to estimate an expected price movement for the current timeframe. this expected move is smoothed to avoid sudden spikes or drops that could cause confusing signals.
using this expected move, the indicator generates two key threshold lines: an upper threshold and a lower threshold. these lines create a volatility-based range around the smoothed previous close price. the thresholds themselves are further smoothed with exponential moving averages to produce smooth, easy-to-interpret lines that adapt to changing market conditions without being choppy.
the core trading signals are generated when the price closes outside of these smoothed threshold ranges. specifically, a long entry signal is indicated when the price closes above the upper threshold for the first time, signaling potential upward momentum beyond normal volatility expectations. a short entry signal occurs when the price closes below the lower threshold for the first time, indicating potential downward momentum.
once an entry signal is triggered, the indicator waits for the price to close back inside the threshold range before signaling an exit. when this occurs, an exit marker is displayed to indicate that the price has returned within normal volatility bounds, which may suggest that the previous trend is losing strength or the breakout has ended.
these signals are visually represented on the chart using small shapes: triangles pointing upwards mark the initial long entries, triangles pointing downwards mark short entries, and x shapes mark the exits for both long and short positions. the colors of these shapes are customizable to suit user preferences.
to use this indicator effectively, traders should watch for the first close outside the smoothed volatility range to consider entering a position in the breakout direction. the exit signals help identify when price action reverts back into the expected range, which can be used to close or reduce the position. this method emphasizes trading breakouts supported by statistically significant moves relative to recent volatility while providing a clear exit discipline.
this indicator is best applied to intraday or daily charts with consistent volatility and volume characteristics. users should adjust the volatility lookback period, smoothing factor, and trading session times to match their specific market and trading style. because it relies on price volatility rather than fixed price levels, it can adapt to changing market conditions but should be combined with other analysis tools and proper risk management.
overall, this indicator provides a smoothed, dynamic volatility envelope with clear visual entry and exit cues based on first closes outside and back inside these envelopes, making it a helpful assistant for manual traders seeking to capture statistically significant breakouts while maintaining disciplined exits.
Volatility Gaussian Bands [BigBeluga]The Volatility Gaussian Bands indicator is a cutting-edge tool designed to analyze market trends and volatility with high precision. By applying a Gaussian filter to smooth price data and implementing dynamic bands based on market volatility, this indicator provides clear signals for trend direction, strength, and potential reversals. With updated volatility calculations, it enhances the accuracy of trend detection, making it a powerful addition to any trader's toolkit.
⮁ KEY FEATURES & USAGE
● Gaussian Filter Trend Bands:
The Gaussian Filter forms the foundation of this indicator by smoothing price data to reveal the underlying trend. The trend is visualized through upper and lower bands that adjust dynamically based on market volatility. These bands provide clear visual cues for traders: a crossover above the upper band indicates a potential uptrend, while a cross below the lower band signals a potential downtrend. This feature allows traders to identify trends with greater accuracy and act accordingly.
● Dynamic Trend Strength Gauges:
The indicator includes trend strength gauges positioned at the top and bottom of the chart. These gauges dynamically measure the strength of the uptrend and downtrend, based on the middle Gaussian line. Even if the trend is downward, a rising midline will cause the upward trend strength gauge to show an increase, offering a nuanced view of the market’s momentum.
Weakening of the trend:
● Fast Trend Change Indicators:
Triangles with a "+" symbol appear on the chart to signal rapid changes in trend direction. These indicators are particularly useful when the trend changes swiftly while the midline continues to grow in its previous direction. For instance, during a downtrend, if the trend suddenly shifts upward while the midline is still declining, a triangle with a "+" will indicate this quick reversal. This feature is crucial for traders looking to capitalize on rapid market movements.
● Retest Signals:
Retest signals, displayed as triangles, highlight potential areas where the price may retest the Gaussian line during a trend. These signals provide an additional layer of analysis, helping traders confirm trend continuations or identify possible reversals. The retest signals can be customized based on the trader’s preferences.
⮁ CUSTOMIZATION
● Length Adjustment:
The length of the Gaussian filter can be customized to control the sensitivity of trend detection. Shorter lengths make the indicator more responsive, while longer lengths offer a smoother, more stable trend line.
● Volatility Calculation Mode:
Traders can select from different modes (AVG, MEDIAN, MODE) to calculate the Gaussian filter, allowing for flexibility in how trends are detected and analyzed.
● Retest Signals Toggle:
Enable or disable the retest signals based on your trading strategy. This toggle allows traders to choose whether they want these additional signals to appear on the chart, providing more control over the information displayed during their analysis.
⮁ CONCLUSION
The Volatility Gaussian Bands indicator is a versatile and powerful tool for traders focused on trend and volatility analysis. By combining Gaussian-filtered trend lines with dynamic volatility bands, trend strength gauges, and rapid trend change indicators, this tool provides a comprehensive view of market conditions. Whether you are following established trends or looking to catch early reversals, the Volatility Gaussian Bands offers the precision and adaptability needed to enhance your trading strategy.
Volatility Trend Bands [UAlgo]The Volatility Trend Bands is a trend-following indicator that combines the concepts of volatility and trend detection. Built using the Average True Range (ATR) to measure volatility, this indicator dynamically adjusts upper and lower bands around price movements. The bands act as dynamic support and resistance levels, making it easier to identify trend shifts and potential entry and exit points.
With the ATR multiplier, this indicator effectively captures volatility-based shifts in the market. The use of midline values allows for accurate trend detection, which is displayed through color-coded signals on the chart. Additionally, this tool provides clear buy and sell signals, accompanied by intuitive graphical markers for ease of use.
The Volatility Trend Bands is ideal for traders seeking an adaptive trend-following method that responds to changing market conditions while maintaining robust volatility control.
🔶 Key Features
Dynamic Support and Resistance: The indicator utilizes volatility to create dynamic bands. The upper band acts as resistance, and the lower band acts as support for the price. Wider bands indicate higher volatility, while narrower bands indicate lower volatility.
Customizable Inputs
You can tailor the indicator to your strategy by adjusting the:
Price Source: Select the price data (e.g., closing price) used for calculations.
ATR Length: Define the lookback period for the Average True Range (ATR) volatility measure.
ATR Multiplier: This factor controls the width of the volatility bands relative to the ATR value.
Color Options: Choose colors for the bands and signal arrows for better visualization.
Visual Signals: Arrows ("▲" for buy, "▼" for sell) appear on the chart when the trend changes, providing clear entry point indications.
Alerts: Integrated alerts for both buy and sell conditions, allowing you to receive notifications for potential trade opportunities.
🔶 Interpreting Indicator
Upper and Lower Bands: The upper and lower bands are dynamic, adjusting based on market volatility using the ATR. These bands serve as adaptive support and resistance levels. When price breaks above the upper band, it indicates a potential bullish breakout, signaling a strong uptrend. Conversely, a break below the lower band signals a bearish breakout, indicating a downtrend.
Buy/Sell Signals: The indicator provides clear buy and sell signals at breakout points. A buy signal ("▲") is generated when the price breaks above the upper band, suggesting the start of a bullish trend. A sell signal ("▼") is triggered when the price breaks below the lower band, indicating the beginning of a bearish trend. These signals help traders identify potential entry and exit points at key breakout levels.
Color-Coded Bars: The bars on the chart change color based on the trend direction. Teal bars represent bullish momentum, while purple bars signify bearish momentum. This color coding provides a quick visual cue about the market's current direction.
🔶 Disclaimer
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Universal Volatility IndexThe Universal Volatility Index (UVI) is a robust indicator designed to gauge market volatility across various asset classes. By synthesizing multiple volatility measures, the UVI offers traders a nuanced understanding of market dynamics, aiding in the assessment of risk and the decision-making process.
How It Works:
The UVI incorporates three key components to calculate a composite volatility score:
Average True Range (ATR): This represents the average volatility over the specified period, giving a base measure of market movement.
Bollinger Bands Width: Highlights the expansion or contraction of price ranges, offering insights into market volatility relative to recent price action.
Rate of Change (ROC): Captures the momentum or the velocity of price changes, adding a temporal dimension to volatility assessment.
By combining these components, the UVI delivers a singular volatility metric that adapts to changing market conditions, providing a valuable tool for traders in any market.
Usage:
To apply the UVI to your chart, add the indicator from the Pine Script library and adjust the input parameters as desired.
The plot will display a line representing the composite volatility score, with higher values indicating increased market volatility and lower values suggesting calmer market conditions.
Benefits:
The UVI is versatile and can be applied to any market, making it a universal tool for traders.
The indicator helps in identifying periods of high risk where tighter risk management may be warranted.
It assists in pinpointing potential breakouts when volatility is expanding after a period of consolidation.
Compliance with TradingView House Rules:
This script is provided for educational purposes and does not constitute financial advice. It has been created to contribute to the TradingView community by offering a versatile tool that helps traders understand and navigate market volatility.
Normalized VolatilityOVERVIEW
The Normalized Volatility indicator is a technical indicator that gauges the amount of volatility currently present in the market, relative to the average volatility in the market. The purpose of this indicator is to filter out with-trend signals during ranging/non-trending/consolidating conditions.
CONCEPTS
This indicator assists traders in capitalizing on the assumption that trends are more likely to start during periods of high volatility compared to periods of low volatility. This is because high volatility indicates that there are bigger players currently in the market, which is necessary to begin a sustained trending move.
So, to determine whether the current volatility is "high", it is compared to an average volatility for however number of candles back the user specifies.
If the current volatility is greater than the average volatility, it is reasonable to assume we are in a high-volatility period. Thus, this is the ideal time to enter a trending trade due to the assumption that trends are more likely to start during these high-volatility periods.
HOW DO I READ THIS INDICATOR
When the column's color is red, don't take any trend trades since the current volatility is less than the average volatility experienced in the market.
When the column's color is green, take all valid with-trend trades since the current volatility is greater than the average volatility experienced in the market.
Relative Historical Volatility MCMRelative Historical Volatility
Historical Volatility is relative to it's doubled lookback period of the historical volatility to calculate relative historical volatility.
Including a standard deviation to calculate the volatility value itself is useless. It filters out 32% of the most volatile movements of the asset that you are observing.
Example of RHV:
Period of Volatility Value (POVV) : 10
Relative Historical Volatility : POVV / POVV*2
Historical Volatility of past 10 Bars is compared to the historical volatility of the bast 20 bars to show real growth/decrease of volatility relative to the time of the performing asset.
Comparing historical volatility to the current bar includes much more noise, the relative historical volatility can be perceived as a smoothed historical volatility ind.
Marginal notes:
Added standard deviations adjusted to the relative volatility value to predict probable future volatility of the stock.
OHLC Volatility Estimators by @Xel_arjonaDISCLAIMER:
The Following indicator/code IS NOT intended to be a formal investment advice or recommendation by the author, nor should be construed as such. Users will be fully responsible by their use regarding their own trading vehicles/assets.
The embedded code and ideas within this work are FREELY AND PUBLICLY available on the Web for NON LUCRATIVE ACTIVITIES and must remain as is by Creative-Commons as TradingView's regulations. Any use, copy or re-use of this code should mention it's origin as it's authorship.
WARNING NOTICE!
THE INCLUDED FUNCTION MUST BE CONSIDERED AS DEBUGING CODE The models included in the function have been taken from openly sources on the web so they could have some errors as in the calculation scheme and/or in it's programatic scheme. Debugging are welcome.
WHAT'S THIS?
Here's a full collection of candle based (compressed tick) Volatility Estimators given as a function, openly available for free, it can print IMPLIED VOLATILITY by an external symbol ticker like INDEX:VIX.
Models included in the volatility calculation function:
CLOSE TO CLOSE: This is the classic estimator by rule, sometimes referred as HISTORICAL VOLATILITY and is the must common, accepted and widely used out there. Is based on traditional Standard Deviation method derived from the logarithm return of current close from yesterday's.
ELASTIC WEIGHTED MOVING AVERAGE: This estimator has been used by RiskMetriks®. It's calculation is based on an ElasticWeightedMovingAverage Standard Deviation method derived from the logarithm return of current close from yesterday's. It can be viewed or named as an EXPONENTIAL HISTORICAL VOLATILITY model.
PARKINSON'S: The Parkinson number, or High Low Range Volatility, developed by the physicist, Michael Parkinson, in 1980 aims to estimate the Volatility of returns for a random walk using the high and low in any particular period. IVolatility.com calculates daily Parkinson values. Prices are observed on a fixed time interval. n=10, 20, 30, 60, 90, 120, 150, 180 days.
ROGERS-SATCHELL: The Rogers-Satchell function is a volatility estimator that outperforms other estimators when the underlying follows a Geometric Brownian Motion (GBM) with a drift (historical data mean returns different from zero). As a result, it provides a better volatility estimation when the underlying is trending. However, this Rogers-Satchell estimator does not account for jumps in price (Gaps). It assumes no opening jump. The function uses the open, close, high, and low price series in its calculation and it has only one parameter, which is the period to use to estimate the volatility.
YANG-ZHANG: Yang and Zhang were the first to derive an historical volatility estimator that has a minimum estimation error, is independent of the drift, and independent of opening gaps. This estimator is maximally 14 times more efficient than the close-to-close estimator.
LOGARITHMIC GARMAN-KLASS: The former is a pinescript transcript of the model defined as in iVolatility . The metric used is a combination of the overnight, high/low and open/close range. Such a volatility metric is a more efficient measure of the degree of volatility during a given day. This metric is always positive.
Volatility Momentum Score | Lyro RSVolatility Momentum Score | Lyro RS
Overview
The Volatility Momentum Score (VMS) combines price movement and volatility into a single, easy-to-read signal. Using z-scores, standard deviation bands, and flexible display modes, it helps traders identify trends, overbought/oversold conditions, and potential reversals quickly and effectively.
Key Features
Price + Volatility Blend
Tracks price action and volatility with separate z-scores and merges them into a unified momentum score.
Standard Deviation Bands
Upper and lower bands highlight extreme readings.
Adjustable multipliers allow for fine-tuning sensitivity.
Two Signal Modes
Trend Mode: Plots “Long” and “Short” signals when momentum crosses bands.
Reversion Mode: Colors the chart background when the score indicates stretched conditions.
Overbought & Oversold Alerts
▲ markers indicate oversold conditions.
▼ markers indicate overbought conditions.
Custom Colors
Four preset color themes or fully customizable bullish/bearish colors.
Clear Visuals
Dynamic line coloring based on momentum.
Candles recolored at signal points.
Background shading for quick visual assessment.
How It Works
Calculates z-scores for both price and volatility.
Blends the z-scores into a single average score.
Compares the score against dynamic upper and lower bands.
Triggers signals, markers, or background shading depending on the chosen display mode.
Practical Use
Ride trends: Follow Trend Mode signals to align with momentum.
Spot reversals: Watch ▲ and ▼ markers when markets are overextended.
Stay aware: Background shading highlights potentially overheated conditions.
Customization
Set lookback lengths for price, volatility, and bands.
Adjust band multipliers for more or less sensitive signals.
Choose between Trend or Reversion mode based on trading style.
Select color themes or create custom palettes.
⚠️ Disclaimer
This indicator is a technical analysis tool and does not guarantee results. It should be used alongside other methods and proper risk management. The creators are not responsible for any financial decisions based on its signals.
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.
volatility-weighted price change divergenceEMA of intrabar-volatility-weighted price change minus EMA of price change. It puts more weights on candles that have large volatility inside, and assumes that the direction of those high-volatility candles are more meaningful than low-volatility ones. Therefore, we take the difference between the volatility-weighted price change and the regular price change and plot the EMA. The indicator may be used as a tool to find divergence and potential reversal, or hints of continuation of a strong trend. Note that this indicator can change a lot with different time frames and settings, so take care to backtest before using. Recommended settings are 15m resolution for time frames longer than 4H and 1m resolution (with 200 EMA length) for time frames below 4H. The resolution is used to find the intrabar volatility.
DEMA/EMA & VOLATILITY (VAMS)The biggest issue with momentum following strategies is over signaling during whipsaw periods. I created this strategy that measure momentum with DEMA (Fast Moving) and EMA (Slow moving). In order to mitigate over signaling during whipsaw periods I implemented the average true range percentage (ATRP) to measure realized volatility. If momentum is picking up while volatility is under a certain threshold it purchases the security. If momentum slows while volatility picks up it sells the security. Additionally, if momentum picks up, but volatility is high, it stays out of the security. This follows the theory that during sustained uptrends volatility will decrease, and during market corrections the volatility picks up. Following the old adage that markets climb up the stairs, and fall out the window. Note that this strategy does repaint due to it entering and closing positions at the close of the bars. I forgot to mention how volatility is measured high vs low. If the ATRP is above the EMA of the ATRP the strategy interprets the volatility is increasing and does not enter the security & Vice Versa for selling (with momentum signal of MAs)
This is just my first strategy, any feedback would be much appreciated.
Historical Volatility Percentile: Price and VolumeThis is an expansion of the Historical Volatility scripts to include both price and volume volatility.
As Tradingview states :
Historical Volatility is a measure of how much price (and now volume ) deviates from its average in a specific time period that can be set. The more price (or/and volume ) fluctuates, the higher the indicator value. Please note it does not measure the direction of price (and volume ) changes, just how volatile price/ volume has become. There are several reasons to care about volatility but it's mainly a risk measure. As volatility increases, so does risk and uncertainty and vice versa. Traders can use the indicator to flag instruments with high volatility which could point to a trend change. It is often used in combination with other signals.
Example options
Example formats
Link back to some other great ideas:
@Cheatcountry with his prolific sharing , what a great inspiration.
@Picte and his inspired idea .
@Balipour and his great script
Comparing this to other significant HVP indicators
Realized VolatilityRealized / Historical Volatility
Calculates historical, i.e. realized volatility of any underlying. If frequency is not the daily, but for example 6h, 30min, weeks or months, it scales the initial setting to be suitable for the different time frame.
Examples with default settings (30 day volatility, 365 days per year):
A) Frequency = Daily:
Returns 30 day historical volatility, under the assumption that there are 365 trading days in a year.
B) Frequency = 6h:
Still returns 30 day historical volatility, under the assumption that there are 365 trading days in a year. However, since 6h granularity fits 4 times in 24 hours, it rescales the look back period to rather 30*4 = 120 units to still reflect 30 day historical volatility.
Closed Form Distance VolatilityIntroduction
Calculating distances in signal processing/statistics/time-series analysis imply measuring the distance between two probability distribution, i am not really familiar with distances but since some formulas are in closed form they can be easily used for volatility estimation. This volatility indicator will use three methods originally made to measure the distance of gaussian copulas, using those methods for volatility estimation is fairly easy and provide a different approach to statistical dispersion.
The indicator have a length parameter and a method parameter to select the method used for volatility estimation, i describe each methods below.
Hellinger Method
Each method will use the rolling sum of the low price and the rolling sum of the high price instead of probability distributions. The Hellinger method have many application from the measurement of distances to the use as a cost function for neural networks.
Its closed form is defined as the square root of 1 - a^0.25b^0.25/(0.5a + 0.5b)^0.5 where a and b are both positive series. In our indicator a is the rolling sum of the high price and b the rolling sum of the low price. This method give a classic estimation of volatility.
Bhattacharyya Method
The Bhattacharyya method is another method who use a natural logarithm, this method can visually filter small volatility variation. It is defined as 0.5 * log((0.5a+0.5b)/√(ab)) .
Wasserstein Method
This method was originally using a trimmed mean for its calculation. The original method is defined as the square of the trimmed mean of a + b - 2√(a^0.5ba^0.5) , a median has been used instead of a trimmed mean for efficiency sake, both central tendency estimators are robust to outliers.
Conclusion
I showed that closed form formulas for distance calculation could be derived into volatility estimators with different properties. They could be used with series in a range of (0,1) to provide a smoothing variable for exponential smoothing.
Rogers & Satchell Volatility EstimationFirst off, a huge thank you to the following people:
theheirophant: www.tradingview.com
alexgrover: www.tradingview.com
NGBaltic: www.tradingview.com
The Rogers & Satchell function is a volatility estimator that outperforms other estimators when the underlying follows a geometric Brownian motion with a drift (historical data mean returns different from zero). As a result, it provides a better volatility estimation when the underlying is trending. However, the Rogers & Satchell estimator does not account for jumps in price (gaps). It assumes no opening jump. The function uses the open, close, high, and low price series in its calculation and it has only one parameter, which is the period to use to estimate the volatility.
This script allows you to transform the volatility reading. The intention of this is to be able to compare volatility across different assets and timeframes. Having a relative reading of volatility also allows you to better gauge volatility within the context of current market conditions.
For the signal lie I chose a repulsion moving average to remove choppy crossovers of the estimator and the signal. This may have been a mistake, so in the near-future I might update so that the MA can be selected. Let me know if you have any opinions either way.
Want to Learn?
If you'd like the opportunity to learn Pine but you have difficulty finding resources to guide you, take a look at this rudimentary list: docs.google.com
The list will be updated in the future as more people share the resources that have helped, or continue to help, them. Follow me on Twitter to keep up-to-date with the growing list of resources.
Suggestions or Questions?
Don't even kinda hesitate to forward them to me. My (metaphorical) door is always open.
Up Down VolatilityThis is just experimental. I wanted the flexibility in looking at volatility and this indicator gives you several ways to do so.
I haven't figured out the best way to use this yet but I suspect that as a form of entry confirmation indicator would be best.
If you find a way this works well for you please drop me a note. It would nice know someone found a way to use it successfully!
The options available are:
* Your source can be price or the ATR.
* It allows you to separate the volatility of the bearish and bullish candles and even allows you to produce differential.
* You can choose to run the result through any one of many smoothers.
With the above options you can look at:
* The normal volatility. That is not split into bearish and bullish components.
* The bearish and bullish volatility and the difference between them.
* The relative bearish and bullish volatility and the difference between them.
The "The relative bearish and bullish" is each one divided into the source before it was split into Up and Down or low/high divided by close which should make the max value roughly around 1.
The code is structured to easily drop into a bigger system so use it as a lone indicator or add the code to some bigger project you are creating. If you do integrate it into something else then send me a note as it would be nice to know it's being well used.
Enjoy and good luck!
Historical Volatility Percentile FilterThis indicator provides a simple market regime filter for Historical Volatility. Depending on the strategy that you are using, it is useful to know how your strategy will perform at different
ranges of volatility, as this can greatly impact your performance. For instance, some of my long-only mean reversion strategies will only take trades where the volatility percentile is not extremely high, as this can often indicate fundamental changes in the security or the start of a big market correction. Some strategies may work better when volatility is higher
Feel free to use the following code along with your strategies to help improve performance and reduce the volatility of your gains in the long term.
Historical Volatility Percentile + SMAHistorical Volatility Percentile tells you the percentage of the days from the past year (252 trading days) that have lower volatility than the current volatility.
I included a simple moving average as a signal line to show you how volatile the stock is at the moment.
I have included simple colors to let you know when to enter or exit a position.
Buy when price higher than EMA & historical volatility higher than SMA
Sell when price lower than EMA & historical volatility higher than SMA
Please let me know if you would like me to publish any other indicators! I always love to hear from you guys.
Scott’s volatility histogramATR shows volatility. SMA of ATR measures the average volatility over a chosen look-back period (default 200).
Divergence of ATR and sma is represented as a histogram.
Low periods of volatility are below the zero line. High periods of volatility are above the zero line.
Average volatility over a 200 period look-back is the zero value.






















