TradingView
tbiktag
16 févr. 2021 17:46

Moving Regression Prediction Bands 

Tesla, Inc.NASDAQ

Description

Introducing the Moving Regression Prediction Bands indicator.

Here I aimed to combine the principles of traditional band indicators (such as Bollinger Bands), regression channel and outlier detection methods. Its upper and lower bands define an interval in which the current price was expected to fall with a prescribed probability, as predicted by the previous-step result of the local polynomial regression (for the original Moving Regression script, see link below).

tradingview.com/script/0GhsW1KR-Moving-Regression/

Algorithm
1. At every time step, the script performs local polynomial regression of the sample data within the lookback window specified by the Length input parameter.
2. The fitted polynomial is used to construct the Moving Regression time series as well as to extrapolate data, that is, to predict the next data point (MRPrediction).
3. The accuracy of local interpolation is estimated by means of the root-mean-square error (RMSE), that is, the deviation between the fitted polynomial and the observed values.
4. The MRPrediction and RMSE values calculated for the previous bar are then used to build the upper and lower bands, which I define as follows:

Upper Band = MRPrediction_prev + Multiplier*(RMSE_prev)
Lower Band = MRPrediction_prev - Multiplier*(RMSE_prev)

Here the Multiplier is a user-defined parameter that should be interpreted as a quantile in the standard normal distribution (the default value of 2.0 roughly corresponds to the 95% prediction interval).

To visualize the central line, the script offers the following options:
  • Previous-Period MR Prediction: MRPrediction_prev time series from the above equation.
  • MR: Conventional Moving Regression time series.
  • Ribbon: “Previous-Period MR Prediction” and “MR” curves plotted together and colored according to their relative value (green if MR > Previous MR Prediction; red otherwise).


Usage
My original idea was to use the band breakouts as potential trading signals. For example, the price crossing above the upper band is a bullish signal, being a potential sign that price is gaining momentum and is out of a previously predicted trend. The exit signal could be the crossing under the lower band or under the central line.
However, be aware that it is an experimental indicator, so you might fin some better strategies.

Feel free to play around!

Notes de version

added alerts conditions on Upper Band breakout, Lower Band breakdown and Central Line crossing (in both directions)

See also a simple strategy illustrating the use of this indicator:
tradingview.com/script/Tls8Y2hc-Moving-Regression-Band-Breakout-strategy/

Notes de version

  • Upon request, several more alert conditions are introduced:
    - changing the color of the MR curve from red to green (for details on how the color is determined, see the main description),
    - changing the color of the MR curve from green to red,
    - price crossing above the lower band,
    - price crossing below the upper band.
  • The code is translated into Pine Script v.5.
Commentaires
PineCoders
AnaBloemkool
thank you!
tbiktag
PineCoders
This publication is now featured in our Editors' Picks: tradingview.com/scripts/editors-picks/ .
In the name of all TradingViewers, thank you for your valuable contribution to the community, and congrats!
tbiktag
@PineCoders, Many thanks!
mzd28
Thanks for sharing, dude. I have a question. İs this repainting?
yasminramirez
Wow
townsolan
Kudos to you for this Great script. Very useful. Is there a way to make it execute little faster?
I have been getting "too long to execute errors"

Thanks.
tbiktag
@townsolan, That's true. It uses some relatively linear algebra. As soon as I see any technical possibility to reduce the computational time, I'll certainly do that. But so far it might be a good idea to use the code for higher timeframes (15m, hours, day - but surely not seconds).
tps565
@tbiktag, which timeframe do you use? I use 30m.
Plus