请教数据及EA执行之问题

 

编写了一个EA,开仓条件计算在前,运行时可以同时连续下10个订单(多数是同一货币对),之后是循环执行止损止赢的代码段,但运行时只会对第一张单按代码执行,其余各单在符合条件时并不执行止损、止赢,时间可以长达一天,从图表看这中间有数十次符合条件。价格远远超出止损、止赢设置后,最终还是会被止损止赢,返回信息显示是代码起作用。

如果每一货币对只开一单,EA会按条件执行。

重装MT4后还是一样,但测试结果和以前的大不一样(参数、条件均未变化)。思考后,提出如下几个问题,望各位不吝赐教。

1、每一次数据进来时,EA是否会放弃当前的计算重新从START开始,也就是如果计算太复杂,后面的代码没有机会执行,如果是这样怎样解决?

2、变量定义在START之前和之后有什么区别?start运行时,前一次运行产生的变量数值怎样处理?

3、在执行止损止赢的循环中,如果同一货币对开了好几单,止损止赢条件一样,变量是不是可以共用一个?

我的代码是:

if((OrderOpenPrice()-Bid) >(Point* SLpercent))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5,Violet);
Print("stop close");
return(0);
}

SLpercent 是定义的 extern int 外部可调变量

4、上述Return语句执行后是返回到哪里?Start还是平仓的循环体?可否不用?

5、val !=EMPTY_VALUE 或val==EMPTY_VALUE的判断是否很占用资源?

万分感谢,