AutomatedTradingAlgorithms

Wavelet & Fourier Smoothed Volume zone oscillator (W&)FSVZO

Indicator id:
USER;e7a774913c1242c3b1354334a8ea0f3c
(only relevant to those that use API requests)


MEANINGFUL DESCRIPTION:

The Volume Zone oscillator breaks up volume activity into positive and negative categories. It is positive when the current closing price is greater than the prior closing price and negative when it's lower than the prior closing price. The resulting curve plots through relative percentage levels that yield a series of buy and sell signals, depending on level and indicator direction.

The Wavelet & Fourier Smoothed Volume Zone Oscillator (W&)FSVZO is a refined version of the Volume Zone Oscillator, enhanced by the implementation of the Discrete Fourier Transform. Its primary function is to streamline price data and diminish market noise, thus offering a clearer and more precise reflection of price trends.

By combining the Wavalet and Fourier aproximation with Ehler's white noise histogram, users gain a comprehensive perspective on volume-related market conditions.

HOW TO USE THE INDICATOR:
The default period is 2 but can be adjusted after backtesting. (I suggest 5 VZO length and NoiceR max length 8 as-well)

The VZO points to a positive trend when it is rising above the 0% level, and a negative trend when it is falling below the 0% level. 0% level can be adjusted in setting by adjusting VzoDifference. Oscillations rising below 0% level or falling above 0% level result in natural trend.

ORIGINALITY & USFULLNESS:

Personal combination of Fourier and Wavalet aproximation of a price which results in less noise Volume Zone Oscillator.

The Wavelet Transform is a powerful mathematical tool for signal analysis, particularly effective in analyzing signals with varying frequency or non-stationary characteristics. It dissects a signal into wavelets, small waves with varying frequency and limited duration, providing a multi-resolution analysis. This approach captures both frequency and location information, making it especially useful for detecting changes or anomalies in complex signals.

The Discrete Fourier Transform (DFT) is a mathematical technique that transforms discrete data from the time domain into its corresponding representation in the frequency domain. This process involves breaking down a signal into its individual frequency components, thereby exposing the amplitude and phase characteristics inherent in each frequency element.

This indicator utilizes the concept of Ehler's Universal Oscillator and displays a histogram, offering critical insights into the prevailing levels of market noise. The Ehler's Universal Oscillator is grounded in a statistical model that captures the erratic and unpredictable nature of market movements. Through the application of this principle, the histogram aids traders in pinpointing times when market volatility is either rising or subsiding.


DETAILED DESCRIPTION:

My detailed description of the indicator and use cases which I find very valuable.

What is oscillator?

Oscillators are chart indicators that can assist a trader in determining overbought or oversold conditions in ranging (non-trending) markets.

What is volume zone oscillator?

Price Zone Oscillator measures if the most recent closing price is above or below the preceding closing price.

Volume Zone Oscillator is Volume multiplied by the 1 or -1 depending on the difference of the preceding 2 close prices and smoothed with Exponential moving Average.


What does this mean?

If the VZO is above 0 and VZO is rising. We have a bullish trend. Most likely.
If the VZO is below 0 and VZO is falling. We have a bearish trend. Most likely.

Rising means that VZO on close is higher than the previous day.
Falling means that VZO on close is lower than the previous day.

What if VZO is falling above 0 line?

It means we have a high probability of a bearish trend.

Thus the indicator returns 0 when falling above 0 (or rising bellow 0) and we combine higher and lower timeframes to gauge the trend.

In the next Image you can see that trend is positive on 4h, neutral on 12h and positive on 1D. That means trend is positive.

I am sorry, the chart is a bit messy. The idea is to use the indicator over more than 1 Timeframe.

What is approximation and smoothing?

They are mathematical concepts for making a discrete set of numbers a
continuous curved line.

Fourier and Wavelet approximation of a close price are taken from aprox library.


Key Features:

You can tailor the indicator to your preferences with adjustable parameters such as VZO length, noise reduction settings, and smoothing length.

Volume Zone Oscillator (VZO) shows market sentiment with the VZO, enhanced with Exponential Moving Average (EMA) smoothing for clearer trend identification.

Noise Reduction leverages Euler's White noise capabilities for effective noise reduction in the VZO, providing a cleaner and more accurate representation of market dynamics.

Choose between the traditional Fast Fourier Transform (FFT), the innovative Double Discrete Fourier Transform (DTF32) and Wavelet soothed Fourier soothed price series to suit your analytical needs.

Image of Wavelet transform with FAST settings, Double Fourier transform with FAST settings. Improved noice reduction with SLOW settings, and standard FSVZO with SLOW settings:

Fast setting are setting by default:
VZO length = 2
NoiceR max Length = 2

Slow settings are:
VZO length = 5 or 7
NoiceR max Length = 8

As you can see fast setting are more volatile. I suggest averaging fast setting on 4h 12h 1d 2d 3d 4d W and M Timeframe to get a clear view on market trend.

What if I want long only when VZO is rising and above 15 not 0?

You have set Setting VzoDifference to 15. That reduces the number of trend changes.

Example of W&FSVZO with VzoDifference 15 than 0:

VZO crossed 0 line but not 15 line and that's why Indicator returns 0 in one case an 1 in another.

What is Smooth length setting?

A way of calculating Bullish or Bearish FSVZO.

If smooth length is 2 the trend is rising if:
 rising = VZO > ta.ema(VZO, 2) 
Meaning that we check if VZO is higher that exponential average of the last 2 elements.

If smooth length is 1 the trend is rising if:
 rising = VZO_ > VZO_[1] 

Rising is boolean value, meaning TRUE if rising and FALSE if falling.

Mathematical equations presented in Pinescript:

Fourier of the real (x axis) discrete:
x_0 = array.get(x, 0) + array.get(x, 1) + array.get(x, 2)
x_1 = array.get(x, 0) + array.get(x, 1) * math.cos( -2 * math.pi * _dir / 3 ) - array.get(y, 1) * math.sin( -2 * math.pi * _dir / 3 )  + array.get(x, 2) * math.cos( -4 * math.pi * _dir / 3 ) - array.get(y, 2) * math.sin( -4 * math.pi * _dir / 3 )
x_2 = array.get(x, 0) + array.get(x, 1) * math.cos( -4 * math.pi * _dir / 3 ) - array.get(y, 1) * math.sin( -4 * math.pi * _dir / 3 )  + array.get(x, 2) * math.cos( -8 * math.pi * _dir / 3 ) - array.get(y, 2) * math.sin( -8 * math.pi * _dir / 3 )

Euler's Noice reduction with both close and Discrete Furrier approximated price.
w = (dft1*src - dft1[2]*src[2])   / math.sqrt(math.pow(math.abs(src- src[2]),2) + math.pow(math.abs(dft1[0]- dft1[2]),2))
filt := na(filt[1]) ? 0 : c1 * (w*dft1 + nz(w[1]*dft1[1])) / 2.0 /math.abs(dft1[1]-dft1[0]) + c2 * nz(filt[1]) - c3 * nz(filt[2])

Usecase:

First option:
Select the preferred version of DFT and noise reduction settings based on your analysis requirements.

Leverage the script to identify Bullish and Bearish trends, shown with green and red triangle.
Combine Different Timeframes to accurately determine market trend.

Second option:
Pull the data with API sockets to automate your trading journey.

plot(close, title="ClosePrice", display=display.status_line)
plot(open, title="OpenPrice", display=display.status_line)
plot(greencon ? 1 : redcon ? -1 : 0,  title="position", display=display.status_line)

Use ClosePrice, OpenPrice and "position" titles to easily read and backtest your strategy utilising more than 1 Time Frame.


Indicator id:
USER;e7a774913c1242c3b1354334a8ea0f3c
(only relevant to those that use API requests)

Skrip sumber terbuka

Dalam semangat TradingView yang sebenar, penulis skrip ini telah menerbitkannya dengan menggunakan sumber terbuka supaya pedagang-pedagang dapat memahami dan mengesahkannya. Sorakan kepada penulis! Anda dapat menggunakannya secara percuma tetapi penggunaan semula kod ini dalam penerbitan adalah dikawalselia oleh Peraturan Dalaman. Anda boleh menyukainya untuk menggunakannya pada carta.

Penafian

Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.

Ingin menggunakan skrip ini pada carta?