关于MQL4的两个问题请教

 
1. 同一段代码在EA中执行和在Script脚本中执行有什么区别。我写了一段代码,放在EA中的start()函数中运行一切正常,但是复制到Script脚本中的start()函数中不能运行,提示“不能调用函数”。 请问这是怎么回事,将上述代码加入到Script脚本中,还需要做哪些调整,谢谢! 2. 如何查看MQL4中的系统函数原代码,比如OrderSend()函数的原代码,可以看吗?在哪里看到? 谢谢!
 
1、通常,EA是随着tick数据的不断更新,而持续运行、计算的;脚本则不同,它只运行一次然后自动卸载退出。 2、通常,EA和脚本的基本代码是相通的,比如OrderSend()函数无论是在EA还是脚本里面都会被支持;但完整的结构上会有不同,所以具体的情况要具体的对待。 3、至于MQL4自身的函数,没有现成的办法看到源代码,似乎也完全没有这个必要,除非另有企图~~ 以上仅代表个人观点~~
 
int total=OrdersTotal(); for(int i=total-1;i>=0;i--) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {Print("选择订单失败,",GetLastError());continue;} if(0==OrderType()) if(OrderClose(OrderTicket(),OrderLots(),Bid,30)); else Print("平单-buy失败:",GetLastError()); else if(1==OrderType()) if(OrderClose(OrderTicket(),OrderLots(),Ask,30)); else Print("平单-sell失败:",GetLastError()); else if(OrderDelete(OrderTicket())); else Print("删除订单失败",GetLastError()); } 如上几行代码,如果写在EA中运行无误,可以实现既定目的;但是写在Script脚本里,没法运行,且提示无法调用函数“cann't call function”,不知此为何故? 谢谢!
 
要表达的是平掉所有订单并且删除所有挂单,本身不复杂; 但是写法个人感觉有点凌乱,导致逻辑上出现错误;在EA里面能运行无误已经很了不得了。 今天没有行情数据,我没办法完成修改后的测试,你在仔细检查一下吧。
原因: