OPEN-SOURCE SCRIPT

As a longtime fan of ADX, looking at Vortex Indicator I often wondered, where is the third line. I have rarely seen that anybody is calculating it. So, here it is: Average Vortex Index - an ADX calculated from Vortex Indicator. I interpret it similarly to the ADX indicator: higher values show stronger trend. If you discover other interpretation or have suggestions, comments are welcome.

Both VI+ and VI- lines are also drawn. As I use adaptive length calculation in my other scripts (based on the libraries I've developed and published), I have also included the possibility to have an adaptive length here, so if you hate the idea of calculating ADX from VI, you can disable that line and just look at the adaptive Vortex Indicator.

Note that as with all my oscillators, all the lines here are renormalized to -1..1 range unlike the original Vortex Indicator computation. To do that for VI+ and VI- lines, I subtract 1 from their values. It does not change the shape or the amplitude of the lines.

Adaptation algorithms are roughly subdivided in two categories: classic Length Adaptations and Cycle Estimators (they are also implemented in separate libraries), all are selected in*Adaptation* dropdown. Length Adaptation used in the Adaptive Moving Averages and the Adaptive Oscillators try to follow price movements and accelerate/decelerate accordingly (usually quite rapidly with a huge range). Cycle Estimators, on the other hand, try to measure the cycle period of the current market, which does not reflect price movement or the rate of change (the rate of change may also differ depending on the cycle phase, but the cycle period itself usually changes slowly).

Length Adaptation usually take two parameters:*Bound From* (lower bound) and *To* (upper bound). These are the limits for Adaptation values. Note that the Cycle Estimators marked with asterisks(*) are very computationally intensive, so the bounds should not be set much higher than 50, otherwise you may receive a timeout error (also, it does not seem to be a useful thing to do, but you may correct me if I'm wrong).

The Cycle Estimators marked with asterisks(*) also have 3 checkboxes:*HP* (Highpass Filter), *SS* (Super Smoother) and *HW* (Hann Window). These enable or disable their internal prefilters, which are recommended by their author - John F. Ehlers . I do not know, which combination works best, so you can experiment.

If no*Adaptation* is selected (*None* option), you can set *Length* directly. If an Adaptation is selected, then *Cycle* multiplier can be set.

The oscillator also has the option to configure the internal smoothing function with*Window* setting. By default, RMA is used (like in ADX calculation). *Fast Default* option is using half the length for smoothing. *Triangle*, *Hamming* and *Hann* Window algorithms are some better smoothers suggested by John F. Ehlers.

After the oscillator a Moving Average can be applied. The following Moving Averages are included: SMA , RMA, EMA , HMA , VWMA , 2-pole Super Smoother, 3-pole Super Smoother, Filt11, Triangle Window, Hamming Window, Hann Window, Lowpass, DSSS.

*Postfilter* options are applied last:

Except for Inverse Fisher Transform , all*Postfilter* algorithms can have *Length* parameter. If it is not specified (set to 0), then the calculated Slow MA Length is used. If *Filter/MA* *Length* is less than 2 or *Postfilter* *Length* is less than 1, they are calculated as a multiplier of the calculated oscillator length.

More information on the algorithms is given in the code for the libraries used. I am also very grateful to other TradingView community members (they are also mentioned in the library code) without whom this script would not have been possible.

Both VI+ and VI- lines are also drawn. As I use adaptive length calculation in my other scripts (based on the libraries I've developed and published), I have also included the possibility to have an adaptive length here, so if you hate the idea of calculating ADX from VI, you can disable that line and just look at the adaptive Vortex Indicator.

Note that as with all my oscillators, all the lines here are renormalized to -1..1 range unlike the original Vortex Indicator computation. To do that for VI+ and VI- lines, I subtract 1 from their values. It does not change the shape or the amplitude of the lines.

Adaptation algorithms are roughly subdivided in two categories: classic Length Adaptations and Cycle Estimators (they are also implemented in separate libraries), all are selected in

**VIDYA**- based on VIDYA algorithm. The period oscillates from the Lower Bound up (slow)**VIDYA-RS**- based on Vitali Apirine's modification of VIDYA algorithm (he calls it Relative Strength Moving Average). The period oscillates from the Upper Bound down (fast)**Kaufman Efficiency Scaling**- based on Efficiency Ratio calculation originally used in KAMA**Fractal Adaptation**- based on FRAMA by John F. Ehlers**MESA MAMA Cycle**- based on MESA Adaptive Moving Average by John F. Ehlers**Pearson Autocorrelation***- based on Pearson Autocorrelation Periodogram by John F. Ehlers**DFT Cycle***- based on Discrete Fourier Transform Spectrum estimator by John F. Ehlers**Phase Accumulation***- based on Dominant Cycle from Phase Accumulation by John F. Ehlers

Length Adaptation usually take two parameters:

The Cycle Estimators marked with asterisks(*) also have 3 checkboxes:

If no

The oscillator also has the option to configure the internal smoothing function with

After the oscillator a Moving Average can be applied. The following Moving Averages are included: SMA , RMA, EMA , HMA , VWMA , 2-pole Super Smoother, 3-pole Super Smoother, Filt11, Triangle Window, Hamming Window, Hann Window, Lowpass, DSSS.

**Stochastic**- Stochastic**Super Smooth Stochastic**- Super Smooth Stochastic (part of MESA Stochastic ) by John F. Ehlers**Inverse Fisher Transform**- Inverse Fisher Transform**Noise Elimination Technology**- a simplified Kendall correlation algorithm "Noise Elimination Technology" by John F. Ehlers**Momentum**- momentum (derivative)

Except for Inverse Fisher Transform , all

More information on the algorithms is given in the code for the libraries used. I am also very grateful to other TradingView community members (they are also mentioned in the library code) without whom this script would not have been possible.

在真正的TradingView精神中，這個腳本的作者以開源的方式發佈，這樣交易員可以理解和驗證它。請向作者致敬！您可以免費使用它，但在出版物中再次使用這段程式碼將受到網站規則的約束。 您可以收藏它以在圖表上使用。

Tips in TradingView Coins are appreciated

這些資訊和出版物並不意味著也不構成TradingView提供或認可的金融、投資、交易或其他類型的意見或建議。請在使用條款閱讀更多資訊。