The oscillator is a feature scaling method commonly used in , this method is the same as the running min-max normalization method except that the oscillator is in a range of (0,100) while min-max normalization is in a range of (0,1). The oscillator in itself is efficient since it tell's us when the price reached its highest/lowest or crossed this average, however there could be ways to further develop the oscillator, this is why i propose this new indicator that aim to show all the information a classical oscillator would give with some additional features.
The min-max normalization of the price is calculated as follow : (price - min)/(max - min), this calculation is efficient but there is alternates forms such as :
price - (max - min) - min/(max - min)
This alternate form is the one i chosen to make the indicator except that both range (max - min) are smoothed with a , there are also additional modifications that you can see on the code.
The indicator return two main lines, in blue the bull line who show the buying force and in red the bear line who show the selling force.
An orange line show the signal line who represent the moving average of the max(bull,bear), this line aim to show possible exit/reversals points for the current trend.
Length control the highest/lowest period as well as the smoothing amount, signal length control the moving average period of the signal line, the pre-filtering setting indicate which smoothing method will be used to smooth the input source before applying normalization.
The default pre-filtering method is the .
The method is slightly faster as you can see above.
The triangular moving average is the moving average of another moving average, the impulse response of this filter is a triangular function hence its name. This moving average is really smooth.
The or is the fastest moving average used in this indicator, this filter try to best fit a linear function to the data in a certain window by using the least squares method.
No filtering will use the source price without prior smoothing for the indicator calculation.
Relationship With The Oscillator
The crosses between the bull and bear line mean that the oscillator crossed the 50 level. When the Bull line is equal to 0 this mean that the oscillator is equal to 0 while a bear line equal to 0 mean a oscillator equal to 100.
The indicator and below a oscillator of both period 100
Unlike a oscillator who would clip at the 0 and 100 level the proposed indicator is not heavily constrained in a range like the oscillator, this mean that you can apply levels to trigger signals
Possible levels could be 1,2,3... even if the indicator rarely go over 3.
Its then possible to create strategies using such levels as support or resistance one.
I've showed a modified oscillator who aim to show additional information to the user while keeping all the information a classical oscillator would give. The proposed indicator is no longer constrained in an hard range and posses more liberty to exploit its scale which in return allow to create strategies based on levels.
For pinescript users what you can learn from this is that alternates forms of specific formulas can be extremely interesting to modify, changes can be really surprising so if you are feeling stuck, modifying alternates forms of know indicators can give great results, use tools such as sympy gamma to get alternates forms of formulas.
Thanks for reading !
If you are looking for something or just want to say thanks try to pm me :)