Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36909
Benutzer: 6.077
Aktive Benutzer: 493
Links: 80
Wir begrüßen unseren neuesten Benutzer: Batangenyo
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 13 Stunden
- Batangenyo
vor einem Tag
- Spitzmaus
vor einem Tag
- juleslesqu...
vor 2 Tagen
- hmf44
vor 2 Tagen
- Crossa

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

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 20.08.14
Neues Mitglied
 
Registriert seit: Mar 2014
Beiträge: 20
Eberhard befindet sich auf einem aufstrebenden Ast
Standard Laufzeitbegrenzung der Trades

Ich habe folgendes Problem:

Ich habe einen ExpertAdvisor unter Anwendung bzw. Änderung von CExpert erstellt, indem ich darin einen Array-Algorithmus eingesetzt habe und ihn dann (mittels StrategieTester) auf eine optimale TakeProfit-Einstellung eingestellt habe.

Jetzt möchte ich zusätzlich noch alle auf diese Weise generierten Trades auf eine bestimmte Laufzeit von z.B. drei Tagen begrenzen.

D.h. wenn nicht vorher schon das von mir eingestellte TakeProfit erfüllt ist, sollen die ausgelösten Trades spätestens nach drei Tagen stoppen.

Kann mir jemand einen guten Tipp geben?

Danke im Voraus!
  #2 (permalink)  
Alt 20.08.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

google bspw. nach timebased sl, da findet man einiges, bspw. How to code time-based stops @ Forex Factory
__________________
krank im Kopf aber sonst ganz nett
build 509 mql4 editor download
  #3 (permalink)  
Alt 21.08.14
Neues Mitglied
 
Registriert seit: Mar 2014
Beiträge: 20
Eberhard befindet sich auf einem aufstrebenden Ast
Standard

Danke, fxdaytrader,

vielleicht hätte ich hervorheben sollen, dass mein Programm in MQL5 innerhalb von CExpert geschrieben ist.

Jedenfalls finde ich in der MQL5-Anleitung keine vergleichbare, offensichtlich sehr einfache Funktion wie

TimeBasedSLdays.

Habe ich etwas übersehen?
  #4 (permalink)  
Alt 21.08.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Eberhard Beitrag anzeigen
Ich habe folgendes Problem:

Ich habe einen ExpertAdvisor unter Anwendung bzw. Änderung von CExpert erstellt, indem ich darin einen Array-Algorithmus eingesetzt habe und ihn dann (mittels StrategieTester) auf eine optimale TakeProfit-Einstellung eingestellt habe.

Jetzt möchte ich zusätzlich noch alle auf diese Weise generierten Trades auf eine bestimmte Laufzeit von z.B. drei Tagen begrenzen.

D.h. wenn nicht vorher schon das von mir eingestellte TakeProfit erfüllt ist, sollen die ausgelösten Trades spätestens nach drei Tagen stoppen.

Kann mir jemand einen guten Tipp geben?

Danke im Voraus!
Ja, kann ich.
1. Hängt das jetzt von Deinen Programmierkenntnissen ab,
ob
2. Du die Zeile if (TimeCurrent() > OrderOpenTime() + 259200) Closing();
an die richtige Stelle platzieren kannst.
3. oder Du über CExpert Deinen Wunsch nacheingeben kannst.
4. Möglichkeit ist, einen Programmierer das tun zu lassen.
5. Möglichkeit sollte evtl. für die Zukunft sein, die Programme gleich über einen Programmierer erarbeiten zu lassen. Dann kannst Du in der Regel zu jeder Zeit irgendetwas einfügen oder ändern lassen, ohne sich später die Frage zu stellen, ob es tatsächlich so funktioniert, wie man es wollte.

Zur o.g. Zeile:
Dort wird abgefragt, ob die Summe aus der Zeit der Eröffnung der Order und 3 weiteren Tagen (259200 Sekunden!) größer ist als die derzeitige Brokerzeit.
Sollte das der Fall sein, soll über das Anspringen der Funktion Closing() ein Schleißen erreicht werden.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 21.08.14
Neues Mitglied
 
Registriert seit: Mar 2014
Beiträge: 20
Eberhard befindet sich auf einem aufstrebenden Ast
Standard

Danke, traderdoc,

doch wie ich bereits fxdaytrader in meiner Antwort geschrieben hatte, arbeite ich mit MetaTrader5 und hier mit dem bereits dort vorgefertigten CExpert, d.h. in der Programmiersprache MQL5.

MQL5 unterscheidet zwischen Order und Position, also einem bereits begonnenen Trade.

In MQL5 gibt es die von Dir vorgeschlagenen Funktionen "OrderOpenTime()" und "Closing" nicht.

Mein ursprünglicher MQL5-Lösungsversuch, von mir plaziert im CExpert-TrailingStopLong(double sl,double tp), war:

if((long)TimeCurrent() - (long)PositionGetInteger(POSITION_TIME_MSC)>=3*24* 3600*1000)
sl=m_symbol.NormalizePrice(m_position.PriceCurrent ());

Doch dieser Versuch mit StopLoss (sl) scheitert zumindest im StrategieTester. Dies wäre aber notwendig, damit ich die reale Renditeentwicklung unter verschiedenen Laufzeitbegrenzungseinstellungen überhaupt jeweils einigermaßen abschätzen kann.

Auch bin ich mir nicht sicher, ob meine if-Bedingung überhaupt im StrategierTester richtig erkannt bzw. umgesetzt werden kann.


Vielleicht hast Du noch eine Idee für die Lösung dieses Problems?
  #6 (permalink)  
Alt 21.08.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Sorry, hatte ich überlesen.
Dann sollte aber über
if (TimeCurrent() - PositionGetInteger(POSITION_TIME_MSC)>=259200000)
wenigstens möglich sein, das Überschreiten von 3 Tagen nach Orderöffnung zu erhalten.

Die Funkton Closing() gibt es weder im MQL4 noch in MQL5. Die mußt Du natürlich selber schreiben, je nachdem was und wie geschlossen werden soll.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 21.08.14
Neues Mitglied
 
Registriert seit: Mar 2014
Beiträge: 20
Eberhard befindet sich auf einem aufstrebenden Ast
Standard

Danke, traderdoc,

immerhin scheint meine if-Bedingung eigentlich nicht ganz falsch zu sein.

Möglicherweise hängt es deshalb tatsächlich an der "Closing"-Bedingung.

Wie gesagt, ich habe es mit StopLoss in Verbindung mit PriceCurrent versucht, bin aber damit nicht weitergekommen.

Eigentlich kann es doch nicht sein, dass das vorgefertigte MQL5-CExpert für eine Laufzeitbegrenzung keine Lösung erlaubt. Könnte es sein, dass das StopLoss in MQL5 selbst gar nicht auf eine zeitbezogene if-Bedingung reagiert. Es scheint nur auf einen eingestellten Price zu reagieren???

Dann müsste es doch wenigstens eine andere "Closing"-Bedingung geben, die auf eine zeitbegrenzende if-Bedingung reagiert?


Jedenfalls würde ich mich über einen weiteren Lösungsvorschlag freuen!
  #8 (permalink)  
Alt 21.08.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Die if-Bedingung ist entweder true oder false!
Die Anweisung, die darauf folgt, hat nichts mit der Struktur der if-Bedingung zu tun.
D.h.
if(.......) { //falls true
......
} else { //falls false
......
}
D.h. wenn die if -Bedingung eben true ist, dass werden die Anweisungen in der ersten {} ausgeführt.
Was in den Anweisungen drin steht, ist dem Klammerausdruck der Bedingung völlig egal!!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #9 (permalink)  
Alt 22.08.14
Neues Mitglied
 
Registriert seit: Mar 2014
Beiträge: 20
Eberhard befindet sich auf einem aufstrebenden Ast
Standard

Hallo traderdoc,

da ist wohl etwas schief gelaufen, denn eine if-Bedingung kenne ich in- und auswendig. Vielleicht habe ich mich ja auch etwas umständlich ausgedrückt.

Deshalb noch einmal mein ursprünglicher, aber zumindest im StrategieTester leider nicht funktionierender MQL5-Lösungsversuch. (Mir kommt es schon fast so vor, als wenn der StrategieTester immun ist für solche zeitabhängigen if-Bedingungen und dass es im realen Handelsablauf möglicherweise sogar doch funktioniert):

if((long)TimeCurrent() - (long)PositionGetInteger(POSITION_TIME_MSC)>=3*24* 3600*1000)
sl=m_symbol.NormalizePrice(m_position.PriceCurrent ());


Wenn die if-Bedingung

if((long)TimeCurrent() - (long)PositionGetInteger(POSITION_TIME_MSC)>=3*24* 3600*1000)

implementiert im CExpert von MetaTrader 5 so aber tatsächlich funktionieren sollte (wovon ich eben nicht sicher ausgehen kann), dann funktioniert jedenfalls nicht das sich anschließende StopLoss-Closing:

sl=m_symbol.NormalizePrice(m_position.PriceCurrent ());

Hier stellt sich schlichtweg die Frage, ob es zu diesem leider nicht richtig funktionierenden StopLoss-Closing noch eine Alternative gibt.

Denn es müsste doch möglich sein, eine Laufzeitbegrenzung aller Trades auf z.B. drei Tage hinzubekommen.

Und hier wäre ich wirklich dankbar, wenn mir eine Alternative zu diesem Closingversuch oder überhaupt eine insgesamt ganz andere Lösung vorgeschlagen werden könnte - falls es sie überhaupt gibt.
  #10 (permalink)  
Alt 22.08.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

Wie wäre es entweder den EA hier mit anzuhängen oder gleich einen kompetenten Programmierer zu beauftragen?
__________________
krank im Kopf aber sonst ganz nett
build 509 mql4 editor download
Thema geschlossen

Lesezeichen

Stichworte
laufzeit trades, laufzeitbegrenzung, laufzeitbegrenzung trades, mql5, programmierung, programmierung metatrader, timebasedsldays


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 06:39 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.
-----------------------------------------------------------------------------------------------------------------------------