※ 引述《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被触发时该如何侦测呢?
再次先感谢回复!