PPZ计算--帮助完善 - 页 2

 
这对EA来说有点重,但这是个好主意。也许我们可以让它变得更轻,但我怀疑它作为额外的分析会对视觉交易有多大作用。
 
至于优化。在我看来,你应该对得到的数组Fr0[j]进行排序,然后在其上跳舞,结果只会是一次通过。
 

这个代码没有考虑到同时有两个分形的条形。


j=0;
for(i = loopbegin; i > Nfirst; i--) {
f0 = -1.0;
f0 = iFractals(NULL,0,MODE_UPPER,i)。
如果(f0<=0.0 ) f0 = iFractals(NULL,0,MODE_LOWER,i)。
如果(f0>0.0) {
Fr0[j]=f0。
Ind0[j]=i。
j++;
}
}
Nmax=j。


而在这里,你不需要去看所有的分形,你不在乎是把分形1号和2号比较还是把2号和1号比较。
解决这个问题的方法是这样的。


for(i = 0; i < Nmax; i++) {
f0 = Fr0[i];
for(j =i+1; j < Nmax; j++) {
f1=Fr0[j]。
如果(MathAbs(Ind0[i]-Ind0[j])>minBars) {
for(k =j+1; k < Nmax; k++) {
f2 = Fr0[k]。
如果(MathAbs(Ind0[i]-Ind0[k])>minBars && MathAbs(Ind0[k]-Ind0[j])>minBars) {
for(l =k+1; l < Nmax; l++) {
f3 = Fr0[l];
如果(MathAbs(Ind0[i]-Ind0[l])>minBars &&MathAbs(Ind0[j]-Ind0[l])>minBars &&MathAbs(Ind0[k]-Ind0[l])>minBars) {
p0=(f0+f1+f2+f3)/4.0。
s0 = (f0-p0)*(f0-p0)+(f1-p0)*(f1-p0)+(f2-p0)*(f2-p0)+(f2-p0)*(f2-p0);
如果(s0<smin) {
smin=s0。
pmin=p0。
imin=i。
jmin=j。
kmin=k。
lmin=l。
}
}
}
}
}
}
}
}

而这段代码应该放在函数中,使用4次,而不是复制代码。Fr0中的分形应该被清零,这样它们就不会参与到下一次运算中。



 

为什么每次迭代都要经过分形?一次做完,以后再分析,不是更容易吗?此外,比较应该收敛到一个三角形,而不是一个正方形(将分形1和2比较两次,再将2和1比较,没有意义)。我的做法有点不同--指标依次从0点及以上寻找背离,直到找到四个水平。我没有限制各层之间的距离。


附加的文件:
 
Scriptong писал(а)>>

为什么每次迭代都要经过分形?一次做完,以后再分析,不是更容易吗?此外,比较应该收敛到一个三角形,而不是一个正方形(将分形1和2比较两次,再将2和1比较,是没有意义的)。我的做法有点不同--指标依次从0点及以上寻找背离,直到找到四个水平。我没有限制各层之间的距离。

很好!速度是完全不同的... :)

我是否也可以在指标的缓冲区中保存收到的电平值?为了以后能从专家顾问那里处理它们。

 

我准备自己做一个专家。我有一些想法。但也许有人有更有趣的想法?我会做一个并在代码库中发布。

 
Scriptong писал(а)>>

我准备自己做一个专家。我有一些想法。但也许有人有更有趣的想法?我将制作并在代码库中发布。

你可以尝试以这种方式添加。

如果(period == 0) {period = WindowBarsPerChart();}
并在屏幕的某处显示要计算的条数...

 
mikola2 >>:

if (period == 0) {period = WindowBarsPerChart();}
И выводить где-нибудь на экране количество баров для расчета...

我不是这个意思 :)

关于专家顾问的想法。很明显,在指标本身上还有很多需要补充的内容

 
有什么想法,把它变成一个函数,我是说火鸡的逻辑,你能做到吗?
 
qwerewq >>:
Идеи есть, сделайте его в виде функции, логику индюка имею в виду, сможете?


它已经以函数的形式存在了...