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: 4978
Beiträge: 44356
Benutzer: 7.222
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: AlbertZiz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Woche
- AlbertZiz
vor einer Woche
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982
vor 2 Wochen
- Thomas75

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 13.08.17
Neues Mitglied
 
Registriert seit: Aug 2017
Beiträge: 1
immic befindet sich auf einem aufstrebenden Ast
Standard Trailing Stop in EAs einbauen

Hallo,

ich bin auf der Suche nach einem TrailingStop, den ich in eine vorhandenen EA einbauen kann. Ich habe hier schon mehrere gefunden, sowohl intregrierte als auch Einzel-TrailingStops. Leider funktionieren alle nicht so richtig, wenn ich sie in meinen EA eingebaut habe. Alle lassen meinen Metatrader/Strategietester extrem langsam laufen bzw. abstürzen, sodass man kein vernünftige Backtesting machen kann. Bei denen, wo ich ein bisschen was im Visual Modus erkennen konnte, ist der TrailingStop nur teilweise ausgelöst worden und ist dann auch noch in die entgegengesetzte Richtgung mitgelaufen, anstatt stehen zu bleiben.
Habe es mit dem e-Trailing, dem TrailingStop, dem Trade-Protector und noch anderen versucht. Leider ohne Erfolg.

Hat einer eine Idee, wo man einen funktionierenden TrailingStop herbekommt, den man in EAs einbauen kann?
Würde mir enorm helfen
  #2 (permalink)  
Alt 16.08.17
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von immic Beitrag anzeigen
Leider funktionieren alle nicht so richtig, wenn ich sie in meinen EA eingebaut habe.
Naja, Copy&Paste ohne zu verstehen was der entsprechende Code macht, führt halt oft zu Inkompatibilitäten.
Zitat:
Zitat von immic Beitrag anzeigen
Bei denen, wo ich ein bisschen was im Visual Modus erkennen konnte, ist der TrailingStop nur teilweise ausgelöst worden und ist dann auch noch in die entgegengesetzte Richtgung mitgelaufen, anstatt stehen zu bleiben.
Ein Trailingstop ist ja auch kein "fertiger Baustein" an sich, welcher immer so zu funktionieren hat, wie es die allgemeine Definition vorgibt.
Ein Trailingstop ist eine erstellte, kleine Programmlogik, die sich so verhält, wie sie implementiert wurde.
Es gibt daher nicht "den einen Triailingstop".
Zitat:
Zitat von immic Beitrag anzeigen
Habe es mit dem e-Trailing, dem TrailingStop, dem Trade-Protector und noch anderen versucht. Leider ohne Erfolg.
Z.B. der e-Trailing ist im Code ja sehr schlank. Da du ihn aber anscheinend nicht verstanden hast, gehe ich davon aus,
das auch dein EA nicht von dir selbst programmiert wurde, oder?
Zitat:
Zitat von immic Beitrag anzeigen
Hat einer eine Idee, wo man einen funktionierenden TrailingStop herbekommt, den man in EAs einbauen kann?
Wenn du einfach mal drüber nachdenkst, was ein möglicher Trailingstop macht, so müsste es auch für dich umzusetzen sein,
sofern du schon programmiert hast.

Im einfachsten Fall hast du zwei Variablen als Eingabeparameter, z.B. so
Code:
input int TrailingStop_Abstand = 15;
input int TrailingStop_Schritt = 2;
In diesem Fall soll der Stoploss um 2 Pips nachgezogen werden, wenn dieser 17 Pips vom Kurs entfernt ist,
sodass er wieder einen Abstand von 15 Pips zum Kurs hat.

Als nächstes überlegst du dir, welche Order du mit einem Trailingstop versehen möchtest.
Im einfachsten Fall gehst du einfach alle offenen Positionen durch, z.B. so
Code:
int OrdersT = OrdersTotal();

for(int i=OrdersT-1; i>=0; i--)
{
   // Alle offenen Orders durchgehen...
}
und behandelst jede Order, abhängig von Typ in die eine oder andere Richtung. Zum Beispiel so
Code:
input int TrailingStop_Abstand = 15;
input int TrailingStop_Schritt = 2;

int OrdersT = OrdersTotal();
string O_Sym;
double O_Point, O_Price;

for(int i=OrdersT-1; i>=0; i--)
{
   // Alle offenen Orders durchgehen...
   OrderSelect(i,SELECT_BY_POS);
   ResetLastError();
   
   O_Sym = OrderSymbol();
   O_Point = MarketInfo(O_Sym,MODE_POINT);   // Größe eines Punktes im Symbol der Order
   
   if(_Digits == 3 || _Digits == 5)
      O_Point = O_Point*10;
   
   if(OrderType() == OP_BUY)
   {
      O_Price = MarketInfo(O_Sym,MODE_BID);  // Aktuellen Preis des entsprechenden Symbols
      
      if(OrderStopLoss() < O_Price-((TrailingStop_Abstand+TrailingStop_Schritt) * O_Point))
      {
         if(!OrderModify(OrderTicket(),OrderOpenPrice(),O_Price-(TrailingStop_Abstand*O_Point),OrderTakeProfit(),0))
            Alert("Order #",IntegerToString(OrderTicket())," konnte nicht modifiziert werden! Fehler Nr: ",IntegerToString(GetLastError()));
      }   
   }
   else if(OrderType() == OP_SELL)
   {
      O_Price = MarketInfo(O_Sym,MODE_ASK);  // Aktuellen Preis des entsprechenden Symbols
      
      if(OrderStopLoss() > O_Price+((TrailingStop_Abstand+TrailingStop_Schritt) * O_Point))
      {
         if(!OrderModify(OrderTicket(),OrderOpenPrice(),O_Price+(TrailingStop_Abstand*O_Point),OrderTakeProfit(),0))
            Alert("Order #",IntegerToString(OrderTicket())," konnte nicht modifiziert werden! Fehler Nr: ",IntegerToString(GetLastError()));
      }
   }
}
Hinweis
- Im Beispiel werden alle offenen Positionen bearbeitet. Daher können diese logischerweise unterschiedliche Symbole haben.
Bedenke das die Stops von anderen Symbolen erst aktualisiert werden, wenn ein neuer Tick im aktuellen Symbol kommt, sofern der Code in der OnTick() plaziert wird.
- Für die Fehlermeldungen wäre diese Seite hilfreich.
Thema geschlossen

Lesezeichen

Stichworte
ea, mql4, programmierung, programmierung metatrader, programmierung mql4, trailing, trailingstop

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 13:14 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.
-----------------------------------------------------------------------------------------------------------------------------