JohnBaron

Volume, Momentum and Volatility weighted moving average

JohnBaron Updated   
Moving averages are filters on price data. This moving average creates a filter which factors in:
- the price RSI or it's Momentum
- the volume RSI
- the RVI or Volatility

Each factor is put through a least squares filter to smooth them first.

Then the factors are used to build a coefficient for an exponentially weighted average.

The chart above shows a comparison of standard average types with this script.

This is useful if you are looking for a moving average based trigger and do not wish to react to candle noise price action.

Release Notes:
Minor updates
- reverted to traditional RVI calculation
- pulled apart the momentum for high and low separately
Release Notes:
- Some important revisions - feel free to alter the source

- Addressed some initialization conditions
- Added another filter using normalized ratios for relative value filter
- Changed RSI to CMO, CMO is more responsive than RSI and reduces lag
- Added one of my favorite moving average, the Vidya MA

I think it's important to use this moving average with another average or even a supertrend, where the input to the trend is the VMV average. Perhaps a later modification.

I hope you enjoy how these two MA's work together.
Release Notes:
Quick fix of scaling issue, CMO ranges -100 to 100, RVI ranges 0 to 100 . All factors now produce a range of 0 to 100.
Release Notes:
_ Allow the script to run in a time frame different from the chart
_ Produce a dynamic length based on stochastic oscillator
_ Vidya_ma now runs on dynamic length
_ two more of my favorite ma's are included - parameter-less price and vwap
Release Notes:
  • Removed dynamic length selections
  • Addressed more initialization problems, if you use a recursive formula it's important the first 100 bars in a data set are not NA and are reasonable values, so need to fix some borrowed pine
  • Switched from using stochastic to pick up on trend to using two different inputs, tema and parameterless ma - averaging their best fit length
  • Dynamic length applied to the Vidya ma only
Release Notes:
  • added gap fill if used in a higher time frame than the chart
  • removed the least squares method and replaced with simple ema for speed of execution, the outcomes are close enough so it doesn't warrant the tax on execution speed
  • smoothed over a fixed length and not variable
Release Notes:
Updated to V5 Pine
- streamlined and simplified a few averages to speed up processing speed
- dynamic length calculations are done now in one loop vs 2
- removed normalization for Vidya and VMV

The script still generates warnings on compilation, but there is no easy way around them.
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?