Hello would like to see about getting this into an mtf version thanks
Ruby:
#Linear regression by cslipilot
input StandardDeviationsOne = 1.0;
input StandardDeviationsTwo = 2.0;
input ShowHalfDeviations = Yes;
input ShowPriceBubbles = no;
input ShowFullRegressionRange = yes;
input RegressionLength = 21;
#Regression and Deviation Definitions
def C = close;
def Regression;
def StdDeviation;
if
(ShowFullRegressionRange)
{Regression = InertiaAll(C);
StdDeviation = StDevAll(C);}
else
{Regression = InertiaAll(C, RegressionLength);
StdDeviation = StDevAll(C, RegressionLength);}
#Regression and Deviation Plots
plot UpperLine = Regression + StandardDeviationsTwo * StdDeviation;
plot UpperHalfLine = if ShowHalfDeviations then Regression + StandardDeviationsTwo * .75 * StdDeviation else double.NaN;
plot UpperMidLine = Regression + StandardDeviationsOne * StdDeviation;
plot UpperHalfMidLine = if ShowHalfDeviations then Regression + StandardDeviationsOne * .5 * StdDeviation else double.NaN;
plot MiddleLine = Regression;
plot LowerHalfMidLine = if ShowHalfDeviations then Regression - StandardDeviationsOne * .5 * StdDeviation else double.NaN;
plot LowerMidLine = Regression - StandardDeviationsOne * StdDeviation;
plot LowerHalfLine = if ShowHalfDeviations then Regression - StandardDeviationsTwo * .75 * StdDeviation else double.NaN;
plot LowerLine = Regression - StandardDeviationsTwo * StdDeviation;
#Dynamic Color Line Code
UpperLine.AssignValueColor(if MiddleLine >= MiddleLine[1] then Color.GREEN else Color.RED);
UpperHalfLine.SetDefaultColor (Color.LIGHT_GRAY);
UpperHalfLine.SetStyle (Curve.SHORT_DASH);
UpperMidLine.SetDefaultColor (Color.LIGHT_ORANGE);
UpperHalfMidLine.SetDefaultColor (Color.LIGHT_GRAY);
UpperHalfMidLine.SetStyle (Curve.SHORT_DASH);
MiddleLine.SetDefaultColor (Color.LIGHT_GRAY);
LowerHalfMidLine.SetDefaultColor (Color.LIGHT_GRAY);
LowerHalfMidLine.SetStyle (Curve.SHORT_DASH);
LowerMidLine.SetDefaultColor (Color.LIGHT_ORANGE);
LowerHalfLine.SetDefaultColor (Color.LIGHT_GRAY);
LowerHalfLine.SetStyle (Curve.SHORT_DASH);
LowerLine.AssignValueColor(if MiddleLine < MiddleLine[1] then Color.RED else Color.GREEN);
#Price Bubble Code
AddChartBubble (!IsNaN(close) and IsNaN(close[-1])
and ShowPriceBubbles, UpperLine, "" + Round (UpperLine, 2),
(if MiddleLine >= MiddleLine[1] then Color.GREEN else Color.RED), yes);
AddChartBubble (!IsNaN(close) and IsNaN(close[-1])
and ShowPriceBubbles, UpperMidLine, "" + Round (UpperMidLine, 2),
Color.LIGHT_ORANGE, yes);
AddChartBubble (!IsNaN(close) and IsNaN(close[-1])
and ShowPriceBubbles, MiddleLine, "" + Round (MiddleLine, 2),
Color.LIGHT_GRAY, yes);
AddChartBubble (!IsNaN(close) and IsNaN(close[-1])
and ShowPriceBubbles, LowerMidLine, "" + Round (LowerMidLine, 2),
Color.LIGHT_ORANGE, yes);
AddChartBubble (!IsNaN(close) and IsNaN(close()[-1])
and ShowPriceBubbles, LowerLine, "" + Round (LowerLine, 2),
(if MiddleLine >= MiddleLine[1] then Color.GREEN else Color.RED), yes);
Last edited by a moderator: