Machine Learning Regression Trend [LuxAlgo]

The Machine Learning Regression Trend tool uses random sample consensus (RANSAC) to fit and extrapolate a linear model by discarding potential outliers, resulting in a more robust fit.


The proposed tool can be used like a regular linear regression, providing support/resistance as well as forecasting an estimated underlying trend.

Using RANSAC allows filtering out outliers from the input data of our final fit, by outliers we are referring to values deviating from the underlying trend whose influence on a fitted model is undesired. For financial prices and under the assumptions of segmented linear trends, these outliers can be caused by volatile moves and/or periodic variations within an underlying trend.

Adjusting the "Allowed Error" numerical setting will determine how sensitive the model is to outliers, with higher values returning a more sensitive model. The blue margin displayed shows the allowed error area.

The number of outliers in the calculation window (represented by red dots) can also be indicative of the amount of noise added to an underlying linear trend in the price, with more outliers suggesting more noise.

Compared to a regular linear regression which does not discriminate against any point in the calculation window, we see that the model using RANSAC is more conservative, giving more importance to detecting a higher number of inliners.


RANSAC is a general approach to fitting more robust models in the presence of outliers in a dataset and as such does not limit itself to a linear regression model.

This iterative approach can be summarized as follow for the case of our script:

  • Step 1: Obtain a subset of our dataset by randomly selecting 2 unique samples
  • Step 2: Fit a linear regression to our subset
  • Step 3: Get the error between the value within our dataset and the fitted model at time t, if the absolute error is lower than our tolerance threshold then that value is an inlier
  • Step 4: If the amount of detected inliers is greater than a user-set amount save the model
  • Repeat steps 1 to 4 until the set number of iterations is reached and use the model that maximizes the number of inliers


  • Length: Calculation window of the linear regression.
  • Width: Linear regression channel width.
  • Source: Input data for the linear regression calculation.


  • Minimum Inliers: Minimum number of inliers required to return an appropriate model.
  • Allowed Error: Determine the tolerance threshold used to detect potential inliers. "Auto" will automatically determine the tolerance threshold and will allow the user to multiply it through the numerical input setting at the side. "Fixed" will use the user-set value as the tolerance threshold.
  • Maximum Iterations Steps: Maximum number of allowed iterations.

Get Access to LuxAlgo indicators:

Join our 100k+ community:

All scripts & content provided by LuxAlgo are for informational & educational purposes only. Past performance does not guarantee future results.

本着真正的TradingView精神,该脚本的作者将其开源发布,以便交易者可以理解和验证它。为作者喝彩!您可以免费使用它,但在出版物中重复使用此代码受网站规则的约束。 您可以收藏它以在图表上使用。