分析ReConnecter.mq4脚本程序. - 页 2

 
y2k_connect 写道 >>

我是这样想的。

用next_connect来定义,每隔10分钟重新连一次服务器。

只需要ea的start()中增加一次判断,就可以实现定时重新登陆的功能。

这样处理后,即使电脑重新启动,也可以继续执行ea。减少人工操作的步骤。



对于每间隔一定的时间就重连一次,个人觉得不是很好。

1、每次重连都会有个延时的短的几秒长的几十秒。反而会造成行情数据不连续,尤其是赶上数据行情的时候。

2、断线和假死现象一天并不会出现太多次,多数时间是顺畅的,反复登录反而会增加资源消耗和服务器负担。

3、我测试过频繁的重新登录容易造成MT4直接死掉了。

 

我的解决方案倾向于用

while(IsStopped()==false)

制造一个可控的死循环,从而解决tick触发的问题。保证不论有没有行情数据是否断线,后续的控制操作本地都能执行。

然后检测断线和假死(长时间没有行情)从而触发重连动作。

 
xfxyldj 写道 >>

我想你的逻辑不对。

在自动断线检测重连这个问题中,是要解决断线或者假死(没有行情数据到达)然后让系统重现登录下。

而当断线或者假死的时候是没有tick到达的,因此tick出发的start()函数就不能运行了,这样里面的代码就不可能再执行了。

所以必须把检测和重连的代码放在

这个死循环里面才可以。不然都没有tick了,EA根本就不执行任何代码了

是的,我的思路是错误的。忘记了ea在没有收到新的报价时,是不会执行的。

看来,在mt4中,只能使用脚本程序重新连接mt4服务器。

但是,这样就解决不了mt4重新启动后,再次断线或者假死的情况。

 

如果MT启动时自动装入script就可以,

原因: