Einzelnen Beitrag anzeigen
  #10 (permalink)  
Alt 05.04.20
chesstigran chesstigran ist offline
Neues Mitglied
 
Registriert seit: Feb 2020
Beiträge: 20
chesstigran befindet sich auf einem aufstrebenden Ast
Standard BE Funktion

Hey Leute,
danke erstmal für jeden der sich die Zeit genommen hat um mir zu helfen.

Ich hab einfach von Scratch selbst eine BE Func geschrieben, die funktioniert.
Daher wollte ich sie hier einfach mit euch teilen, damit auch andere Leute die damit strugglen hier eine Lösung haben:

Code:
double PIP; // Pips in Profit
double nd_PIP; // normalized Pips in Profit

void PipsInProfit() {      //Breakeven Func

for(int i = OrdersTotal() - 1; i >= 0; i--) {
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if(OrderType() == OP_BUY) {
         if(Bid > OrderOpenPrice()) { // falls der aktuelle Kaufpreis über dem OpenPrice deiner laufenden Order liegt rechne folgendes:
             PIP = Bid - OrderOpenPrice();
             nd_PIP = NormalizeDouble(PIP,Digits);
             //Comment(nd_PIP); dient zur Überprüfung ob er den Wert korrekt ausliest.
             }
             else {
             if(OrderOpenPrice() > Bid) {// falls der aktuelle Kaufpreis unter dem OpenPrice deiner laufenden Order liegt rechne folgendes:
               //return;
               PIP = OrderOpenPrice() - Bid; 
               nd_PIP = NormalizeDouble(PIP,Digits);
              //Comment("-",nd_PIP);
               }
             }
           }
           else {
           if(OrderType() == OP_SELL) {
              if(Ask > OrderOpenPrice()) {// falls der aktuelle Verkaufspreis über dem OpenPrice deiner laufenden Order liegt rechne folgendes:
              //return;
              PIP = Ask - OrderOpenPrice();
              nd_PIP = NormalizeDouble(PIP,Digits);
              //Comment("-",nd_PIP);
              }
              else {
              if(OrderOpenPrice() > Ask) {// falls der aktuelle Verkaufspreis unter dem OpenPrice deiner laufenden Order liegt rechne folgendes:
              PIP = OrderOpenPrice() -  Ask;
              nd_PIP = NormalizeDouble(PIP,Digits);
              //Comment(nd_PIP);
              }
              }
           }
         }
// da jetzt jede Möglichkeit durchgespielt wurde,  und man alle Werte ob im minus oder im Plus durchgerechnet wurde wird jetzt die BE Func definiert. Wenn der PIP Wert nun +40 ist dann wird BE gesetzt. 
         if(PIP == 40) {
         orderModify = OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
         }
       }
     }
}
Hoffe ich konnte euch allen auch damit helfen