Hi, bin noch nicht so vertraut mit der mq4-programmierung.
In meiner Strategie eröffne ich gleichzeitig eine long- und eine shortposition. Je nachdem welche Position der beiden durch StopLoss geschlossen wird, soll sich der EA anders verhalten. Ich öffne die Positionen so:
Code:
ticket_long=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"Opening Position....",12345,0,Green);
if(ticket_long>0)
{
if(OrderSelect(ticket_long,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order opened : ",OrderOpenPrice());
trade_aktiv=1;
}
else
{
Print("Error opening BUY order : ",GetLastError());
}
// Short Position öffnen
ticket_short=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,"Opening Position....",12345,0,Red);
if(ticket_short>0)
{
if(OrderSelect(ticket_short,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ", OrderOpenPrice());
trade_aktiv=1;
}
else
{
Print("Error opening SELL order : ",GetLastError());
}
Ich habe jetzt auf zwei wegen versucht herauszufinden, ob die jeweilige Position noch offen ist, oder ob sie bereits geschlossen wurde. Hier am beispiel der long Position:
Variante 1:
Code:
if(!(OrderSelect(ticket_long,SELECT_BY_TICKET,MODE_TRADES))) // wenn long Position ausgestoppt wurde
{
Print("!! Long Position Ausgestoppt !!");
}
Variante 2:
Code:
OrderSelect(ticket_long,SELECT_BY_TICKET,MODE_TRADES);
closeTime=OrderCloseTime();
if (closeTime!=0)
{
Print("!! Long Position Ausgestoppt !!");
}
So bei Variante 1 sagt er immer die Position währe geschlossen, auch wenn sie offen ist.
Bei Variante 2 erkennt er nicht das sie geschlossen wurde.
Was mache ich falsch ?