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: 4443
Beiträge: 41059
Benutzer: 6.832
Aktive Benutzer: 266
Links: 80
Wir begrüßen unseren neuesten Benutzer: burkijan
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- burkijan
vor 2 Tagen
- Chidiroglo...
vor 3 Tagen
- JapanTrade...
vor 5 Tagen
- chroma
vor 6 Tagen
- statisticm...

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 112
Gesamt: 115
Team: 0
Team:  
Benutzer:  Indikator-Trading, stoffel, TogoTiger
Freunde anzeigen

Empfehlungen

Antwort
 
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?
Mit Zitat antworten
  #2 (permalink)  
Alt 30.03.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.336
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.
Mit Zitat antworten
  #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
Mit Zitat antworten
  #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.
Mit Zitat antworten
  #5 (permalink)  
Alt 01.04.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.336
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.
Mit Zitat antworten
  #6 (permalink)  
Alt 01.04.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 932
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?
Mit Zitat antworten
  #7 (permalink)  
Alt 01.04.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 932
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.
Mit Zitat antworten
  #8 (permalink)  
Alt 01.04.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.336
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.
Mit Zitat antworten
  #9 (permalink)  
Alt 02.04.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 932
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Natürlich nicht die exakt selben Zeichen. Aber das Prinzip müsste funktionieren.
Mit Zitat antworten
  #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
Mit Zitat antworten
Antwort

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 +2. Es ist jetzt 10:17 Uhr.





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