The problem was that you can not put 0 in place of the slowing parameter since in that case metatrader will cause an error when calculating stochastic, and you will always get 0 as a return value, so use 1 instead (it is equivalent to no smoothing of the stochastic value). Also, better to use buffer numbers (MODE_MAIN is a reserved word in MQL - it 0 but in some cases they are not what you expect them to be). To get the rest of the values you would then have to write something similar to this :
挂单 修改
大家好,我试图为挂单的价格修改编程。这是我的第一个EA之一。我想编写尽可能多的EA,这样我以后就可以编写复杂的EA。我的订单修改有一个问题,当我把它放到我的演示账户的图表中时,它就不工作了。有谁能发现错误并帮助我改正?谢谢。我真的没有更多的线索了。 谢谢
嘿,罗伯特,感谢你到目前为止的帮助。我怎样才能在这里正确地发布代码?谢谢你,祝你好运。
嘿,罗伯特,感谢你到目前为止的帮助。我怎样才能正确地在这里发布代码?谢谢你,祝你好运。
fabian103
你应该在php代码框中做一个简单的复制和粘贴。
由于某些原因,你的代码是 "到处都是"。试试吧。如果不成功,请将你想修改的代码部分作为一个单独的文件附上(使用附件工具--图片上指出的那个)。
你好。
我一直想在随机指标内计算布林带 的值,但我一直没能做到这一点。
我得到的值是指货币对,但我需要的是应该在0到100之间的值。
有什么指示吗?
谢谢
你好。
我一直想在随机指标里面计算布林带的值,但我一直没能做到这一点。
我得到的是指对的值,但我需要的是应该在0到100之间的值。
有什么指示吗?
谢谢我想你是指计算随机指标的布林带(使用随机指标值而不是符号价格)。你不能用内置的iBands()做这个,因为它总是使用主图表价格。
你可以使用iBandsOnArray(),但是你有一个永恒的metatrader问题:偏差只能是整数乘法。你不能将偏差设置为小数值。因此,最好的办法是使用iStdDevOnArray()和iMaOnArry()函数来计算你自己的布林带的任何值和任何带宽。如果是随机指标,其代码会是这样的。
for( i=limit; i>=0; i--)
{
double dev = iStdDevOnArray(stoch,0,BollingerPeriod,0,MODE_SMA,i);
bollmi = iMAOnArray(stoch,0,BollingerPeriod,0,MODE_SMA,i);
bollup = bollmi+BollingerDeviations*dev;
bolldn = bollmi-BollingerDeviations*dev;
}
把指标本身也附上,这样你就可以继续试验。它在图表上看起来像这样。
____________________
PS:波段的数值可以超过0和100的界限(在随机指数在0或100附近徘徊的情况下),这取决于你对偏差使用的波段乘数以及布林带计算本身的长度。
我想你是指计算随机指数的布林带(使用随机指数值而不是符号价格)。你不能用内置的iBands()做这个,因为它总是使用主图表价格。
你可以使用iBandsOnArray(),但你有一个永恒的metatrader问题:偏差只能是整数乘法。你不能将偏差设置为小数值。因此,最好的办法是使用iStdDevOnArray()和iMaOnArry()函数来计算你自己的布林带的任何值和任何带宽。如果是随机指数,其代码看起来就像这样。
这是超级棒的!!!!!
非常感谢,我已经尝试了很久。
也感谢你的快速回复。
还有一个stuppi问题。
这个indi工作得很好,但我不能在ea上得到关于波段值的正确数字。
例如,在你所附的图片中,数字是81...67...54....。
这真是太了不起了!!!!!
非常感谢,我已经努力了这么久。
也感谢你的超快回复。
还有一个问题。
该指数工作得非常好,但我无法在EA上获得关于波段值的正确数字。
例如,像你所附的图片中的数字81...67...54....。:):)
那个例子中的随机 长度被设置为32。这是与默认参数相比的唯一区别。
:):):) 该例子中的随机长度被设置为32。这是与默认参数相比的唯一区别
对不起,我没有很好地解释我想问的问题。
在我的EA中,我试图在图中的stoch窗口中获得例如上行或下行的数字。例如,我想在EA中获取81.8116的上行区间,我的代码为
Comment(iCustom(NULL,0, "name",24,0,MODE_UPPER,0)); /\renamed the indi
但我没有正确的数字。
我哪里错了?
谢谢
对不起.我没有很好地解释我想问的问题。
在我的EA中,我试图在图中的stoch窗口中获得例如上行或下行的数字。例如,我想在EA中获取81.8116的上波段,我的代码为
Comment(iCustom(NULL,0, "name",24,0,MODE_UPPER,0)); /\renamed the indi
但我没有正确的数字。
我哪里错了?
谢谢像这样做吧。
The problem was that you can not put 0 in place of the slowing parameter since in that case metatrader will cause an error when calculating stochastic, and you will always get 0 as a return value, so use 1 instead (it is equivalent to no smoothing of the stochastic value). Also, better to use buffer numbers (MODE_MAIN is a reserved word in MQL - it 0 but in some cases they are not what you expect them to be). To get the rest of the values you would then have to write something similar to this :
[PHP]double middleBand = iCustom(NULL,0,"name",24,1,1,0);
double lowerBand = iCustom(NULL,0,"name",24,1,2,0);好的...
超级感谢。
你救了我....