Indicator Kalman Filter. It allows efficiently smoothing the noise, extracting the main trend from it.
Kalman Filter is a variety of recursive filters. To assess the system status as of the current operation tact, it needs a status assessment (as the system status assessment and the error assessment of defining this status) at the preceding operation tact, and measuring at the current tact. This property distinguishes it from packet filters requiring to know at the current operation tact the history of measurements and/or assessments.
More about Kalman Filter.
The indicator has three input parameters:
- K – Kalman factor;
- Sharpness – factor for calculating the error minimization;
- Applied price – price used for calculations.
Calculations:
Kalman[i] = Error + Velocity[i]
where:
Error = Kalman[i-1] + Distance * ShK
Velocity[i] = Velocity[i-1] + Distance * K / 100
Distance = Price[i] - Kalman[i-1]
ShK = sqrt(Sharpness * K / 100)
Code:
//@version=5
indicator(‘Kalman Filter [Loxx]’, overlay = true, shorttitle=”KF [Loxx]”, timeframe=””, timeframe_gaps=true)
src = input(ohlc4)
Sharpness = input.float(1.0)
K = input.float(1.0)
greencolor = color.lime
redcolor = color.red
velocity = 0.0
kfilt = 0.0
Distance = src – nz(kfilt[1], src)
Error = nz(kfilt[1], src) + Distance * math.sqrt(Sharpness*K/ 100)
velocity := nz(velocity[1], 0) + Distance*K / 100
kfilt := Error + velocity
plot(kfilt, color=velocity > 0 ? greencolor : redcolor, linewidth = 2)
Screenshot:
[attachment file=”196842″]
Code is attached. Thank you
You can find 3 versions of the Kalman Filter in the code attached to this topic (huge indicator with 67 different type of moving averages):
Indicateur AFR – Average Filter Regression