Hallo zusammen,
ich hänge aktuell an einem Problem fest und hoffe auf den richtigen Denkanstoß:
Der EA eröffnet eine Order und soll diese dann mit der folgenden Subroutine abarbeiten:
Wenn TP1 erreicht ist, erfolgt der erste Teilschluss der Position + Breakeven, und bei TP2 wird der TP gesetzt, sowie der SL auf TP1 nachgezogen.
Ich habe den EA jetzt einige Tage laufen lassen und ich erhalte bei Erreichen von TP1 immer die Fehlermeldung: INvalid ticket number for OrderModify.
Ich finde den Fehler mit der falschen Ticketnummer nicht. Hat jmand zufällig keine Tomaten auf den Augen?
Danke und Gruß,
Bucardo
Code:
///////Ordermanagement
void Ordermanagement()
{
for (int i = 0; i < OrdersTotal(); i++)
{
ph1=OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol() && (OrderMagicNumber() == Magic))
{
//Buy-Order
if(OrderType() == OP_BUY)
{
if(Bid > GlobalVariableGet(Symbol()+"_TP_1") && GlobalVariableGet(Symbol()+"_Remote_Buy_Management1") == 1)
{
ticket2=OrderClose(OrderTicket(),OrderLots() / 2,Bid,10);
if(ticket2 > 0)
{
ph1=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice() + 5 * Poin,0,0);
GlobalVariableDel(Symbol()+"_TP_1");
GlobalVariableDel(Symbol()+"_Remote_Buy_Management1");
GlobalVariableSet(Symbol()+"_Remote_Buy_Management2",1);
}
}
if(Bid > GlobalVariableGet(Symbol()+"_TP_2") && GlobalVariableGet(Symbol()+"_Remote_Buy_Management2") == 1)
{
ph2=OrderModify(OrderTicket(),OrderOpenPrice(),GlobalVariableGet(Symbol()+"_TP_2"),GlobalVariableGet(Symbol()+"_TP_3"),0,0);
GlobalVariableDel(Symbol()+"_TP_2");
GlobalVariableDel(Symbol()+"_TP_3");
GlobalVariableDel(Symbol()+"_Remote_Buy_Management2");
}
}
//Sell-Order
if(OrderType() == OP_SELL)
{
if(Ask < GlobalVariableGet(Symbol()+"_TP_1") && GlobalVariableGet(Symbol()+"_Remote_Sell_Management1") == 1)
{
ticket3=OrderClose(OrderTicket(),OrderLots() / 2,Bid,10);
if(ticket3 > 0)
{
ph=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice() - 5 * Poin,0,0);
GlobalVariableDel(Symbol()+"_TP_1");
GlobalVariableDel(Symbol()+"_Remote_Sell_Management1");
GlobalVariableSet(Symbol()+"_Remote_Sell_Management2",1);
}
}
if(Ask < GlobalVariableGet(Symbol()+"_TP_2") && GlobalVariableGet(Symbol()+"_Remote_Sell_Management2") == 1)
{
ph=OrderModify(OrderTicket(),OrderOpenPrice(),GlobalVariableGet(Symbol()+"_TP_2"),GlobalVariableGet(Symbol()+"_TP_3"),0,0);
GlobalVariableDel(Symbol()+"_TP_2");
GlobalVariableDel(Symbol()+"_TP_3");
GlobalVariableDel(Symbol()+"_Remote_Sell_Management2");
}
}
}
}
}