Ctrade OrderModify

 

void OrderModfiy(const ulong OrderNumber)
  {
   ResetLastError();
   double sl,tp,price=0;

   OrderArrayFill();

   for(int i=0;i<cnt;i++)
     {
      bool sel=OrderSelect(ticketnumber[i]);
      if(ObjectFind(0,IntegerToString(ticketnumber[i])+"TP")>-1) tp=NormalizeDouble(ObjectGetValueByTime(0,IntegerToString(ticketnumber[i])+"TP",TimeCurrent(),0),_Digits);
      else tp=OrderGetDouble(ORDER_TP);
      if(ObjectFind(0,IntegerToString(ticketnumber[i])+"SL")>-1) sl=NormalizeDouble(ObjectGetValueByTime(0,IntegerToString(ticketnumber[i])+"SL",TimeCurrent(),0),_Digits);
      else sl=OrderGetDouble(ORDER_SL);
      if(ObjectFind(0,IntegerToString(ticketnumber[i])+"TrendLine")>-1) {price=NormalizeDouble(ObjectGetValueByTime(0,IntegerToString(ticketnumber[i])+"TrendLine",TimeCurrent(),0),_Digits);}
      else trade.OrderDelete(ticketnumber[i]);

      Print(ticketnumber[i]," SL ",sl," TP ",tp," price ",price);
      
      trade.OrderModify(ticketnumber[i],price,sl,tp,ORDER_TIME_GTC,0,0);
/*
      MqlTradeRequest request={0};
      MqlTradeResult  result={0};


      ZeroMemory(request);
      ZeroMemory(result);
      //--- Parameter der Transaktion setzen
      request.action=TRADE_ACTION_MODIFY; // Typ der Transaktion
      request.position=ticketnumber[i];   // das Ticket der Position
      request.price=price;
      request.symbol = _Symbol;           // Symbol 
      request.sl=sl;                      // Stop Loss der Position
      request.tp=tp;                      // Take Profit der Position
      request.magic=Magic;         // MagicNumber der Position

      //--- Informationen über die Modifizierung anzeigen
      if(!OrderSend(request,result))
         PrintFormat("OrderSend error %d",GetLastError());  // wenn die Anfrage konnte nicht gesendet werden, den Fehlercode anzeigen
    PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);
*/
     }
   if(GetLastError()!=0) Print("Failure at modify Buy or Sell Order in Trend: ",GetLastError());

  }
void
OrderModfiy(const ulong OrderNumber)   {    ResetLastError();    double sl,tp,price=0;    OrderArrayFill();    for(int i=0;i<cnt;i++)      {        bool sel=OrderSelect(ticketnumber[i]);       if(ObjectFind(0,IntegerToString(ticketnumber[i])+"TP")>-1) tp= NormalizeDouble(ObjectGetValueByTime(0,IntegerToString(ticketnumber[i])+"TP",TimeCurrent(),0),_Digits);        else tp=OrderGetDouble(ORDER_TP);        if(ObjectFind(0,IntegerToString(ticketnumber[i])+"SL")>-1) sl= NormalizeDouble(ObjectGetValueByTime(0,IntegerToString(ticketnumber[i])+"SL",TimeCurrent(),0),_Digits);        else sl=OrderGetDouble(ORDER_SL);        if(ObjectFind(0,IntegerToString(ticketnumber[i])+"TrendLine")>-1) {price= NormalizeDouble(ObjectGetValueByTime(0,IntegerToString(ticketnumber[i])+"TrendLine",TimeCurrent(),0),_Digits);}        else trade.OrderDelete(ticketnumber[i]);       Print(ticketnumber[i]," SL ",sl," TP ",tp," price ",price);              trade.OrderModify(ticketnumber[i],price,sl,tp, ORDER_TIME_GTC,0,0); /*       MqlTradeRequest request={0};       MqlTradeResult  result={0};       ZeroMemory(request);       ZeroMemory(result);       //--- Parameter der Transaktion setzen       request.action=TRADE_ACTION_MODIFY; // Typ der Transaktion       request.position=ticketnumber[i];   // das Ticket der Position       request.price=price;       request.symbol = _Symbol;           // Symbol       request.sl=sl;                      // Stop Loss der Position       request.tp=tp;                      // Take Profit der Position       request.magic=Magic;         // MagicNumber der Position       //--- Informationen über die Modifizierung anzeigen       if(!OrderSend(request,result))          PrintFormat("OrderSend error %d",GetLastError());  // wenn die Anfrage konnte nicht gesendet werden, den Fehlercode anzeigen     PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order); */      }    if(GetLastError()!=0) Print("Failure at modify Buy or Sell Order in Trend: ",GetLastError());   }

hallo,


ich hab da ein kleines problem mit order modify, immer wenn ich als sl und tp 0 habe, dann setzt er mir das nicht. Wie mach ich das?

ich habs schon mit ctrade und mit einer manuell eingabe der order probiert


Alles mit dem gleichen Ergebnis Retcode 10013


Lg amando

 
amando:

hallo,


ich hab da ein kleines problem mit order modify, immer wenn ich als sl und tp 0 habe, dann setzt er mir das nicht. Wie mach ich das?

ich habs schon mit ctrade und mit einer manuell eingabe der order probiert


Alles mit dem gleichen Ergebnis Retcode 10013


Lg amando

Auch hier wieder der Tip ein Script zu schreiben.

OrderArrayFill();

WTF is das ? :-)

 
Christian:

Auch hier wieder der Tip ein Script zu schreiben.

WTF is das ? :-)

Bin noch nicht dazu gekommen, aber ich habs gelöst, ist am tablett immer nur so mühsam hier zu posten

 
amando:

Bin noch nicht dazu gekommen, aber ich habs gelöst, ist am tablett immer nur so mühsam hier zu posten

Ahja, also auf die idee wäre ich nicht gekommen 😂😂

interessant das dies nur bei ctrade auftritt, und seitwann man eine pending order async setzt ist mir auch nicht klar. Das geht eigentlich nicht

 
amando:

Ahja, also auf die idee wäre ich nicht gekommen 😂😂

interessant das dies nur bei ctrade auftritt, und seitwann man eine pending order async setzt ist mir auch nicht klar. Das geht eigentlich nicht

? ... Vermischt du da was ?

 
Christian:

? ... Vermischt du da was ?

Ja das gehört zu ctrade thread