Zeit-Enumeration über 0Uhr Problem optimieren (EA mit 2 Zeitfenstern (Signal&Trading) Wie zeiteffizient gestalten?? - Seite 4
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Jetzt isses gelungen und getestet unter MT4 und MT5. Inclusive Eventhandling, Testprogramm und geilem Info-Tool.
Info.mqh bitte in den Ordner Include kopieren.
TimeRange.mqh in den Ordner Ordner Include\Tools kopieren.
TestTimes.mq5 in den Ordner Experts kopieren, für MT4 einfach umbenennen.
Kommentare sind im Code.
LG Otto
Jetzt isses gelungen und getestet unter MT4 und MT5. Inclusive Eventhandling, Testprogramm und geilem Info-Tool.
Info.mqh bitte in den Ordner Include kopieren.
TimeRange.mqh in den Ordner Ordner Include\Tools kopieren.
TestTimes.mq5 in den Ordner Experts kopieren, für MT4 einfach umbenennen.
Kommentare sind im Code.
LG Otto
Hört sich echt super an, da ich es auf den ersten Blick nicht genau lesen kann bzw. es erstmal echt schwierig ist sich da durchzuwühlen, was macht er denn genau jetzt?
Ich finde leider keinen Einstieg, bzw nichteinmal eine OrderSend Funktion... :(
Hört sich echt super an, da ich es auf den ersten Blick nicht genau lesen kann bzw. es erstmal echt schwierig ist sich da durchzuwühlen, was macht er denn genau jetzt?
Lass TestTimes einfach mal im Tester laufen und du siehst es. Schau dir nur TestTimes an, die include-dateien sind schon komplex und OOP. Die verwende einfach.
Natürlich kannst du dich mit dem Debugger durch alles durchführen lassen.
Da gibt es einen Trick: Du initalisierst irgendeine Variable und setzt einen Breakpoint (hier Zeile10). Das Programm hält dort und du kannst mit 'Step into F11' schrittweise in alles 'hineinkriechen'.
Es wird die Funktion '@global_initialisation' ausgeführt. Ich denke die kennen nur sehr wenige.
Lass TestTimes einfach mal im Tester laufen und du siehst es. Schau dir nur TestTimes an, die include-dateien sind schon komplex und OOP. Die verwende einfach.
Natürlich kannst du dich mit dem Debugger durch alles durchführen lassen.
Da gibt es einen Trick: Du initalisierst irgendeine Variable und setzt einen Breakpoint (hier Zeile10). Das Programm hält dort und du kannst mit 'Step into F11' schrittweise in alles 'hineinkriechen'.
Es wird die Funktion '@global_initialisation' ausgeführt. Ich denke die kennen nur sehr wenige.
Bei mir werden keine Trades ausgeführt (macht sinn, da ich zumindest keine Ordersend finde) Den rest werd ich also ergänzen (für den fall dass ich sie übersehen habe: Sorry)
Du Otto... kann es sein, dass wir ab der zweiten hälfte des Threads etwas unterschiedliches suchen?
Ich such nur nach einem Weg, wie ich die Werte Refreshen kann (unabhängig von dem damaligen Day() Befehl sondern in abhängigkeit der Range)
(die High/Low Werte müssen ja irgendwie refresht werden)
=>Was kann ich denn als Signal für die OnInit() ansetzen?
Das frühere Problem war ja das Day() vom tag abhängig war, wir brauchen einen int, der bei veränderung die OnInit() auslöst (damit alle Werte Refresht werden)
Hast du eine Idee woher ich dieses Signal für die OnInit() herbekomme? ?(Bitte verzweifelt um Antwort)
Gibt es vllt sowas wie RangeChanged in dem Code? Das wäre genau was ich brauche (Und nochmal ein Super Dankeschön für den Code, aber sorry dass ich nun noch eine Forderung gestellt habe)
Genauer gesagt sowas, nur dafür, dass beide Ranges einmal durchelaufen sind, anstatt dem Tagesdatum...
Nutze doch die Eventhandler. Die werden aufgerufen wie die Ontick() oder OnTimer() usw. Nur eben wenn die Timerange beginnt und/oder endet.
Bequemer gehts ja nicht.
Ist im TestTimes.mq4/TestTimes.mq5 enthalten. Da gehört Code hinein, nicht nur Print.
Den EA musst du schon selber schreiben.
Tools\TimeRange.mqh ist ein Zeitfilter mit zusätzlichem Eventhandler. Sonst nix.
@Otto Pauser
Hätte da noch 2 kleine Fragen zum TimeRange.mqh:
Wieso setzt du this day() und lastday() beide =day() und dass in der selben funktion? (bzw. keiner von beiden ist ein static,
Können son überhaupt die Tage verglichen werden bzw Ist das nicht einwenig unsicher ?
und:
Was bringt die Daychanged Funktion in dem mqh, wenn beide inCheckRange & inTradeRange doch schon automatisch die Uhrzeiten setzen (für welchen fall kann ich sie Nutzen)
+Ich bin dir nochmals 1000mal dankbar, dass du mit mir diesen Code geteilt hast :D
Bekommst du wenn du mit den OnEventhandlings arbeitest jedoch auch ein stark unterschiedliches Ergebnis im Vergleich zum TestPending EAs raus (=Dem EA den du für die EURUSD Breakoutstrategie zuallererst geschieben hattest? (Mich wundert woran das liegen könnte.
1.) In Klassen brauchst du Variablen nicht static definieren. Die verändern sich nicht wie in Funktionen.
2.) bool CTimeRange::DayChanged(void) ist quasi 'auf Vorrat' programmiert und wird im Code weiter nicht verwendet, wenn ich mich so recht erinnere.