corr()本身是相关系数函数,用来刻画二维随机变量两个分量间相互关联程度。-1<corr(x,y)<1,也就是说相关系数介于-1到1之间,并可以对它说明:corr(x,y)=0,则称X,Y不相关,不相关是指X,Y没有线性关系,但也有可能有其他关系,比如平方关系,立方关系等,corr(x,y)=1,则称X与Y完全正相关,corr(x,y) =-1,则称X,Y完全负相关。当然,这里用于MQL4语言中,它是一个自定义函数,有着它独特的算法。

Corr 指标以特定的算法绘制曲线,用来显示收盘价和开盘价的差值、序数i及设定的参数CorrLen的相互关系系数。可以从其算法中研究其计算原理:
double corr(double& a[], int start, int len)
{
double m1 = 0;
double m2 = 0;
double m1_2 = 0;
double m2_2 = 0;
double m12 = 0;
for(int i = 0; i < len; i++)
{
m1 = m1 + a[i];
m2 = m2 + a[start + i];
m1_2 = m1_2 + a[i]*a[i];
m2_2 = m2_2 + a[start + i]*a[start + i];
m12 = m12 + a[i]*a[start + i];
}
m1 = m1/len;
m2 = m2/len;
m1_2 = m1_2/len;
m2_2 = m2_2/len;
m12 = m12/len;
if((m1_2 - m1*m1)*(m2_2 - m2*m2) == 0)
return(0);
return((m12 - m1*m2) / MathSqrt(MathAbs((m1_2 - m1*m1)*(m2_2 - m2*m2))));
}//自定义Corr函数
for(int i = 0; i < Bars; i++)
ExtMapBuffer[i] = Close[i] - Open[i];
for(i = 0; i < Bars - CorrLen; i++)
ExtMapBuffer[i] = corr(ExtMapBuffer, i, CorrLen);//指标值算法