Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 557

 
GSB:

Ich habe keine Einwände gegen die Prinzipien, aber der Mann will den Expert Advisor im Tester laufen lassen, also passen Ihre Optionen nicht zu ihm.

Verwenden Sie meine Variante, sie wird sowohl in der Realität als auch im Tester funktionieren, aber bis sie eine Funktion zur automatischen Berücksichtigung der Sommerzeit entwickelt haben, definieren Sie die Übergangszeit für dieses Jahr wie folgt

Von März 2013 bis November 2014 wird funktionieren und korrekt getestet. Stellen Sie die Schicht entsprechend Ihrem Makler ein


Ich werde nicht nachsehen, wo geschrieben steht, dass die Zeit im Prüfgerät generiert wird, das wissen Sie selbst. In der Hilfe heißt es jedoch ausdrücklich, dass

 var2=StrToTime("17:35");      // возврат текущей даты с указанным временем

Zu StringToTime() wird hingegen nichts Genaues gesagt.

Das einzige, was zu berücksichtigen ist, ist die Zeit auf dem Tester (des DC-Servers). Dementsprechend sollten Sie beim Testen eine Historie des gleichen Kontotyps haben, auf dem diese Eule funktionieren wird.

 
AlexeyVik:


Ich werde nicht nachschlagen, wo es heißt, dass die Zeit im Tester generiert wird, das wissen Sie selbst. In der Hilfe heißt es jedoch ausdrücklich, dass

Zu StringToTime() wird hingegen nichts Genaues gesagt.

Das einzige, was zu berücksichtigen ist, ist die Zeit auf dem Tester (des DC-Servers). Wenn Sie also testen, müssen Sie eine Historie der gleichen Art von Konto haben, auf dem diese Eulen funktionieren werden.


Alexey, ich habe keine Frage zu der Funktion StrToTime() Die Frage ist eine andere. Es wird die richtige Zeit zurückkehren, aber 21 Stunden heute sind 22 Stunden vor dem 9. März. Deshalb habe ich Funktionen geschrieben, die die Sommerzeit des Brokers korrekt berücksichtigen.

Ohne sie ist es unmöglich zu testen, ob ein Expert Advisor nach einem bestimmten Zeitplan arbeitet. Alles verschiebt sich um eine Stunde. Im realen Handel gibt es keine Probleme, wohl aber mit dem Testgerät. Ich habe die Entwickler seit langem gebeten, die Funktion zur Berechnung von Zeitverschiebungen zu aktivieren. Sie haben TimeGMT() implementiert, aber es ist an die lokale Zeit und die Zeitzone des Computers gebunden. Und man muss eine Bremserschicht haben. Und ihre Sommerzeit ist anders als unsere. Makler verschieben ersten Sonntag im November zweiten Sonntag im März und Russland (wenn es sein wird...) letzten Sonntag im Oktober letzten Sonntag im März. Sie müssen also erst einmal Ihre eigenen Funktionen schreiben.

 
GSB:

Ich habe keine Einwände gegen die Prinzipien, aber der Mann will den Expert Advisor im Tester laufen lassen, also passen Ihre Optionen nicht zu ihm.

Verwenden Sie meine Variante, wird es sowohl in der realen und im Tester, aber bis sie nicht eine Funktion, um automatisch zu berücksichtigen, Sommerzeit, definieren Sie die Zeit des Übergangs zu diesem Jahr wie

Von März 2013 bis November 2014 wird korrekt funktionieren und getestet. Stellen Sie die Schicht entsprechend Ihrem Broker ein

OK. Danke. Ich werde Sie über das Ergebnis informieren.
 

Es ist notwendig, auf den Charts < h4 die Zeit des letzten Balkens des aktuellen Freitags und des Freitags vor dem 8. März zu überprüfen. Wenn diese Zeiten übereinstimmen, ist der hrd-Wert konstant und hängt nicht von der Umstellung auf die Winter-Sommerzeit ab, und dann ist alles ganz einfach und funktioniert bei den Tests unabhängig von der Umstellung auf die Winter-Sommerzeit korrekt

datetime tc=TimeCurrent();
datetime te=StrToTime("20:45");                    //   время конца сессии по котировкам брокера минус 15 минут или сколько вам надо до конца сессии
if(TimeDayOfWeek(tc)==5 && tc>te) {  CloseAll(); } //    закрытие пятницу позже указанного времени 

aber wenn diese beiden Zeiten unterschiedlich sind (sich um 1 Stunde unterscheiden), dann wie ich schon schrieb.

 
GSB:

Wir sollten auf dem M1-Chart den Zeitpunkt des letzten Balkens des aktuellen Freitags und des Freitags vor dem 8. März überprüfen. Wenn diese Zeiten übereinstimmen, dann ist der hrd-Wert konstant und hängt nicht vom Übergang zur Winter-Sommerzeit ab, und dann ist alles ganz einfach und wird während der Tests korrekt funktionieren, auch unabhängig von den Winter-Sommer-Umstellungen

aber wenn diese beiden Zeiten unterschiedlich sind (sich um 1 Stunde unterscheiden), dann wie ich schon schrieb.


Warum gibt es eine 15-Minuten-Zeit im Code, d.h. Sie wollen sagen, dass 15 Minuten vor dem Ende der Sitzung die Portfolios zu verschieben beginnen? Ich habe sicherlich solche Momente auf mt4 bei fresch bemerkt und ich sah gute Niveaus auf einigen Währungspaaren.
 

Zum Beispiel möchte ich Geschäfte sogar 1 Minute vor Ende der Sitzung schließen, denn wenn eine Order über das Wochenende liegen bleibt, kann es passieren, dass der Eröffnungskurs am Montag um 100 oder 200 oder noch mehr Pips springt.

Ich habe es noch nicht getestet, aber ich werde es im Laufe des Tages ausprobieren.

 
Wenn der Broker in Russland ist und ich in der Ukraine, dann gibt es keine Sommer- oder Winterzeitumstellung, dann gibt es für mich auch keine Serverzeitumstellung, nur Ortszeit?
 
GSB:

Nun, das sollte im Testgerät nicht funktionieren.

Die Funktionen basieren auf der aktuellen Zeit, und was ich oben geschrieben habe, wird funktionieren, weil TimeCurrent() und TimeDayOfWeek() korrekt funktionieren. Sie müssen nur die Funktion zur Umstellung auf Sommer- und Winterzeit hinzufügen, d.h. den Parameter hrd. Die Umstellung erfolgt in der Regel nach der amerikanischen Sommerzeit (erster Sonntag im November, zweiter Sonntag im März), aber einige Makler nehmen die Umstellung nicht vor, so dass Sie Ihre


Ohne mich auf Annahmen einzulassen, habe ich den Expert Advisor einfach im Strategy Tester ausgeführt und ihn mir angesehen. Es funktioniert und wird geschlossen.

 
belck:
Wenn mein Broker in Russland ist und ich in der Ukraine, dann gibt es keine Sommerzeit- oder Winterzeitumstellung, dann stellt sich heraus, dass es bei meinem Broker keine Sommerzeitumstellung gibt, sondern nur die Ortszeit?

Es ist nicht nötig, die Zeit des Maklers mit Ihrer Ortszeit zu vergleichen. Egal, wie sehr Sie Ihre Uhr bewegen, die Endzeit der Börsensitzung auf dem Diagramm ändert sich nicht. Die Frage bezog sich auf den Übergang zu den Sommerzeitkursen der Makler am 8. und 9. März, und einige Makler tun dies, andere nicht.

Ich schrieb: Schauen Sie sich die Charts für die letzten Balkenzeiten vor und nach dem 9. März an, wenn sie gleich sind, verwenden Sie die letzte einfache Option, wenn sie sich um eine Stunde unterscheiden, die komplexere.

 

Leute, Hut ab :) Sowohl DayOfWeek() TimeDayOfWeek(datetimedate) als auch ähnliche Formeln funktionieren im Testgerät korrekt. Der Tester modelliert die Zeit des Ticks, den er verarbeitet, deshalb funktioniert auch DayOfWeek(), das die letzte bekannte Serverzeit nimmt. Korrekter ist natürlich die Verwendung von TimeDayOfWeek(dt1)

Im Allgemeinen ist alles richtig, das Einzige, was übrig bleibt, ist die Zeit des Übergangs von der Makler- zur Winter-Sommerzeit zu berücksichtigen, wenn es eine gibt, wie ich oben schrieb.