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: 3824
Beiträge: 36909
Benutzer: 6.076
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: Spitzmaus
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 18 Stunden
- Spitzmaus
vor 21 Stunden
- juleslesqu...
vor einem Tag
- hmf44
vor 2 Tagen
- Crossa
vor 2 Tagen
- snatshit

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 78
Gesamt: 80
Team: 0
Team:  
Benutzer:  Domke01, juleslesquet
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 11
Trader93 befindet sich auf einem aufstrebenden Ast
Post Stop Loss ODER Trendwechsel

Guten Abend zusammen,

ich bin - mal wieder- auf eure Hilfe angewiesen. Ich habe aktuell folgendes Problem:

Derzeit wird die Order ausschließlich dann geschlossen, wenn der Trend (Moving Average) sich dreht. Da mir aber dabei möglicherweise zu hohe umkalkulierbare Verluste entstehen, wollte ich zusätzlich zu dieser Logik einen SL einbauen, um den Maximalverlust zu deckeln.

Hierbei ergibt sich aber bei mir die Problematik, dass der EA durch den SL "zerschossen" wird - Hab erst den SL und dann den Code für die "Trendwende". Der Code an sich funktioniert, nur generiert er interessanterweise deutlich weniger Trades. Daher die Frage:

Habt ihr eine Idee, wie man die beiden Komponenten verbinden kann? Quasi:

Schließe die Long Order, wenn der Kurze den Langen MA kreuzt, oder du 25% im Verlust bist.
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 11
Trader93 befindet sich auf einem aufstrebenden Ast
Standard

Aktuell sieht es so aus

Code:
  
// SL Long setzen
   if (OrderSelect(LongOrder,SELECT_BY_TICKET)== true)
   {
   if (OrderCloseTime()== 0 && OrderStopLoss()==0)
   {
   double StopLoss= NormalizeDouble(OrderOpenPrice()/(1+(SL_prozent/100)),Digits);
   bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),0,Yellow);
   }
   }
 // Trendwechsel von Long auf Short
      if (OrderSelect(LongOrder,SELECT_BY_TICKET)== true)
      {
      if((MAkurz<MAlang) == true)
       {
      bool LongOrderGeclosed = OrderClose(LongOrder,OrderLots(),Bid,10,Blue);
      if (LongOrderGeclosed==true) LongOrder=0;
       }
    
      }
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 11
Trader93 befindet sich auf einem aufstrebenden Ast
Standard

Nach mehrmaligem Lesen habe ich das Gefühl, dass der Kern der Aussage noch nicht ganz raus kommt. Und zwar benötige ich einen Tipp/Hinweis, wie ich die beiden Dinge miteinander verknüpfen kann. Wenn ich den SL drin habe, schließt er die Order aufgrund des MA Crossings nicht mehr... Ziel soll einfach nur sein, dass das MA Crossing die Primärexitlogik ist und der SL quasi nur unterstützend agiert und den maximalen Verlust pro Trade deklariert. Nur bin ich leider mit meinen minimalistischen Programmierfähigkeiten nicht in der Lage sowas ohne Hilfe hinzubekommen. Aber ich möchte es lernen

Über Tipps, der Spezialisten freue ich mich sehr
Mit Zitat antworten
  #4 (permalink)  
Alt vor 2 Wochen
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 312
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Versuch den SL und den Kreuzungspunkt NICHT zu verknüpfen, sondern hintereinander abzufragen.
Zuerst den Kreuzungspunkt, dann den SL.

Und ein kleiner Programmierhinweis:
Code:
if((MAkurz<MAlang) == true)

es reicht:

if(MAkurz<MAlang)
detto:
Code:
 if (OrderSelect(LongOrder,SELECT_BY_TICKET)== true)

vereinfacht:

 if (OrderSelect(LongOrder,SELECT_BY_TICKET))
Grüße, Otto
Mit Zitat antworten
  #5 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 11
Trader93 befindet sich auf einem aufstrebenden Ast
Standard

Danke für deinen Hinweis hinsichtlich der Redundanzen. Diese nehme ich raus, merci.

Verstehe ich dich richtig, dass ich die beiden Codes nur umstellen muss und dort nicht extra eine Art „Bindebefehl“ rein muss?

Sorry für die blöden Fragen
Mit Zitat antworten
  #6 (permalink)  
Alt vor 2 Wochen
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 312
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Blöde Gegenfrage: warum verwendest du nicht den MT5 ?
Da könnte ich dir wesentlich besser helfen.

Ich versuche deine Frage in Pseudocode zu beantworten.
Das ganze wär für die Ereignisprocedur OnTick()
Code:
void OnTick()
  {
   if(offenePosition)
      {
         if(posLong)
           {                  // pos is long
            if(maCrossShort)
               drehe_position;
            if(SL_long_trigger)
               closeLong;
           }
         else
           {                  // pos is short
            if(maCrossLong)
               drehe_position;
            if(SL_short_trigger)
               closeShort;
           }
      }
   else        // keine position offen
      {
         if(maCrossShort)
            open_short;
         if(maCrossLong)
            open_long;
      }
  }
Ich hoffe das hilft dir weiter.

Es ist irgendwie ein Jammer, das es da keine vernünftige Codebibliothek gibt
und jeder das Rad neu erfinden muss.

Grüße, Otto
Mit Zitat antworten
  #7 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 11
Trader93 befindet sich auf einem aufstrebenden Ast
Standard

Ich muss ein wenig zurück rudern. Wenn ich das "== true" entferne, führt dies zu Fehlern im Programm.

Aber deinen Pseudocode (danke dafür) habe ich versucht umzusetzen.
Zuerst das Positive: Der EA macht die Tradeanzahl die ich erwartet habe. ABER: Der EA macht jetzt aber mehr Verluste?! Obwohl der SL_prozent mit 25definiert wird. Lt. Strategietester ist der größte Verlusttrade bei 0.1 Lot bei 269 EUR, während das reine schließen einen max. Verlust von 87,50 EUR generiert. Irgendwo ist da noch der Wurm drin, wenn die Sicherheitsmaßnahme das Loss quasi mehr als verdreifacht.
Ideen, was ich falsch mache?

Code:
{
.
.
.
// Trendwechsel von Long auf Short
      if (OrderSelect(LongOrder,SELECT_BY_TICKET)== true)
      {
         if((MAkurz<MAlang) == true)
            {
       //Order Closing
               bool LongOrderGeclosed = OrderClose(LongOrder,OrderLots(),Bid,10,Blue);
               if (LongOrderGeclosed==true) LongOrder=0;
            }
       else
            {
       //SL
               if (OrderCloseTime()== 0 && OrderStopLoss()==0)
                {
                  double StopLoss= NormalizeDouble(OrderOpenPrice()/(1+(SL_prozent/100)),Digits);
                  bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),0,Yellow);
                }
      
            }
      //Trendwechsel von Short auf Long
      
      if (OrderSelect(ShortOrder,SELECT_BY_TICKET)== true)
      {
         if ((MAkurz>MAlang)== true)
             {
      //Order Closing
                bool ShortOrderGeclosed = OrderClose(ShortOrder,OrderLots(),Ask,10,Green);
                if (ShortOrderGeclosed==true) ShortOrder=0;
             }
       else
             {
       //SL
               if (OrderCloseTime()== 0 && OrderStopLoss()==0)
                {
                  double StopLoss= NormalizeDouble(OrderOpenPrice()*(1+(SL_prozent/100)),Digits);
                  bool OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,OrderTakeProfit(),0,Yellow);
                }
             }
      }
      }
.
.
.
return(0);
}
Mit Zitat antworten
Antwort

Lesezeichen


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 15:23 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
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.
-----------------------------------------------------------------------------------------------------------------------------