Hallo,
So wie ich den Artikel verstehe, sollte die Funktion "setBokerOffset ()" auch im Strategietester funktionieren, tut sie aber nicht.
void OnTick() { //--- bool isTimeSet = setBokerOffset(); if(!isTimeSet) { Alert("setBokerOffset failed"); return; } }
array out of range in 'DealingWithTime.mqh' (201,21)
Ist die "Die Alternative über Input-Variablen" der einzige Weg, um korrekte Zeiten im Strategietester zu erhalten?
Ist die "Alternative über Input-Variablen" der einzige Weg, um korrekte Zeiten im Strategietester zu erhalten?
Ich vermute, dass der Strategietester die Anführungszeichen nicht erhalten hat und dann prev. CopyTime() fehlgeschlagen ist. Prüfen Sie, ob die angeforderten und benötigten Daten bereits lokal verfügbar sind.
Ok, ich werde CopyTime() genauer beobachten und versuchen, das Problem zu lösen.
Und danke, sehr nützlicher Artikel!
Guter Artikel. Es stellt sich jedoch ein Problem: Wie kann man feststellen, dass ein Makler/Händler von Winter auf Sommer umstellt, ohne den technischen Support zu kontaktieren?
- Warum nicht fragen?
- Die Software weiß, wann in den USA und der EU Sommer-/Winterzeit ist, und berechnet daraus den Offset des Brokers.
Guter Artikel. Es stellt sich jedoch ein Problem: Wie kann man feststellen, dass ein Broker/Händler von Winter auf Sommer umstellt, ohne den technischen Support zu kontaktieren?


- www.mql5.com
- Warum nicht fragen?
- Die Software weiß, wann in den USA und in der EU Sommer-/Winterzeit ist, und berechnet daraus den Broker-Offset.
1. Weil der Support nicht immer korrekte Informationen gibt. Sie haben selbst darauf hingewiesen, dass es sich um einen Alpari-Händler handelt. + Es ist ein großer Aufwand, von jedem Händler die Umstellung zu erfahren. Denn dann kann man keine gute Lösung erstellen, da ich nicht weiß, mit wem der Endverbraucher diskutiert.
2. Naja, irgendwie schon, aber wenn der Händler nicht von Winter auf Sommer und zurück umschaltet, dann kommt es zu seltsamen Berechnungen.
Ich habe versucht, Ihre Bibliothek ein wenig zu modifizieren, aber offenbar ist etwas schief gegangen. Ich dachte, dass der Code dazu führen sollte, dass der Expert Advisor automatisch die GMT-Zeit erkennt und entsprechend der GMT handelt, nicht entsprechend dem Server des Brokers. Ich bin mir nicht sicher, ob der Code optimal ist, aber die Lösung scheint zu funktionieren. Allerdings gibt es bei den Händlern, die die Zeit nicht ändern, einige falsche Berechnungen.

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Umgang mit Zeit (Teil 2): Die Funktionen :
Automatische Ermittlung des Broker-Offsets und GMT. Anstatt den Support Ihres Brokers zu fragen, von dem Sie wahrscheinlich eine unzureichende Antwort erhalten werden (wer würde schon bereit sein, eine fehlende Stunde zu erklären), schauen wir einfach selbst, welchen Zeitstempel Ihr Broker den Kursen in den Wochen der Zeitumstellung geben — aber nicht umständlich von Hand, das lassen wir ein Programm machen, wozu haben wir ja schließlich einen PC.
Vor den Funktionen werden die benötigten Variablen als globale Variablen in der Include-Datei DealingWithTime.mqh und nach der Makro-Substitution) deklariert:
Diesen Variablen DST_USD, DST_EUR,.. werden die aktuelle Zeitverschiebung in den USA, der EU,... zugewiesen. Sie werden von unseren Funktionen aktualisiert und gesetzt. In der Winterzeit, die ja die Normalzeit ist, sind sie Null: die Zeit wird in diesem Zeitraum nicht verschoben.
Danach folgen die Variablen mit dem nächsten Zeitpunkt der Zeitumstellung. Sie werden hauptsächlich benötigt, um zu wissen, wann eine neue Berechnung erforderlich ist, um die CPU-Ressourcen zu schonen:
Auf die russische Situation werden wir später in diesem Artikel eingehen.
Diese Struktur und ihre globale Variable sind das Herzstück von allem. :)
Wir werden die Broker-Offsets für die drei relevanten Zeiträume und die Dauer des Devisenmarktes in diesen Zeiträumen zuweisen, sowohl für den tatsächlichen Wert als auch für eine einfache Kontrolle, ob die Werte zugewiesen wurden. Die globale Variable heißt OffsetBroker, wir werden ihr mehrmals begegnen.
Autor: Carl Schreiber