Re: [问题] MQL4程式问题

楼主: natureluke   2019-10-23 01:35:34
※ 引述《natureluke ()》之铭言:
: OrderSend(_Symbol,OP_BUY,0.01,Ask,9,sl,tp,"EA",mn,0,clrBlue);
: 请问在回测的时候,当价格达到tp或sl后,为什么EA会停止之后所有的交易?
: 换句话说,符合OrderSend的tp或sl条件后,如何重启EA交易呢?
: 附带说明,如果不设停损停利(tp=0, sl=0),则EA之后回测都正常,
: 先感谢回复!
找到这个问题了,
因为除了透过OrderSend的停损/停利(sl/tp),还有其他停损/停利的程式,例如
void StopLoss()
{
...
fOrder=false;//更改状态的旗标
}

void TakeProfit()
{
...
fOrder=false;//更改状态的旗标
}
问题在于透过OrderSend停损/停利(sl/tp)时,旗标的状态(fOrder)没改到
不过也衍伸另一个问题,
请问当触发OrderSend的停损/停利(sl/tp)时,除了用
if(OrdersTotal()==ordersTotal-1 && tickPrice==sl) {StopLoss();}

if(OrdersTotal()==ordersTotal-1 && tickPrice==tp) {TakeProfit();}
有其他更好的侦测方法吗?
换句话说,OrderSend的sl/tp被触发时该如何侦测呢?
再次先感谢回复!
作者: n33222 (满身菜味)   2019-10-28 12:50:00
单张策略用MAGIC NUM,多单策略我会再多加一个RULE去检测你的旗标状态是为了避免重复下单?,如果是我会比较推荐MAGIC NUM 搭配 BAR的方式。

Links booklink

Contact Us: admin [ a t ] ucptt.com