下载MetaTrader 5

你的EA 是怎么对付断线的?

要添加评论,请登录注册
数百万交易者们从MQL5程序库下载代码。与他们共享您的应用吧!
chunhua Zhao
654
chunhua Zhao 2013.11.20 08:37 

    任何原因引起的断线(经纪商或服务器),都会导致指标的重新计算,用新柱形成后进行判断的EA还好点,如果是用Tick进行判断的就有点

麻烦了,因为一旦网络连接上,新的 Tick 订单号 首先到来,而这时你的 指标值 还停留在多少根K线以前。 

      因为,复制缓冲区的  Copy...  函数不管你是否准备好,它都要复制,而指标的计算有些延迟。   

                 当EA交易或脚本要求数据时,来自服务器的下载 会开始,如果终端本地没有这些数据,要求建立的时序列就会开始,如果数据可以从本地历史建立但尚未准备好。函数在超时期满时,会返回一定数量的准备好的数据,但是历史下载会继续,在下一个类似要求函数中会返回更多数据。 

 

          加个Sleep(1000) 函数延迟一下 ?

                    OnTick(){  if(指标值==0   或者  指标值还==以前)    Sleep(1000) ;  return;}

 

      这样是否对付的了断线? 

enbo lu
版主
1947
enbo lu 2013.11.20 13:41  

“新的 Tick 订单号首先到来,而这时你的指标值还停留在多少根K线以前?”  哪里看到的?

无连接的时候不执行,柱形数量不足也不执行。 

    if(!IsConnected())
      {
       Alert("No connection!");
       return(0);
      }
    if(Bars<50 || IsTradeAllowed()==false)
      {
         Alert("Trade is not Allowed");
         return(0);
      }  

 

king1898
243
king1898 2013.11.20 14:59  
luenbo:

“新的 Tick 订单号首先到来,而这时你的指标值还停留在多少根K线以前?”  哪里看到的?

无连接的时候不执行,柱形数量不足也不执行。 

 

向版主学习了,谢谢!
chunhua Zhao
654
chunhua Zhao 2013.11.21 01:47  

    无连接的时候,没有Tick  系统自然是不执行的,(OnTick()函数没有订单号 )是不会执行的。

 

   当重新连上的那一刹那,OnTick  要接受 订单号。 

chunhua Zhao
654
chunhua Zhao 2013.12.09 14:31  
cntyrone:

    无连接的时候,没有Tick  系统自然是不执行的,(OnTick()函数没有订单号 )是不会执行的。

 

   当重新连上的那一刹那,OnTick  要接受 订单号。 

 

    从    "New Bar" (新柱)事件处理程序  这篇文章可以看出,如果是多周期或多币种 EA ,即使利用新柱形成进行判断,也会受到断线的影响。

    如何有效的判断新柱,这篇文章给出一个通用的方法,可参考


Min Yang
289
Min Yang 2013.12.26 08:31  
可以装一个掉线重连的软件。
shaobin huang
31
shaobin huang 2014.02.28 23:10  
都是高手啊,学习了
要添加评论,请登录注册