从错误的内容来看,MathSqrt(lambda*lambda*lambda+16.0*lambda*lambda)一定在这附近。但lambda=MathAbs(Value1[i]/Value2[i]);不能是负数。 这就是为什么我唯一能想到的,以防万一,就是执行lambda=0.0。 和/或MathSqrt(MathAbs(lambda*lambda*lambda*lambda))来永远摆脱这个错误。 //---- 主循环 双倍的α,lambda=0.0 。 //******************************************************************************************** for (i = limit; i >= 0; i--) { Price[i]=(High[i]+Low[i])/2.0; } for (i = limit; i >= 0; i--) { Value1[i]=SC*(Price[i]-Price[i+1])+4*SC*Value1[i+1]; Value2[i]=SC*(High[i]-Low[i])+4*SC*Value2[i+1]; } for (i = limit; i >= 0; i--) { 如果(Value2[i]< Point)Value2[i]= Point;否则lambda=MathAbs(Value1[i]/Value2[i])。
尤拉,我想比标准函数更快地计算RMS。如果成功了呢?对于单个调用来说,它应该比任何用语言编写的代码都要快,但对于大规模(整个图表计算)来说,有可能节省成本。
如果我们谈论的是线性回归 的分数,它是通过公式一步步分析计算出来的
sko^2=d[y]-d[x]*a^2。
其中D[Y]=M[Y^2]-M[Y]^2,D[X]=M[X^2]-M[X]^2,A 是线性回归系数Y=A*X+B
所以这里不需要复发。
PS 而交叉和是明确地、纯粹地分析归零的。样本大小与此无关。
仍然有错误 2008.02.15 17:07:22 2007.01.11 12:15 OTF_1 EURUSD,M1:MathSqrt 函数的负参数
这就是为什么我唯一能想到的,以防万一,就是执行lambda=0.0。
和/或MathSqrt(MathAbs(lambda*lambda*lambda*lambda))来永远摆脱这个错误。
//---- 主循环
双倍的α,lambda=0.0 。
//********************************************************************************************
for (i = limit; i >= 0; i--)
{
Price[i]=(High[i]+Low[i])/2.0;
}
for (i = limit; i >= 0; i--)
{
Value1[i]=SC*(Price[i]-Price[i+1])+4*SC*Value1[i+1];
Value2[i]=SC*(High[i]-Low[i])+4*SC*Value2[i+1];
}
for (i = limit; i >= 0; i--)
{
如果(Value2[i]< Point)Value2[i]= Point;否则lambda=MathAbs(Value1[i]/Value2[i])。
alpha=(-lambda*lambda+ MathSqrt(lambda*lambda*lambda) )/8.0。
Value3[i]=alpha*Price[i]+(1.0-alpha)*Value3[i+1];
}
//********************************************************************************************
P.S. 一般来说是胡说八道。这个错误一定是在你的测试器中冒出来的。
P.P.S. 最有可能的是,变量double lambda;被默认初始化为非常小的负数垃圾。那么双倍的lambda=0.0;表达式应该有帮助。
斯拉瓦教导我们--永远不要以默认的方式工作,我们也不学习!
仍然有错误 2008.02.15 17:07:22 2007.01.11 12:15 OTF_1 EURUSD,M1:MathSqrt 函数的负参数
P.S. 这很疯狂。这个错误可能是在你的测试器中突然出现的吗?
P.P.S. 最有可能的是,变量double lambda;被默认初始化为非常小的负数垃圾。那么双倍的lambda=0.0;表达式应该有帮助。
斯拉瓦教导我们--永远不要以默认的方式工作,我们也不学习!
当地的机器人总是试图发明一些自行车。
不要白费力气了。在自定义指数中,有一个Bands.mq4--有一个RMS计算的算法。
sko^2=d[y]-d[x]*a^2。
其中D[Y]=M[Y^2]-M[Y]^2,D[X]=M[X^2]-M[X]^2,A 为线性回归系数Y=A*X+B
所以这里不需要复发。
还有,你说的递归是没有必要的,总和应该如何计算?或者你有一个想法,如何做到不以平均数取代期望值?
P.S.顺便说一句,交叉的款项不会自己离开。至少我没有。试着不要用变异来工作,而是用 "真实 "的表达来工作
因此,对于线性回归,它是
因此,对于一个线性回归来说,它将是
sko^2=d[y]-d[x]*a^2。
其中D[Y]=M[Y^2]-M[Y]^2,D[X]=M[X^2]-M[X]^2,A 为线性回归系数Y=A*X+B
所以这里不需要复发。
还有,什么叫不需要递归,总和该如何计算?或者你有办法避免用平均值替换预期报酬吗?
P.S.顺便说一句,交叉的款项不会自己离开。至少我没有。试着不要用变异来工作,而要用 "真实 "的表达来工作。
非常想知道这些公式中哪些是多余的?:-)
当然,MO是由平均数代替的,而且必须计算总和。然而,复发甚至是一个周期是不需要的。以下公式就足够了
S(X)[i+1]=S(X)[i]-X[i-N+1]+X[i+1] 其中S(X)[i]=Sum(X[k]; k=i-N+1, i-N+2, ..., i-1,i )
好吧,也许你说的复发是指这种表达?那么,当然,你是对的。
至于 "真正的表达",你认为所有这些公式来自哪里?好吧,如果你把从MNC得出的A和B的有限公式代入这个 "真实表达",那么你得到的只是上述RMS的表达。我可以给你相应的分析计算结果。
我可以给你相关的分析计算结果。
如果从这里详细说明不会太麻烦的话。 随着新数据的出现,系数A和B可能会改变,我想,尽管我可能是错的:-)。对于LR来说,这似乎已经解决了,但对于抛物线回归来说,如何解决?
这是由定义决定的。如果LR不是太短,你可以更准确地计算RMS,不需要任何额外的周期。在源码MovingLR.mq4中,有一段计算RMS的代码,但它被注释掉了,RMS被称为rmsY。