Тема: Linear regression
Уважаемые! Помогите написать индикатор
Имеется код под мт4. нужно перевести на луа
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Blue
//---- input parameters
extern int N=10;
extern double StdDev=2.0;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,ExtMapBuffer3);
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int j;
double a,b,Summ_x,Summ_y,Summ_x_2,Summ_xy,Deviation,StdDeviation,Sredn_y;
if (Bars < N+1) return(0);
for (int x=1;x<=N;x++)
{ j=N-x;
Summ_x=Summ_x+x;
Summ_y=Summ_y+Close[j];
Summ_xy=Summ_xy+x*Close[j];
Summ_x_2=Summ_x_2+MathPow(x,2);
}
b=(N*Summ_xy-Summ_x*Summ_y)/(N*Summ_x_2-MathPow(Summ_x,2));
a=(Summ_y-b*Summ_x)/N;
Sredn_y=Summ_y/N;
for (x=1;x<=N;x++)
{
j=N-x;
Deviation=Deviation+MathPow((Close[j]-Sredn_y),2);
}
StdDeviation=MathSqrt(Deviation/N);
ExtMapBuffer1[N]=EMPTY_VALUE;
ExtMapBuffer2[N]=EMPTY_VALUE;
ExtMapBuffer3[N]=EMPTY_VALUE;
for (x=1;x<=N;x++)
{ j=N-x;
ExtMapBuffer1[j]=b*x+a;
ExtMapBuffer2[j]=b*x+a+StdDev*StdDeviation;
ExtMapBuffer3[j]=b*x+a-StdDev*StdDeviation;
}
return(0);
}