Ниже еще один из популярных приемов МНК.
Может быть не так наглядно как у вас, но на моем компе делает оптимизацию в несколько раз быстрее.
Код: Выделить всё
/**
линейная регрессия МНК
20200222 prohar
**/
function Initialize()
{
IndicatorName = "i_LinReg";
PriceStudy = true;
AddInput("Input", Inputs.Price);
AddSeries("LinReg", DrawAs.Line, Color.Red);
AddParameter("Period", 20);
AddParameter("Extr", 10);
}
function Evaluate()
{
double S = SMA(Input, Period);
double W = WMA(Input, Period);
LinReg = (6*(W-S)/(Period-1)) *((double)Period+Extr) + (S-3*(W-S)/(Period-1)*(Period+1));
}
Вроде можно упростить, но тогда регрессор и коэффициенты альфа и бета перестанут быть явными.
Up. если Extr = 0, то
Код: Выделить всё
function Evaluate()
{
LinReg = 3*WMA(Input, Period) - 2*SMA(Input, Period);
}