HAllo kann mir jemand helfen wieso dieser Code nicht funktioniert?

 

Hallo zusammen wollte ein Code schreiben der mir sagt wieviel von meinen offen Orders profit macht und wieviel loss. Leider funktioniert er nicht wenn ich den Code im EA habe geht er zur ersten Buy order und nachher stoppt das ganze programm kann es dann nur nach abwürgen da immer steht "keine Rückmeldung". Hoffe jemand kann mir helfen und danke schon im vorraus

  static int UpTrendCountpositive;
  static int UpTrendCountnegative;
  static int OpenTrades;
   
  static double money;

   if(ExistPositions()){
   
      while(OpenTradesBuy()>0){
      
               OpenTrades = OrdersTotal();
               // close opened orders first
               int totaluptrades=OrdersTotal();
               
               for(int Up=totaluptrades-1; Up>=0; Up--)
                 {
                  if(OrderSelect(Up,SELECT_BY_POS,MODE_TRADES))
                    {
  
                    money= OrderProfit();
                    
                    if (money>0){
                     UpTrendCountpositive = UpTrendCountpositive + 1;
                     break;
                    }///Win
                     
                 
                    if (money<0){ 
                     UpTrendCountnegative = UpTrendCountnegative + 1;
                     break;
                    }///Loss
                   
                   
                   }
                   
                   }
                 }
              
   
   Comment("UpTrendCountpositive" + UpTrendCountpositive + NL +
            "UpTrendCountnegative" + UpTrendCountnegative + NL +
            "OpenTrades" + OpenTrades + NL);
   
   
   UpTrendCountpositive = 0;
   UpTrendCountnegative = 0;
   OpenTrades = 0;
   
   }
 
Gspandelino1410:

Hallo zusammen wollte ein Code schreiben der mir sagt wieviel von meinen offen Orders profit macht und wieviel loss. Leider funktioniert er nicht wenn ich den Code im EA habe geht er zur ersten Buy order und nachher stoppt das ganze programm kann es dann nur nach abwürgen da immer steht "keine Rückmeldung". Hoffe jemand kann mir helfen und danke schon im vorraus

Hallo , um dir helfen zu können fehlen wichtige Infos:


Welche Konto Art (Hedge oder Netting) ?

Die Funktion OpenTradesBuy() fehlt als Code ?

MQL5 oder MQl4 ?


Eine while Schleife ist immer sehr gefährlich da sie so "Keine Rückmeldung" enden kann.

Wichtig sind da Notmechanismen um aus der Schleife raus zukommen.


OpenTrades= OrdersTotal() ;   Das geht auch schief. Eine Order ist kein Offener Trade


Nutze die CTrade Lib . Dort ist alles vereinfacht möglich https://www.mql5.com/de/docs/standardlibrary/tradeclasses/ctrade


Gruß

 
Christian:

Hallo , um dir helfen zu können fehlen wichtige Infos:


Welche Konto Art (Hedge oder Netting) ?

Die Funktion OpenTradesBuy() fehlt als Code ?

MQL5 oder MQl4 ?


Eine while Schleife ist immer sehr gefährlich da sie so "Keine Rückmeldung" enden kann.

Wichtig sind da Notmechanismen um aus der Schleife raus zukommen.


OpenTrades= OrdersTotal() ;   Das geht auch schief. Eine Order ist kein Offener Trade


Nutze die CTrade Lib . Dort ist alles vereinfacht möglich https://www.mql5.com/de/docs/standardlibrary/tradeclasses/ctrade


Gruß

also konto art weiss ich nicht

Trade momentan USD/JPY

aber es ist in MQL4

Und hier ist der beschreib der funktion OpenTradesbuy()



int OpenTradesBuy()
  {
   int icnt,itotal,retval;

   retval=0;
   itotal=OrdersTotal();

   for(icnt=itotal-1;icnt>=0;icnt--)
     {
      OrderSelect(icnt,SELECT_BY_POS,MODE_TRADES);
      if(OrderType()==OP_BUY)
         retval++;

     }

   return(retval);
  }

ja wie würden Sie den die Funktion schreiben wenn sie ermitteln wollen wieviel ihrer offenen Trades im minus oder im Plus sind ?

gruss

 
also konto art weiss ich nicht

Ist bei MQL4 unrelevant.

Es gibt dort nur eine Konto-Art.


Der Post gehört dann in die Rubrik https://www.mql5.com/de/forum/mql4


Für MQL4 können gerne andere User antworten da ich nur MQL5 kenne und nutze.

Empfehle ich auch immer gerne alllen MQL4 Nutzern.


Gruß

Grund der Beschwerde: