Geschrieben 13. Januar 201016 Jr. comment_91951 Bevor ich zumeiner Frage komme, möchte ich mich bei allen, die mir letztes Jahr beim Einstieg in die MQL-Programmierung geholfen haben, bedanken.Ich hatte dann nix mehr gepostet, weil ich an einem Punkt angekommen war, wo ich meine MQL-Probleme selbst lösen konnte und wollte keinem auf die Nerven gehen. Mittlerweile hab ich meinen ersten EA fertig und erfolgreich backgetestet und seit kurzem auf einem Demokonto laufen. Danke. Jetzt kommts:Für die Backtests habe ich Daten von Alpari heruntergeladen. Dann ist mir folgendes aufgefallen:Die historischen Daten (Forex) haben beim Tageschart 5 Kerzen pro Woche. Montag bis Freitag. Die realen Daten bei FX-direktbank und auch bei XTB haben 6 Kerzen pro Woche, weil es eine Sonntagskerze gibt.Die fangen nämlich beide Sonntagsabends mit dem Handel an und es entsteht eine Kerze im Tageschart für 1 bzw. 2 Stunden. Das bedeutet, bei jedem EA der Tageskurse verwendet, ist das Backtestergebis falsch. Oder habe ich hier einen Denkfehler? Ich sehe drei mögliche Lösungen:1. Anderen Broker nutzen, der auch nur 5 Kerzen pro Woche hat. Welcher wäre das?2. Andere historiche Daten. Wo bekomme ich sowas? Das Aussehen der Sonntagskerze hängt ja davon ab, wie lange vor Mitternacht der Handel anfängt.3. Die vorhandenen historischen Daten anders aufbereiten. Kann der Metatrader das? Melden
Geschrieben 13. Januar 201016 Jr. comment_91953 Ich würde spontan sagen, da du ja selber programmieren kannst, dass du lieber in deiner Strategie etwas änderst.Wenn du die Sonntagsbalken einfach überspringen willst, füge im Code doch eine weitere Bedingung hinzu, nämlich dass aktuell ein Wochentag sein muss (Mo, Die, ..., Fr.). So machst du die Strategie unabhängig vom Broker! Melden
Geschrieben 13. Januar 201016 Jr. comment_91955 Jetzt kommts:Für die Backtests habe ich Daten von Alpari heruntergeladen. Dann kannst du mir sicher dabei helfen http://www.tom-next.com/community/Kursdate...r-4-t56369.htmlGibt es da einen genaueren Link? Melden
Geschrieben 13. Januar 201016 Jr. Autor comment_91956 Ja, das hab ich auch schon überlegt.Da in meiner Strategie aber sowohl Close[1], als auch Close[2] und auch Open [1] und Open[2] vorkommen, müsste ich für Montags und für Dienstags und für für Sonntags eine Variante programmieren.Und für Mittwoch auch, beim Mittwoch ist open [2] ja eigentlich open[3].Bleiben nur noch Donnerstag und Freitag für die ungeänderte Strategie. Das bedeutet switch mit 5 Case-Varianten. Das ist ein ganz schöner Aufwand.Ich hatte gehofft das umgehen zu können und es auf eine der drei erwähnten Arten zu lösen.Meinen nächsten EA programmiere ich in einer kleineren Zeitebene. Melden
Geschrieben 13. Januar 201016 Jr. Autor comment_91957 Dann kannst du mir sicher dabei helfen http://www.tom-next.com/community/Kursdate...r-4-t56369.htmlGibt es da einen genaueren Link? Leider nicht wirklich. Ich habe die Daten vor gut einem halben Jahr beihttp://www.alpari.co.uk/ geladen Unten auf der Seite bei Download Metatrader steht als letzte Historical Data. Dort klicken.Wenn Du da jetzt hingehst erscheint Downloading of historical data is temporarily unavailableUnd das schon seit einiger Zeit. Ich glaube auch nicht, daß dieser Sevice nochmal aktiviert wird, ist schon zu lange "unavailable".Aber vielleicht fuktioniert ja die Lösung, die die auf der Seite angeben. Hab ich nicht versucht. Ich suche auch permanent nach einer neuen Quelle und bin schon am überlegen mir Daten zu kaufen. Bearbeitet 13. Januar 201016 Jr. von mh21 Melden
Geschrieben 13. Januar 201016 Jr. comment_91977 Ich hatte dann nix mehr gepostet, weil ich an einem Punkt angekommen war, wo ich meine MQL-Probleme selbst lösen konnte und wollte keinem auf die Nerven gehen. Wenn ich so etwas lese, bin ich eigentlich etwas enttäuscht. Andererseits auch ein wenig froh, dass nicht alle so denken.Würden diesem Beispiel alle folgen, gäbe es weder tom-next.com noch irgendjemand der einem anderen der gerade dabei ist das Laufen zu lernen, ein wenig zur Seite steht. Und sei es nur menthal.... @all - Sorry für das offtopic. Melden
Geschrieben 13. Januar 201016 Jr. comment_91980 Ich finde es auch immer toll wenn man so eine Step-By-Step Programmierung mal dokumentiert und anderen zur Verfügung stellt... ich z.B. brauche sowas noch Melden
Geschrieben 13. Januar 201016 Jr. comment_91983 Hallo mh21,die "sechste Kerze" entsteht - nach meiner Erfahrung - bei Nicht-ECN-/STP-Brokern. Also DD-Brokern, weil die nämlich schon Sonntags um 23 Uhr anfangen. Daraus entsteht dann eine "Tageskerze".Bei STP-Brokern hast du das in der Regel nicht (wie gesagt, ist nur meine Erfahrung). Die fangen erst Montags um 0 Uhr an. Das bedeutet, bei jedem EA der Tageskurse verwendet, ist das Backtestergebis falsch. Oder habe ich hier einen Denkfehler?Nein, kein Denkfehler. Du musst diese Gegebenheit einfach bei der Entwicklung und den Tests berücksichtigen und korrekt handhaben, das ist alles. Wenn Du weitere Fragen hast, frag einfach. Bearbeitet 13. Januar 201016 Jr. von Philipp Melden
Geschrieben 13. Januar 201016 Jr. comment_91985 [...]Da in meiner Strategie aber sowohl Close[1], als auch Close[2] und auch Open [1] und Open[2] vorkommen, müsste ich für Montags und für Dienstags und für für Sonntags eine Variante programmieren.Und für Mittwoch auch, beim Mittwoch ist open [2] ja eigentlich open[3].Bleiben nur noch Donnerstag und Freitag für die ungeänderte Strategie.[...]Kannst Du das bitte mal näher erläutern? Jeder Wochentag hat doch seine eigene Nummer (Sonntag = 0, Montag = 1, Dienstag = 2 usw.) - egal, ob es für ihn eine Kerze gibt oder nicht. Insofern musst Du dem EA sinngemäß nur sagen: if (TimeDayOfWeek(iTime(Symbol(),0,0))==0) return; else ... hier kommt dann Dein normaler Quelltext Für den Fall, dass Du am Montag dann bspw. auf Freitag und Donnerstag blicken willst, setzt Du dann Variable n1 und n2 ein (sprich Du arbeitest mit open[n1], open[n2] etc.). Je nachdem, welcher TimeDayofWeek anliegt, werden die dann bereits direkt am Anfang gesetzt. Was dann natürlich noch fehlt, ist eine Abfrage, ob es Sonntags Daten gibt oder nicht (wegen der Verschiebung). Ich weiß noch nicht wie, aber das wird sich auch lösen lassen. Dann kann der restliche Quelltext immer gleich bleiben. Melden
Geschrieben 14. Januar 201016 Jr. Autor comment_92005 Ich glaube, es ist etwas komplizierter: Montags muß ich sowohl Close[1] und [2], als auch Open[1] und [2] mit + 1 versehen.Dienstags ist Close[1] aber ok und muß nicht geändert werden, alle anderen müssen geändert werden.Mittwochs ist nur open[2] zu ändern, die anderen stimmen. Sonntags ist ne ganz andere Geschichte, das müsste ich noch durchdenken.Das betrifft dann auch noch High[] und Low[].Das geht natürlich alles, ich wollte mich als Programmieranfänger aber gerne davor drücken. Aber das Problem ist noch tiefgreifender:Indikatoren auf Tagesbasis sind falsch.Ein SMA20 reicht bei 6 Kerzen pro Woche nicht so weit zurück, wie bei 5 Kerzen.Einfach dann SMA24 zu nehmen passt auch nicht, denn je Wochentag sind unterschiedlich viele Sonntage in der Indikatorperiode. Das könnte man auch noch programmieren, aberdann past der Indi immer noch nicht, weil er ja Schlusskurse einberechnet, (die vom Sonntag), die es im historischen Chart garnicht gibt. Jetzt könnte man sagen, die Differenz ist gering. Bei SMA. Was ist aber beim Momentum? Wenn es gerade auf einen Sonntag zielt, kommt ein total falscher Wert heraus. Ich will aber heute Nachmittag mal was probieren:Beim Einlesen der hist. Daten kann man einen Shift einstellen. Möglicherweise kann ich dadurch bei den hist. Charts auch eine Sonntagskerze produzieren.Werde dann berichten, ob es funktioniert. Melden
Geschrieben 14. Januar 201016 Jr. Autor comment_92038 Shift funktioniert nicht!Beim Einlesen von .hst Dateien ist shift garnicht möglich.Beim Einlesen von .txt Dateien ist es möglich, aber man kann dadurch keine Sonntagskerzeproduzieren.Außerdem muß man den richtigen Shift eingeben, weil durch das Eingeben eines falschen shift-wertesdie Daten nicht mit der eigenen Zeitzone übereinstimmen. Melden
Bevor ich zumeiner Frage komme, möchte ich mich bei allen, die mir letztes Jahr beim Einstieg
in die MQL-Programmierung geholfen haben, bedanken.
Ich hatte dann nix mehr gepostet, weil ich an einem Punkt angekommen war, wo ich meine MQL-Probleme
selbst lösen konnte und wollte keinem auf die Nerven gehen.
Mittlerweile hab ich meinen ersten EA fertig und erfolgreich backgetestet und seit kurzem auf einem
Demokonto laufen. Danke.
Jetzt kommts:
Für die Backtests habe ich Daten von Alpari heruntergeladen.
Dann ist mir folgendes aufgefallen:
Die historischen Daten (Forex) haben beim Tageschart 5 Kerzen pro Woche. Montag bis Freitag.
Die realen Daten bei FX-direktbank und auch bei XTB haben 6 Kerzen pro Woche, weil es eine Sonntagskerze gibt.
Die fangen nämlich beide Sonntagsabends mit dem Handel an und es entsteht eine Kerze im Tageschart für 1 bzw. 2 Stunden.
Das bedeutet, bei jedem EA der Tageskurse verwendet, ist das Backtestergebis falsch. Oder habe ich hier einen Denkfehler?
Ich sehe drei mögliche Lösungen:
1. Anderen Broker nutzen, der auch nur 5 Kerzen pro Woche hat. Welcher wäre das?
2. Andere historiche Daten. Wo bekomme ich sowas? Das Aussehen der Sonntagskerze hängt ja davon ab,
wie lange vor Mitternacht der Handel anfängt.
3. Die vorhandenen historischen Daten anders aufbereiten. Kann der Metatrader das?