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: 4484
Beiträge: 40726
Benutzer: 6.868
Aktive Benutzer: 253
Links: 80
Wir begrüßen unseren neuesten Benutzer: huseceti
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 14 Stunden
- huseceti
vor einem Tag
- petra25
vor 4 Tagen
- hk0163
vor 4 Tagen
- magnr1
vor 5 Tagen
- boypac007

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 96
Gesamt: 97
Team: 0
Team:  
Benutzer:  Indikator-Trading
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Jun 2020
Beiträge: 14
Michael_ befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,

kann mir keiner von den MQL4-Experten helfen??

LG,
Michael
Mit Zitat antworten
  #12 (permalink)  
Alt vor einer Woche
Neues Mitglied
 
Registriert seit: Jun 2020
Beiträge: 14
Michael_ befindet sich auf einem aufstrebenden Ast
Standard

Hallo und guten Abend zusammen,

ich hab den Fehler heute gefunden, es war wieder das Thema mit der 10. oder 11. Nachkommastelle (@traderdoc danke für den Hinweis zuvor!).

Eine letzte Frage zu diesem Thema: Ich ziehe den SL ja per Trailing Stop nach, und zwar zu jeder neuen M1-Kerze. @traderdoc ich weiß auch mittlerweile, warum der Strategietester nur ein einziges Mal den Fehler vorfindet: Und zwar deswegen, weil bei einem Trade der TP bei exakt einem M1-Close stattfindet (auf die Sekunde genau). Obwohl im EA so programmiert, dass er zuerst nach einer Order suchen soll und erst dann den SL bei Bedarf nachzieht, macht der Strategietester es umgekehrt. Er schließt den Trade im TP und will danach direkt nachziehen, gibt aber einen Fehler aus, weil die Order ja bereits geschlossen wurde.

Würde dieser Fehler auch "Live" passieren oder soll ich da was noch ändern am EA?

Danke gleich!

Lieben Gruß,
Michael
Mit Zitat antworten
  #13 (permalink)  
Alt vor einer Woche
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.376
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Das umgeht man, indem immer zuerst nach der Order gefragt (gesucht) wird, wenn z.B. getrailt werden soll. Ist die Order nicht mehr im Kasten der offenen Orders, ja dann braucht (kann) auch nicht mehr getrailt werden.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #14 (permalink)  
Alt vor einer Woche
Neues Mitglied
 
Registriert seit: Jun 2020
Beiträge: 14
Michael_ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Das umgeht man, indem immer zuerst nach der Order gefragt (gesucht) wird, wenn z.B. getrailt werden soll. Ist die Order nicht mehr im Kasten der offenen Orders, ja dann braucht (kann) auch nicht mehr getrailt werden.

traderdoc
Hallo traderdoc,

naja das ist ja das merkwürdige: Ich frage zuerst mit einer if-Schleife ab, ob die Order noch vorhanden ist, und erst dann frage ich in dieser Schleife, ob der Trailing-Stop notwendig ist.

Hier der Code:

HTML-Code:
if(OrderSelect(LongOrder1,SELECT_BY_TICKET)==true)
   { 
      //Trailing-Stop für LongOrder1:

      static datetime timestamp;
      datetime time = iTime(NULL, PERIOD_M1, 0);                        //Nachziehen des Trailing Stops nur bei jeder neuen M1-Kerze und NICHT jedem Tick!
      if(timestamp != time)
      {
      timestamp = time;

       double norm_iHigh = NormalizeDouble(iHigh(NULL,0,1),1);
                  
       double Initial_SL_Long = (OrderTakeProfit() - OrderOpenPrice()) * SL_Prozent/TP_Prozent1;           //Ursprünglicher SL in Punkten
       double TS_Long_Punkte = Initial_SL_Long * TS_Faktor;                                                //Trailing Stop in Punkten;
       double TS_Long_Kurs = NormalizeDouble(OrderStopLoss() + TS_Long_Punkte,1);

        if(OrderType() == OP_BUY && norm_iHigh > TS_Long_Kurs)
         {
  	     bool TS_Long = OrderModify(OrderTicket(), OrderOpenPrice(), norm_iHigh - TS_Long_Punkte, OrderTakeProfit(), 0);
         }
      }
   }
Mach ich da was falsch?
Mit Zitat antworten
  #15 (permalink)  
Alt vor einer Woche
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.376
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ja, denn mit SELECT_BY_TICKET sucht man prinzipiell nach der TicketNumber.
Die besitzt sowohl eine offene als auch eine geschlossene Order.
Bei einer offenen Order ist jedoch OrderCloseTime() = 0.
D.h. entweder per SELECT_BY_TICKET und der Abfrage, ob OrderCloseTime() = 0, dann muss die Order noch offen sein oder die Selektion über den Pool der offenen Orders per
SELECT_BY_POS mit MODE_TRADES
Dann werden nur die offenen Orders durchsucht, jedoch unter Benutzung des Index i.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #16 (permalink)  
Alt vor einer Woche
Neues Mitglied
 
Registriert seit: Jun 2020
Beiträge: 14
Michael_ befindet sich auf einem aufstrebenden Ast
Standard

Guten Abend traderdoc,

genau DAS hab ich noch nicht bedacht, das war auch der Fehler.
Vielen Dank für diesen Hinweis!

Lieben Gruß,
Michael
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
break-even, stop loss nachziehen

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 18:23 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.
-----------------------------------------------------------------------------------------------------------------------------