下载MetaTrader 5
要添加评论,请登录注册
对MQL5.community的伙伴计划感兴趣吗?放入网站链接并获利
Jinsong Zhang
14666
Jinsong Zhang 2009.03.02 09:08 

比如我有2个EA分别运行在几个图表上,我希望用脚本来控制这2个ea运行和停止,如何解决呢?

okwh
1630
okwh 2009.03.02 11:07  
MT不支持 脚本控制ea
konit
7
konit 2009.03.02 14:48  

官方教學要看吶~

https://www.mql5.com/zh/articles/1412

https://www.mql5.com/zh/articles/1404

https://www.mql5.com/zh/articles/1359

https://www.mql5.com/zh/articles/1390

https://www.mql5.com/zh/articles/mt4/

Greatshore
91
Greatshore 2009.03.03 14:50  
你可以用全局变量来实现。EA中根据某个全局变量的值来判断是否需要执行。然后用一个脚本来修改这个全局变量的值就可以了。
Jinsong Zhang
14666
Jinsong Zhang 2009.03.06 08:18  

楼上的都强,谢谢了

全局变量在MT4编程中有两层含义,一是编程领域中常规的全局变量含义,即独立于所有函数之外定义的变量,生命周期覆盖整个程序;还有一个就是MT4中独有的:在同一MT4客户端内,所有的指标、脚本和EA都可共享同一全局变量:
GlobalVariable,这个概念类似于编程领域中的共享内存区域;下面简单介绍一下其用法。
首先是必须用到的三个函数:GlobalVariableSet()、GlobalVariableGet()、GlobalVariableDel()。顾名思义,这三个函数的作用分别是设置、获取和删除GlobalVariable。在任何一个指标、脚本和EA中,可用GlobalVariableSet来设置一个GlobalVariable,如:

GlobalVariableSet(“test”, 1.2345);

这就设置好了,把这个指标挂到任何一张图表之上后,在同一个MT4客户端下运行的任何指标、脚本和EA都能读取到这个GlobalVariable了,读取方法:

GlobalVariableGet(“Test”);

最后,如果我们不需要这个GlobalVariable了,就可以这样把它删除了:

GlobalVariableDel(“Test”);

需要注意:一是GlobalVariable只能是double类型的数据,不能把string、数组之类的赋给它,否则编译的时候虽然不会报错,但其实是无效的;二是GlobalVariable的生命周期是名符其实的“全局”,在设置了一个GlobalVariable后,如果不用GlobalVariableDel来删除它,它将会一直存在,无论设置它的指标、脚本和EA是否已被删除,甚至MT4关闭后也会存在,下次重新启动MT4时这个GlobalVariable仍然是可用的!善用这点,在设计交易程序的时候可说是如虎添翼,呵呵!

/
要添加评论,请登录注册