下载MetaTrader 5
要添加评论,请登录注册
对MetaTrader 5的功能感兴趣吗?了解它的更多信息!
Fa Cao
1143
Fa Cao 2013.12.05 10:29 

调用指标中的数据只能通过iCustom()函数调用,而indicatorbuffer的数组又必须是double型的,请问如果想要用iCustom()调用指标中的int 型数据,应该如何操作?

比如直接建立一个 double x[n]; 然后把整型数据赋值给这个数组中的一个元素,然后用icustom()调用,可以吗?

谢谢!或者还有别的方法?

现在我是编写了一个EA,一个版本是把所有的代码都写在EA中,另一个是把一部分设计指标的代码以及负责交易信号逻辑判断的代码也写在该指标中,然后仅仅在EA中用iCustom调用指标中的某一个值作为交易信号,不如1做多,0做空;并且返回一个整数值,表示的是bar的移动数目。

请问改如何实现?

BaiChun Li
838
BaiChun Li 2013.12.06 04:29  

我个人觉得和记得指标中只可能是double类型的数据,反正我总是这样认为的,无论他们是什么我都认为是double。

取0小数位的double就是int了,比如参见:NormalizeDouble()函数的用法。

或者干脆来个int a= iCustom(... ...)之类的强行转换,当然这种做法似乎没有上面的好但是的确很简单,呵呵。

实际上可能还要考虑具体的指标功能。

okwh
1630
okwh 2013.12.07 04:11  
由于某些不完美存在, 建议使用 +1, -1 表示多空, 0 表示没信号, 至于 double和整数转换,这好像没问题, 不太大的整数其实没有问题
Fa Cao
1143
Fa Cao 2013.12.09 02:50  
对于同一个EA逻辑,通过两种方式实现,一种是:完全写在EA中;另一种情况,把很多逻辑判断代码写在Indicator中,然后用iCustom()来调用这个Indicator的信号值,在EA中交易;两种情况代码如下,主要代码和关键代码都是完全一样的,可是结果却差的很大,调用Indicator()的时候,交易单数特别少;不知道什么问题,将代码附在文件中
附加的文件:
ea.mq4 4 kb
/
要添加评论,请登录注册