alexgrover

R2-Adaptive Regression

Introduction

I already mentioned various problems associated with the lsma , one of them being overshoots, so here i propose to use an lsma using a developed and adaptive form of 1st order polynomial to provide several improvements to the lsma . This indicator will adapt to various coefficient of determinations while also using various recursions.

More In Depth

A 1st order polynomial is in the form : y = ax + b , our indicator however will use : y = a*x + a1*x1 + (1 - (a + a1))*y, where a is the coefficient of determination of a simple lsma and a1 the coefficient of determination of an lsma who try to best fit y to the price.

In some cases the coefficient of determination or r-squared is simply the squared correlation between the input and the lsma . The r-squared can tell you if something is trending or not because its the correlation between the rough price containing noise and an estimate of the trend ( lsma ). Therefore the filter give more weight to x or x1 based on their respective r-squared , when both r-squared is low the filter give more weight to its precedent output value.


Comparison


lsma and R2 with both length = 100

The result of the R2 is rougher, faster, have less overshoot than the lsma and also adapt to market conditions.


Longer/Shorter terms period can increase the error compared to the lsma because of the R2 trying to adapt to the r-squared . The R2 can also provide good fits when there is an edge, this is due to the part where the lsma fit the filter output to the input (y2)

Conclusion

I presented a new kind of lsma that adapt itself to various coefficient of determination. The indicator can reduce the sum of squares because of its ability to reduce overshoot as well as remaining stationary when price is not trending. It can be interesting to apply exponential averaging with various smoothing constant as long as you use : (1- (alpha+alpha1)) at the end.

Thanks for reading
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.

Want to use this script on a chart?
Patreon: https://www.patreon.com/alexgrover

Become a Patreon and get access to exclusive technical indicators!

You can also check out some of the indicators I made for luxalgo : https://www.tradingview.com/u/LuxAlgo/#published-scripts