Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Kompatibilität historischer Daten

Geschrieben

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?

Featured Replies

Geschrieben

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!

Geschrieben
  • Autor

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.

Geschrieben
  • Autor
Dann kannst du mir sicher dabei helfen :laugh:

http://www.tom-next.com/community/Kursdate...r-4-t56369.html

Gibt es da einen genaueren Link?

 

Leider nicht wirklich. Ich habe die Daten vor gut einem halben Jahr bei

http://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 unavailable

Und 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 von mh21

Geschrieben
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.

Geschrieben
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 :laugh:
Geschrieben

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 von Philipp

Geschrieben
[...]

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.

Geschrieben
  • Autor

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, aber

dann 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.

Geschrieben
  • Autor

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 Sonntagskerze

produzieren.

Außerdem muß man den richtigen Shift eingeben, weil durch das Eingeben eines falschen shift-wertes

die Daten nicht mit der eigenen Zeitzone übereinstimmen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.