Retention-Acceleration FilterAnother Adaptive Filter
This indicator share the same structure as a classic adaptive filter using an exponential window with a smoothing constant.
However the smoothing constant used is different than any previously made (Kalman Gain, Efficiency ratio, Scaled Fractal Dimension Index) ,
here the smoothing constant is inspired by the different formulations for parameters resolution used in HPLC S. Said (J. High Resolution Chromatograpy &Chromatography Communciations, (1979) 193).
Different assumptions can be made which lead to different expressions for resolution in chromatographic parameters, therefore we will use highest's and lowest's in order to estimate an optimal smoothing constant based on if the market is trending or not. It can be complicated at first but the goal is to provide both smoothness at the right time and a fast estimation of the market center.
Handling Noise
In Red a Pure Sinewave. In White Sinewave + Noise. In Blue our filter of Period 3
Handling stationary signals is not the best thing to do since we need highest's and lowest's and for that non stationary signals with trend + cycle + noise are more suitable.
It is also possible to make it act faster by quiting the pow() function of AltK with sqrt(length) and smoothing the remaining constant.
Smooth
Smoothed RSIThis is a sample script I coded during one of my mentoring videos about my methodology, the goal of that video is to teach my students how they can do their R&D !
Efficient PriceTrading The Movements That Matters
Inspired by the Price Volume Trend indicator the Efficient Price aim to create a better version of the price containing only the information a trend trader must need.
Calculation
This indicator use the Efficiency Ratio as a smoothing constant, it is calculated as follow :
ER = abs(change(close,length))/sum(abs(change(close)),length)
The goal of the Efficiency Ratio is to show if the market is trending or ranging.If ER is high then the market is considered to be trending, if ER is low then the market is considered to be ranging.
Then the Efficient Price is calculated :
EP = cum(change(close)*ER)
When the price is trending, the indicator will show movements of the price with unchanged volatility, but if the price is not trending then the indicator will flatten those movements.Think of this indicator as both a filter and a compressor and the Efficient Price as some kind of threshold.
The Efficient Price As Input For Indicators/Strategies
If the indicator show the movement of the trending price, it can be interesting to use it as input in order to reduce the number of false signals in a strategy.
We will test 2 MACD strategy provided by tradingview, one using the closing price (In Red) and one with the efficient price (In White) as input
with both the following parameters :
fastLength = 50
slowlength = 200
MACDLength = 20
length = 50
Where length is the parameter of the Efficient Price.A spread of 2 pips is used.
Without Efficient Price : 26.88% of profitability, 69 pips of profit.
With Efficient Price : 38.46% of profitability, 336 pips of profit.
The difference of profitability is of 11.58%, the strategy with the Efficient Price made few trades and its equity have a lower variance than the equity of the MACD strategy using closing price.
Smoothed Version
It is possible to smooth the indicator output by using the following code :
EP = cum(change(close,length)*ER)
Hope you enjoy
For any questions/demands feel free to pm me, i would be happy to help you
Recursive StochasticThe Self Referencing Stochastic Oscillator
The stochastic oscillator bring values in range of (0,100). This process is called Feature scaling or Unity-Based Normalization
When a function use recursion you can highlights cycles or create smoother results depending on various factors, this is the goal of a recursive stochastic.
For example : k = s(alpha*st+(1-alpha)*nz(k )) where st is the target source.
Using inputs with different scale level can modify the result of the indicator depending on which instrument it is applied, therefore the input must be normalized, here the price is first passed through a stochastic, then this result is used for the recursion.
In order to control the level of the recursion, weights are distributed using the alpha parameter. This parameter is in a range of (0,1), if alpha = 1, then the indicator act as a normal stochastic oscillator, if alpha = 0, then the indicator return na since the initial value for k = 0. The smaller the alpha parameter, the lower the correlation between the price and the indicator, but the indicator will look more periodic.
Comparison
Recursive Stochastic oscillator with alpha = 0.1 and bellow a classic oscillator (alpha = 1)
The use of recursion can both smooth the result and make it more reactive as well.
Filter As Source
It is possible to stabilize the indicator and make it less affected by outliers using a filter as input.
Lower alpha can be used in order to recover some reactivity, this will also lead to more periodic results (which are not inevitably correlated with price)
Hope you enjoy
For any questions/demands feel free to pm me, i would be happy to help you
Karobein OscillatorDeveloped by Emily Karobein, the Karobein oscillator is an oscillator that aim to rescale smoothed values with more reactivity in a range of (0,1)
Calculation
The scaling method is similar to the one used in a kalman filter for the kalman gain.
We first average the up/downs x, those calculations are similar to the ones used for calculating the average gain/loss in the relative strength index.
a = ema(src < src ? x : 0,length)
b = ema(src > src ? x : 0,length)
where src is a exponential moving average of length period and x is src/src in the standard calculations, but anything else can be used as long as x > 0 .
Then we rescale the results.
c = x/(x + b)
d = 2*(x/(x + c*a)) - 1
How To Use
It is better to use centerline-cross/breakouts/signal line.
In general when we use something smooth as input in oscillators, breakouts are better than reversals, you can see this with the stochastic and rsi.
So a simple approach could be buying when crossing over 0.8 and selling when crossing under 0.2.
Here is the balance of a strategy using those conditions, length = 50 .
20 trades have been mades since the 29 oct we made 341 pips with eur/usd, of course this backtest was made during good trends period,
this result is not representative of how the strategy work with other conditions/markets.
For any questions/suggestions feel free to contact me
One Dimensional Parametric Kalman FilterA One Dimensional Kalman Filter, the particularity of Kalman Filtering is the constant recalculation of the Error between the measurements and the estimate.This version is modified to allow more/less filtering using an alternative calculation of the error measurement.
Camparison of the Kalman filter Red with a moving average Black of both period 50
Can be used as source for others indicators such as stochastic/rsi/moving averages...etc
For any questions/suggestions feel free to contact me
Mean Reversion and Momentum - Updated with gaussiana smoothingMean Reversion and Momentum
Interpretation:
- Divergence means trend reversal
- Parallel movement means trend continuation
Squares above serve as a confirming signal
Quadratic RegressionA quadratic regression is the process of finding the equation that best fits a set of data.This form of regression is mainly used for smoothing data shaped like a parabola.
Because we can use short/midterm/longterm periods we can say that we use a Quadratic Least Squares Moving Average or a Moving Quadratic Regression.
Like the Linear Regression (LSMA) a Quadratic regression attempt to minimize the sum of squares (sum of the squared difference between a set of data and an estimator), this is why
those kinds of filters have low lag .
Here the difference between a Least Squared Moving Average ( green ) and a Quadratic Regression ( red ) of both period 500
Here it look like the Quadratic Regression have a best fit than the LSMA
Hamming Windowed Volume Weighted Moving AverageApplying a window to the filter weights provides sometimes extra control over the characteristics of the filter.In this script an hamming window is applied to the volume before being used as a weight.In general this process smooth the frequency response of a filter.
Lets compare the classic vwma with hamming windowed vwma
Something i noticed is that windowed filters depending on their period ( high ones in general ) tend to make less bad crosses with the price ( at least with the hamming window )
Here are some data regarding number of crosses with period 50 with the hamming vwma in orange and the classic vwma in purple
Feel free to use the hamming window when using weighted filter.
Retrospective Candlestick ChartWhen i was in Japan with some traders colleagues we talked about traditional charting tools from this country and how they changed the way we look at our charts today. Then suddenly one of the japanese traders i have met earlier said "Why not making another charting tool ? Smoother than Heikin-Ashi and including all the information a trader may need but easier to interpret".
So i had the idea of averaging the input and the output of the respective close / open / high and low price using a recursive exponential window functions, each values will be closer to their true value if they are volatile, if they are not then those values will look smoother, the length input represents the reactivity of the candles, high values represents smoother results but less reactive.The goal of those candles is to make all the information easier to interpret by a trader.
500 input length , the price look smoother, supports and resistances are easier to make.
The interpretation of highs and lows are important, the Retrospective Candlestick Chart save you time by showing only huge movements.
Logistic CorrelationLogistic Correlation is a correlation oscillator using a logistic function.
A Logistic Function is a Sigmoid Function who stabilize the variance of data.The logistic function have the same function as the inverse fisher transform but with an advantage over it, the k constant can control the steepness of the curve, lowers k's will preserve the original form of the data while highers one will transform it into a more square shaped form.
10 k
20 k
Double Exponential SmoothingSingle Exponential Smoothing ( ema ) does not excel in following the data when there is a trend. This situation can be improved by the introduction of a second equation with a second constant gamma .
The gamma constant cant be lower than 0 and cant be greater than 1, higher values of gamma create less lag while preserving smoothness.Higher values of length must be followed by higher values of gamma in order to keep the lag low.
The first smoothing part consist of a classic ema but we add s-s1 to the previous smoothed value, this will help decrease lag.The second smoothing part then updates the trend, which is expressed as the difference between the last two values.
KT_Smooth_StochasticI normally don't publish my indicators. However, I couldn't find a smoothed stochastic on TradingView officially or unofficially. This is a standard implementation of a smoothed Fast Stochastic where %K and %D are calculated and then smoothed by n periods. This helps to reduce chop and gives better extreme signals.
I have defaulted the indicator to use commonly used settings where %K is over 14 periods, %D is over 7 period, and the smoothing factor is 3 periods. I have also defaulted the extreme lines to an upper band of 80, mid band of 50, and lower band of 20. However, my favorite settings are %K = 10, %D = 10, Smooth = 3, upper band = 75, mid band = 50, and lower band = 25.