Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
Benutzer: 7.220
Aktive Benutzer: 82
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 268
Gesamt: 268
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 30.03.20
Neues Mitglied
 
Registriert seit: Feb 2020
Beiträge: 20
chesstigran befindet sich auf einem aufstrebenden Ast
Standard BE Func setzt instant BE ohne auf im Profit zu achten

Moin Leute,

Code:
double UpdateToBE = 50.00;

void UpdateBE()
{
 if(UpdateToBE <= 0) return;

 for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
    if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
       if(OrderType() == OP_BUY && OrderOpenPrice() > OrderStopLoss() && Bid - OrderOpenPrice() >= UpdateToBE * Point)
  	 {
  	  orderModify = OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
  	 }
  		 
  	if(OrderType() == OP_SELL && OrderOpenPrice() < OrderStopLoss() && OrderOpenPrice() - Ask >= UpdateToBE * Point)
  	 {
  	  orderModify = OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
  	 }
      }
    }
}
Mein Problem ist, dass er sobald der Trade auch nur einen Punkt im Profit ist das Stoploss instant auf breakeven setzt. Weiß jemand wo das Problem ist?

Ich habe ja definiert er soll es erst auf BE setzen wenn der Trade 50 Punkte im Profit ist, aber er beachtet es gar nicht. Vorschläge?
  #2 (permalink)  
Alt 30.03.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Code:
if(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderOpenPrice() > OrderStopLoss() && Bid - OrderOpenPrice() >= UpdateToBE * Point)
   {
      orderModify = OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
   }
  		 
if(OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderOpenPrice() < OrderStopLoss() && OrderOpenPrice() - Ask >= UpdateToBE * Point)
   {
      orderModify = OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
   }
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 31.03.20
Neues Mitglied
 
Registriert seit: Feb 2020
Beiträge: 20
chesstigran befindet sich auf einem aufstrebenden Ast
Standard

Ok danke dir, ich probiers aus hoffe das klappt
  #4 (permalink)  
Alt 01.04.20
Neues Mitglied
 
Registriert seit: Feb 2020
Beiträge: 20
chesstigran befindet sich auf einem aufstrebenden Ast
Standard

Nop, es hat wieder nicht geklappt. Noch irgendeine Idee woran es liegen könnte? Ich will mit meinem EA endlich auf Echtgeld gehen, aber ich arbeite seit 2 Monaten an dieser BE Func die nicht funktioniert ich bin echt am verzweifeln.
  #5 (permalink)  
Alt 01.04.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Dann liegt es an etwas anderem.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 01.04.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hab gerade nicht viel Zeit, also sorry, wenns falsch ist...



Liegts vielleicht am Update-Wert von fünfzig! € / $ / Pfund / was auch immer? Versuch vielleicht mal nen int Wert und NormalizeDouble.

Vielleicht muss die Berechnung bei OrderModify auch in Klammern?
Code:
... && ( Bid - OrderOpenPrice() ) >= UpdateToBE * Point)...
Code:
...&& ( OrderOpenPrice() - Ask ) >= UpdateToBE * Point)...
Ich würd auch mal statt >= nur </> versuchen. Und ist da ein Vergleich bei Modify Sell nicht falsch herum?
  #7 (permalink)  
Alt 01.04.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Code:
extern int Order_Punkte_im_Profit = 50;
Code:
 if( OrderType == OBBuy ... {

double Buy_BE = NormalizeDouble(OrderOpenPrice() + Order_im_Profit );

if( Ask > Buy_BE ) OrderModify(... , -Buy_SL = Buy_BE- , ...) } ;
So ungefähr würde ich das wohl machen.
  #8 (permalink)  
Alt 01.04.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Dann würde es mit Sicherheit falsch sein.
An dem Code stimmt so gut wie gar nichts.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #9 (permalink)  
Alt 02.04.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Natürlich nicht die exakt selben Zeichen. Aber das Prinzip müsste funktionieren.
  #10 (permalink)  
Alt 05.04.20
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
Thema geschlossen

Lesezeichen

Stichworte
breakeven ea, breakeven expert advisor, breakeven optimieren

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------