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