Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 01.10.16
Bucardo Bucardo ist offline
Mitglied
 
Registriert seit: Nov 2014
Beiträge: 31
Bucardo befindet sich auf einem aufstrebenden Ast
Standard Problem mit OrderModify

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");
    }
   }
  }
 }
}