ChartPrime

Kalman Volume Filter [ChartPrime]

The "Kalman Volume Filter", aims to provide insights into market volume dynamics by filtering out noise and identifying potential overbought or oversold conditions. Let's break down its components and functionality:

Settings:
  • Users can adjust various parameters to customize the indicator according to their preferences:
  • Volume Length: Defines the length of the volume period used in calculations.
  • Stabilization Coefficient (k): Determines the level of noise reduction in the signals.
  • Signal Line Length: Sets the length of the signal line used for identifying trends.
  • Overbought & Oversold Zone Level: Specifies the threshold levels for identifying overbought and oversold conditions.
  • Source: Allows users to select the price source for volume calculations.

Volume Zone Oscillator (VZO):
  • Calculates a volume-based oscillator indicating the direction and intensity of volume movements.
  • Utilizes a volume direction measurement over a specified period to compute the oscillator value.
  • Normalizes the oscillator value to improve comparability across different securities or timeframes.
// VOLUME ZONE OSCILLATOR
VZO(get_src, length) =>
    Volume_Direction    = get_src > get_src[2] ? volume : -volume
    VZO_volume          = ta.hma(Volume_Direction, length)
    Total_volume        = ta.hma(volume, length)
    VZO  = VZO_volume / (Total_volume)
    VZO := (VZO - 0) / ta.stdev(VZO, 200)
    VZO

Kalman Filter:
  • Applies a Kalman filter to smooth out the VZO values and reduce noise.
  • Utilizes a stabilization coefficient (k) to control the degree of smoothing.
  • Generates a filtered output representing the underlying volume trend.
// KALMAN FILTER
series float M_n     = 0.0                           //   - the resulting value of the current calculation
series float A_n     = VZO                       //   - the initial value of the current measurement
series float M_n_1   = nz(M_n[1])            //   - the resulting value of the previous calculation
float k              = input.float(0.06)  //  - stabilization coefficient

// Kalman Filter Formula
kalm(k)=>
    k * A_n + (1 - k) * M_n_1

Volume Visualization:
  • Displays the volume histogram, with color intensity indicating the strength of volume movements.
  • Adjusts bar colors based on volume bursts to highlight significant changes in volume.

Overbought and Oversold Zones:
Marks overbought and oversold levels on the chart to assist in identifying potential reversal points.

Plotting:
  • Plots the Kalman Volume Filter line and a signal line for visual analysis.
  • Utilizes different colors and fills to distinguish between rising and falling trends.
  • Highlights specific events such as local buy or sell signals, as well as overbought or oversold conditions.

This indicator provides traders with a comprehensive view of volume dynamics, trend direction, and potential market turning points, aiding in informed decision-making during trading activities.

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?