假如一个条件成立,就退出或自动终止EA,应该怎么写啊,或用哪个函数????
俺觉得:EA运行返回即可, OnTick()函数最上方写入返回指令。
void OnTick() { if(......) return; }
不行啊...
好像都没有让EA自动停止的函数啊?
退出也可以啊,没个保险不安全呢
參考一下 ExpertRemove()
主要需要知道你是終止還是暫停的條件
xy45019980:
假如一个条件成立,就退出或自动终止EA,应该怎么写啊,或用哪个函数????
假如一个条件成立,就退出或自动终止EA,应该怎么写啊,或用哪个函数????
把on tick里面所有的内容都放在一个if下面就行。
xy45019980:
假如一个条件成立,就退出或自动终止EA,应该怎么写啊,或用哪个函数????
假如一个条件成立,就退出或自动终止EA,应该怎么写啊,或用哪个函数????
将EA置入定时器内,满足条件后,EA自动关闭定时器。如果定时器不再启动,EA永远不再运行。
//+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int A=10; int B=20; void OnTick() { //--- if(B>A) ExpertRemove(); }
簡單試驗一下 使用ExpertRemove()是終止EA
//+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int A=10; int B=20; void OnTick() { //--- if(B>A) { return; ExpertRemove(); } }
使用return是暫停EA
看一下報價表上面的EA在不在就知道了
這就是正確的用法
ExpertRemove 並不會立即終止 EA
而是在 OnTick / OnTimer 這類事件程序執行完之後,才去呼叫 OnDeinit
建議在呼叫 ExpertRemove 之後再加條 return 會比較保險