如何编码? - 页 295

 

这种关于赫斯特指数的指标

mladen:
这一部分。

for (i=limit-1;i>=0;i--)

{

for (int j=0;j<n;j--)

{

for (i=limit-1;0<=i<=j;i--) // you are alrady using "i" variable in in the outer loop

{

double B=0,SUM[]; // Sum is an un-initialized array and shoulde be created out of this loop.

B=B+A;

SUM[j]=B;

}

}

H=MathLog((SUM[ArrayMaximum(SUM,n,0)]-SUM[ArrayMinimum(SUM,n,0)])/S)/MathLog(n/2);

}
评论了错误所在。没有描述,我不能说你想用这段代码达到什么目的,所以我不能改变它。

在谐波交易中,我们使用Hurst指数作为对价格数据流可预测性的估计。

价格数据流的可预测性。它表明价格行为是否

持久性--数值为0.5-1(即现在发生的任何事情都可能持续下去

可能会继续下去)

反持久性--值为0-0.5(即现在发生的任何事情

都有可能逆转)

随机性--数值在0.5左右(即有可能向任何方向发展

方向)。

亲爱的mladen,对不起,英语不是我的母语,你能帮我写出以下计算思路的完整代码吗?

步骤_A、X= MathLog(Close/Close)

{从一个单一的R/S中获取H的值,例如,从一个单一的R/S中获取H的值。

Step1、E = (1/n)*[X(0)+X(1)+X(2)+...+X(n-1) ] //din n>=10

第二步、A(0) = X(0) - E

A(1) = X(1) - E

A(2) = X(2) - E

...

A(n-1) = X(n-1) - E

第三步、SUM(0) = A(0)

sum(1) = A(0)+ A(1)

sum(2) = A(0)+A(1)+A(2)

...

SUM(n-1) = A(0)+A(1)+A(2)+...+A(n-1)

第四步、R=最大(SUM,n)。- 最小(SUM,n)。

步骤5、H = log(R/S)/log(n/2) //设s为{X(0),X(1),X(2),...}集合的标准偏差。X(n-1)}的标准差。

}

步骤_B、从{ X(i),X(i+1),X(i+2),...的集合中计算H。X(i+n-1)}。

步骤_C、计算H的指数移动平均线,让其平滑,如果H的指数移动平均线等于0.5,则提醒 "注意"

并使该指标能在多时段工作,谢谢。

 

...

蒋介石

我建议你阅读这个帖子:https://www.mql5.com/en/forum/173010/page19,以获得一些补充信息

由于Sevciks(我所说的有问题的那个)、修正的分形维度指数(Alex Matulich所做的修正)和Hurst指数都没有附在那个帖子里,所以这里也是。

另外,你会注意到,这些版本与2-分形维度指数股权不完全匹配,但我决定让它们保持原样,而不是强迫它们完全相同。

chenairbin:
在谐波交易中,我们用Hurst指数来估计

价格数据流的可预测性。它表明价格行动是否

持久性--数值为0.5-1(即无论现在发生什么都是

可能会继续下去)

反持久性--值为0-0.5(即现在发生的任何事情

都有可能逆转)

随机性--数值在0.5左右(即有可能向任何方向发展

方向)。

亲爱的mladen,对不起,英语不是我的母语,你能帮我写出以下计算思路的完整代码吗?

步骤_A、X= MathLog(Close/Close)

{从一个单一的R/S中获取H的值,例如,从一个单一的R/S中获取H的值。

Step1、E = (1/n)*[X(0)+X(1)+X(2)+...+X(n-1) ] //din n>=10

第二步、A(0) = X(0) - E

A(1) = X(1) - E

A(2) = X(2) - E

...

A(n-1) = X(n-1) - E

第三步、SUM(0) = A(0)

sum(1) = A(0)+ A(1)

sum(2) = A(0)+A(1)+A(2)

...

SUM(n-1) = A(0)+A(1)+A(2)+...+A(n-1)

第四步、R=最大(SUM,n)。- 最小(SUM,n)。

步骤5、H = log(R/S)/log(n/2) //设s为{X(0),X(1),X(2),...}集合的标准偏差。X(n-1)}的标准差。

}

步骤_B、从{ X(i),X(i+1),X(i+2),...的集合中计算H。X(i+n-1)}。

步骤_C、计算H的指数移动平均数,让它平滑,如果H的指数移动平均数等于0.5,则提醒 "注意"

并使该指标能在多时间框架内工作,请注意,谢谢
 

mladen

mladen:
蒋介石

我建议你阅读这个帖子:https://www.mql5.com/en/forum/173010/page19,以获得一些补充信息。

由于Sevciks(我说的那个有问题的人)和修正后的分形维度指数(Alex Matulich做的修正)以及Hurst指数都没有附在那个帖子里,所以这里也有。

另外,你会注意到,这些版本与2-分形维度指数股权并不完全匹配,但我决定让它们保持原样,而不是强迫它们完全相同。

Hurst cofficient.mq4中的cod

应用价格 = PRICE_CLOSE

maxY = MathMax(y[k],maxY)。

minY = MathMin(y[k],minY)。

应该是

AppliedPrice=In(price/price)

maxY = y[ArrayMaximum(y,HurstLength,i)]。

minY = y[ArrayMinimum(y,HurstLength,i)]。

然后需要修改Hurst系数,请帮我一个忙,非常感谢!

 

...

蒋介石

这段代码只是Hurst计算代码的一部分

整个代码块是这样的。
for (k=1; k<HurstLength; k++)

{

y[k] = y[k-1] + x[k];

maxY = MathMax(y[k],maxY);

minY = MathMin(y[k],minY);

}

你可以看到它是循环的,在功能上 等同于你提出的ArrayMaxim()和ArrayMinimum(),你不能只看这两行代码(MathMin()和MathMax())而忽略了它们的循环执行。

应用价格是指将用于计算的价格(通常的价格:收盘价、开盘价、最高价、最低价、中位数、典型价和加权价),否则将计算其差额(没有In(price/price)这样的价格)。

chenairbin:
在Hurst cofficient.mq4中的cod

应用价格 = PRICE_CLOSE

maxY = MathMax(y[k],maxY)。

minY = MathMin(y[k],minY)。

应该是

AppliedPrice=In(price/price)

maxY = y[ArrayMaximum(y,HurstLength,i)]。

minY = y[ArrayMinimum(y,HurstLength,i)]。

然后需要修改赫斯特系数,请帮我一个忙,非常感谢!
 

mladen

mladen:
蒋先生

这段代码只是Hurst计算代码的一部分。

整个代码块是这样的。
for (k=1; k<HurstLength; k++)

{

y[k] = y[k-1] + x[k];

maxY = MathMax(y[k],maxY);

minY = MathMin(y[k],minY);

}

你可以看到它是循环的,在功能上等同于你提出的ArrayMaxim()和ArrayMinimum(),你不能只看这两行代码(MathMin()和MathMax())而忽略了它们的循环执行过程。

应用的价格是指将用于计算的价格(通常的价格:收盘价、开盘价、最高价、最低价、中位数、典型的和加权的),否则将计算它们的差额(没有In(price/price)这样的价格)。

Erik Long在这个网站上说Erik T. Long的分形维度指数

我们也可以通过以下方式从单一的R/S值来估计H的值。

H = log(R/S)/log(n/2) //是否正确?

对于市场,我使用对数回报率而不是价格的百分比变化。

St = ln(Pt/P(t-1))

其中St = 时间t的对数回报 Pt = 时间t的价格 //如In(Close/Close)的价格

你能和Erik Long一起修复代码吗?

我在Hurst coefficient.mq4中使用了下面的代码,它与网站(http://www.stator-afm.com/hurst-exponent.html) 所说的效果很好。

总之,Hurst显然发现,该图的斜率更接近于0.7(而不是0.5)。

maxY = y[ArrayMaximum(y,HurstLength,0)]。

minY = y[ArrayMinimum(y,HurstLength,0)]; }

double iValue = 0; if (sumss !=0) iValue = (maxY - minY)/MathSqrt(sums/HurstLength)。

double hurst = 0; if (iValue > 0) hurst = MathLog(iValue)/ MathLog(HurstLength/2)。

当它与Erik Long一起修改时,怎么样?

对于市场,我使用对数回报而不是价格的百分比变化。

St = ln(Pt/P(t-1))

其中St = 时间t的对数回报 Pt = 时间t的价格//如In(Close/Close)这样的价格

我期待着你的答复,谢谢。

 
ymkoh:
谢谢你的信息!

我已经尝试了大部分,但没有一个可以工作。

例子:- EA Trading TF H1 VQ input 240.

它只在Trading TF H1 VQ输入0的默认情况下工作。

附上的截图显示了由VQ指标H4时间框架触发的交易TF H1买入信号的例子。(没有附上EA)

vq7.mq4

我有一个困难。谁来帮助我,请帮助我,如何编码?

 

...

看一下这个部分的开始:教训

april:
我有一个困难。谁能帮帮我,请帮帮我,如何编码?
 

...

这可能有帮助:这是Erik Long发表在TASC 2003年5月的关于FDI(和Hurst指数)计算的原始描述

chenairbin:
Erik Long在这个网站上说Erik T. Long的分形维度指数

我们也可以通过一个R/S值来估计H的值。

H = log(R/S)/log(n/2) //是否正确?

对于市场,我使用对数回报率而不是价格的百分比变化。

St = ln(Pt/P(t-1))

其中St = 时间t的对数回报 Pt = 时间t的价格 //如In(Close/Close)的价格

你能和Erik Long一起修复代码吗?

我在Hurst coefficient.mq4中使用了下面的代码,它与网站(Hurst Exponent)所说的效果很好。

总之,Hurst显然发现,该图的斜率更接近于0.7(而不是0.5)。

maxY = y[ArrayMaximum(y,HurstLength,0)]。

minY = y[ArrayMinimum(y,HurstLength,0)]; }

double iValue = 0; if (sumss !=0) iValue = (maxY - minY)/MathSqrt(sums/HurstLength)。

double hurst = 0; if (iValue > 0) hurst = MathLog(iValue)/ MathLog(HurstLength/2)。

当它与Erik Long一起修改时,怎么样?

对于市场,我使用对数回报而不是价格的百分比变化。

St = ln(Pt/P(t-1))

其中St=对数回报,时间t Pt=时间t的价格//该价格为In(Close/Close)

我期待着你的答复。
附加的文件:
fdi.gif  118 kb
 

关于Hurst cofficient.mq4,还有一个帮助。

mladen:
这可能会有所帮助:这是Erik Long发表在TASC 2003年5月的关于FDI(和Hurst指数)计算的原始描述。

非常感谢,我是mql4领域的新手,请帮助我用Erik Long的价格改进cod。

对于市场,我使用对数回报,而不是价格的百分比变化。

St = ln(Pt/P(t-1))

其中St = 时间t的对数回报 Pt = 时间t的价格//该价格为In(Close/Close)。

 

有谁能改正我的mql 4代码?

如上所述。

I just edit my mql4 code, but it seem not working,

There are a lot error in my mql4 code,

Just wish someone here to correct my mql 4 code.

拜托,我真的需要你的帮助。