“新的 Tick 订单号首先到来,而这时你的指标值还停留在多少根K线以前?” 哪里看到的?
无连接的时候不执行,柱形数量不足也不执行。
if(!IsConnected()) { Alert("No connection!"); return(0); } if(Bars<50 || IsTradeAllowed()==false) { Alert("Trade is not Allowed"); return(0); }
luenbo:
“新的 Tick 订单号首先到来,而这时你的指标值还停留在多少根K线以前?” 哪里看到的?
无连接的时候不执行,柱形数量不足也不执行。
向版主学习了,谢谢!
无连接的时候,没有Tick 系统自然是不执行的,(OnTick()函数没有订单号 )是不会执行的。
当重新连上的那一刹那,OnTick 要接受 订单号。
cntyrone:
无连接的时候,没有Tick 系统自然是不执行的,(OnTick()函数没有订单号 )是不会执行的。
当重新连上的那一刹那,OnTick 要接受 订单号。
从 "New Bar" (新柱)事件处理程序 这篇文章可以看出,如果是多周期或多币种 EA ,即使利用新柱形成进行判断,也会受到断线的影响。
如何有效的判断新柱,这篇文章给出一个通用的方法,可参考
都是高手啊,学习了
任何原因引起的断线(经纪商或服务器),都会导致指标的重新计算,用新柱形成后进行判断的EA还好点,如果是用Tick进行判断的就有点
麻烦了,因为一旦网络连接上,新的 Tick 订单号 首先到来,而这时你的 指标值 还停留在多少根K线以前。
因为,复制缓冲区的 Copy... 函数不管你是否准备好,它都要复制,而指标的计算有些延迟。
当EA交易或脚本要求数据时,来自服务器的下载 会开始,如果终端本地没有这些数据,要求建立的时序列就会开始,如果数据可以从本地历史建立但尚未准备好。函数在超时期满时,会返回一定数量的准备好的数据,但是历史下载会继续,在下一个类似要求函数中会返回更多数据。
加个Sleep(1000) 函数延迟一下 ?
OnTick(){ if(指标值==0 或者 指标值还==以前) Sleep(1000) ; return;}
这样是否对付的了断线?