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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3745
Beiträge: 36591
Benutzer: 5.902
Aktive Benutzer: 519
Links: 80
Wir begrüßen unseren neuesten Benutzer: Polytrade
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Stunden
- Polytrade
vor 8 Stunden
- exspas432
vor 19 Stunden
- elgaza
vor einem Tag
- DeSaint
vor einem Tag
- DeSaint123...

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 98
Gesamt: 101
Team: 0
Team:  
Benutzer:  Breakout25, ForexMax, Lena
Freunde anzeigen

Empfehlungen

Werbung

Like Tree2Likes
  • 1 Post By Leopold
  • 1 Post By Leopold
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 91
Lena befindet sich auf einem aufstrebenden Ast
Standard Trademanger

Hallo zusammen,
kennt von euch vielleicht einer einen "vernünftigen" Trademanger?
Mir geht es eigentlich nur um eine einzige Funktion. Und zwar sollen bestehende Positionen beim erreichen des beim platzieren der Order angegbenen TP um 50% reduziert werden und für die verbleibenden 50% der TP verdoppelt. Zudem der SL auf BE nachgezogen.

Ich würde mich auch freuen wenn mir jemand einen Tipp geben könnte wie ich sowas programmieren kann. Hilfe bei der Logik!
Mit Zitat antworten
  #2 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 117
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

zu den 2 TakeProfits: du könntest ja generell 2 Positionen eröffnen mit jeweils der halben Lotsize. Dann kannst du für die beiden Positionen getrennte TP's festlegen. Das wäre meiner Meinung die einfachste Lösung.

---Leopold---
Lena likes this.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 117
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Zum BE: Ich möchte sowieso eine Funktion zum nachziehen auf BE schreiben. Wenn es sich ausgeht werd ich diese heute nachmittag schreiben und diese dann posten. Meine Herangehensweise wäre wenn ein vielfaches des Risikos erreicht ist, wird der Stop auf BE nachgezogen.

---Leopold---
Lena likes this.
Mit Zitat antworten
  #4 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 117
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

so hab das mal geschrieben.

Code:
void Check_BreakEvenLevels (int EA_ID, double Faktor_BreakEvenLevel)
   {
   ResetLastError();
   
   for (int i = OrdersTotal() - 1; i >= 0; i--)
      {
      bool Order_Select = OrderSelect(i, MODE_TRADES);
      
      if (Order_Select == True)
         {
         if (OrderMagicNumber() == EA_ID && OrderType() <= 1)
            {
            double OpenPrice = OrderOpenPrice(), StopLossPrice = OrderStopLoss();
            
            if (OrderType() == OP_BUY && StopLossPrice != 0 && StopLossPrice < OpenPrice)
               {
               double BreakEvenLevel = OpenPrice + ((OpenPrice - StopLossPrice) * Faktor_BreakEvenLevel);
               if (Bid >= BreakEvenLevel)
                  {
                  bool Order_Modify = OrderModify(OrderTicket(), OpenPrice, OpenPrice, OrderTakeProfit(), 0);
                  if (Order_Modify == False) Print("Fehler bei OrderModify. Ticket: ", OrderTicket(), "Error: ", GetLastError());
                  }
               }
            
            else if (OrderType() == OP_SELL && StopLossPrice != 0 && StopLossPrice > OpenPrice)
               {
               double BreakEvenLevel = OpenPrice - ((StopLossPrice - OpenPrice) * Faktor_BreakEvenLevel);
               if (Ask <= BreakEvenLevel)
                  {
                  bool Order_Modify = OrderModify(OrderTicket(), OpenPrice, OpenPrice, OrderTakeProfit(), 0);
                  if (Order_Modify == False) Print("Fehler bei OrderModify. Ticket: ", OrderTicket(), "Error: ", GetLastError());
                  }
               }
            } //Ende Kontrolle MagicNumber
         } //Ende Kontrolle OrderSelect
      } //Ende For-Schleife Orders
   } //Ende Funktion Check_BreakEvenLevels
Getestet hab ich es noch nicht, sollte aber funktionieren.
Vielleicht kannst du das mal testen.

mfg Leopold

Geändert von Leopold (vor 4 Wochen um 14:31 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
manager, mql4, programmierung, programmierung metatrader, programmierung mql4, trade manager, trademanager


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 17:53 Uhr.



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