John Ehlers describes what he calls the nonlinear Kalman filter in the following way :
- Take EMA of price (better, a 3 Pole filter).
- Take the difference (delta) between Price and its EMA.
- Take an EMA of delta (or a 3 Pole filter):
- Smoothing will help reduce whipsaws.
- Ideally, smoothing introduces no major trend mode lag because delta is detrended.
- Add the smoothed delta to EMA for a zero lag curve.
- Add 2*(smoothed delta) to EMA for a smoother predictive line.
In order to add signals other than simple slope direction change, in this version you can chose 3 types of color changes :
You can use the color changes as signals
This is a working singleton code example. The sole purpose of this post is to provide a working code sample of a singleton object. A singleton object is created when there 'can be only one' of the object. This is accomplished by making an object's constructor private, and ensuring assignment and copy operations are also private. I was working on an EA and identified that an object should never have more than one copy. I don't expect the EA to ever get large enough for it to actually matter that a singleton is used, but I like the clarity in the code for the object's type. The code follows closely the tutorial at http://www.yolinux.com/TUTORIALS/C++Singleton.html.Averages crosses
Zero mean normalized nonlinear Kalman filterZero mean normalized nonlinear Kalman filter - with floating levels
Zero mean normalized nonlinear Kalman filter - with floating levels