下载MetaTrader 5

我写指标是遇到一下问题

要添加评论,请登录注册
发表您的文章并获得奖励!
iludmling
22
iludmling 2016.06.07 22:48 

下列代码为什么在新版MT4编译器中的编写是错误的,而旧版的则是对的?就是这句 Label3Buffer[i]=Label3Buffer[i+1];是有问题的,这是为什么?改怎么处理?

 int start()

{

 for (int i=0;i<Bars;i++)

 {

   Label1Buffer[i]=iMA(Symbol(),PERIOD_CURRENT,junx1,0,MODE_EMA,PRICE_CLOSE,i);


      Label3Buffer[i]=Label3Buffer[i+1];

 

 }


return(0);

}

Nianfu Li
1556
Nianfu Li 2016.06.08 05:07  
iludmling:

下列代码为什么在新版MT4编译器中的编写是错误的,而旧版的则是对的?就是这句 Label3Buffer[i]=Label3Buffer[i+1];是有问题的,这是为什么?改怎么处理?

 int start()

{

 for (int i=0;i<Bars;i++)

 {

   Label1Buffer[i]=iMA(Symbol(),PERIOD_CURRENT,junx1,0,MODE_EMA,PRICE_CLOSE,i);


      Label3Buffer[i]=Label3Buffer[i+1];

 

 }


return(0);

}


是编译不能通过还是指标不显示?

iludmling
22
iludmling 2016.06.10 17:59  
Nianfu Li:
编译是通过了,但是却不能加载到窗口上,在MT4平台上显示array out of range in 
iludmling
22
iludmling 2016.06.10 18:03  
iludmling:
编译是通过了,但是却不能加载到窗口上,在MT4平台上显示array out of range in 

上面的问题没有解决,我有遇到新问题

下面的代码 也是不能编译成功的,编译结果显示 'Label1Buffer' - parameter conversion not allowed xdzb.mq4 112 19,如果知道麻烦教教我,我的QQ1837462229


int start()

{

Label1Buffer[0]=15;

Label2Buffer[0]=18;

double assd=hello(Label1Buffer[0],Label2Buffer[0],12,12,14);


return(0);


Jian Chen
版主
3621
Jian Chen 2016.06.12 13:09  

"array out of range" 应该是在i=Bars-1的时候,"Label3Buffer[i]=Label3Buffer[i+1];"会出现非法访问吧。

后面的那个参数类型转换错误,要看你hello函数的原型是什么,是不是传错参数类型了?



 

iludmling
22
iludmling 2016.06.13 05:19  
Jian Chen:

"array out of range" 应该是在i=Bars-1的时候,"Label3Buffer[i]=Label3Buffer[i+1];"会出现非法访问吧。

后面的那个参数类型转换错误,要看你hello函数的原型是什么,是不是传错参数类型了?



 

hell\o函数的数据类型是一样的,都是 double
Jian Chen
版主
3621
Jian Chen 2016.06.13 06:25  
iludmling:
hell\o函数的数据类型是一样的,都是 double
那还是看一下 xdzb.mq4 文件的第112行是什么内容吧,也许是别的代码?
Ziheng Zhuang
1595
Ziheng Zhuang 2016.06.13 12:08  

 int start()

{

 for (int i=0;i<Bars-1;i++) //注意这里是Bars-1

 {

   Label1Buffer[i]=iMA(Symbol(),PERIOD_CURRENT,junx1,0,MODE_EMA,PRICE_CLOSE,i);



      Label3Buffer[i]=Label3Buffer[i+1]; //注意这里i+1越界

 

 }



return(0);

}
iludmling
22
iludmling 2016.06.13 16:47  
Jian Chen:
那还是看一下 xdzb.mq4 文件的第112行是什么内容吧,也许是别的代码?
就是这行代码double assd=hello(Label1Buffer[0],Label2Buffer[0],12,12,14);
iludmling
22
iludmling 2016.06.13 16:48  
Ziheng Zhuang:

原来这样啊
要添加评论,请登录注册