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