Fehler, Irrtümer, Fragen - Seite 505

 
sergey1294:
Dieselbe Funktion gibt Null zurück. Ich habe auchSERIES_TERMINAL_FIRSTDATE ausprobiert. Die Schlussfolgerung ist, dass die FunktionSeriesInfoInteger im Testgerät nicht funktioniert. Sie funktioniert nur für das Gerät, auf dem der Test läuft. Vielleicht haben Sie eine Idee, wie man den Test für Instrumente mit unterschiedlichen Anfangsdaten durchführen kann, wenn Sie das Intervall "Alle Historien" auswählen.

Ich habe beschlossen, Ihre Schlussfolgerungen zu überprüfen. Ich habe den Test Expert Advisor auf Alpari-Demo und den gleichen im Tester im Visualisierungsmodus seit 2000 laufen lassen. Die Ergebnisse der init-Ausführung finden Sie im Anhang.

Wenn sich die Historie für den getesteten Zeitraum auf dem Server befindet, gibt SeriesInfoInteger() im Tester die gleichen Daten zurück wie auf der Demo. Wenn es zum Zeitpunkt des Testbeginns keine Historie gibt (wie bei EURAUD, ab 2004.06.16), gibt der Tester folgenden Fehler zurück: 2011.09.05 09:40:53 EURAUD: contains 0 M1 records.

So funktioniert SeriesInfoInteger() im Tester immer noch, wenn der Server die entsprechende Historie hat und der Tester sie laden kann. Wenn er auf den "leeren" Verlauf trifft, bleibt der Test einfach stehen, obwohl der Fortschrittsbalken sich bewegt.

Dateien:
 
Valmars:

Ich habe beschlossen, Ihre Schlussfolgerungen zu überprüfen. Ich habe den Test Expert Advisor auf Alpari-Demo und den gleichen im Tester im Visualisierungsmodus seit 2000 laufen lassen. Die Ergebnisse der init-Ausführung finden Sie im Anhang.

Wenn sich die Historie für den getesteten Zeitraum auf dem Server befindet, gibt SeriesInfoInteger() im Tester die gleichen Daten zurück wie auf der Demo. Wenn es zum Zeitpunkt des Testbeginns keine Historie gibt (wie bei EURAUD, ab 2004.06.16), gibt der Tester einen Fehler zurück: 2011.09.05 09:40:53 EURAUD: enthält 0 M1 Datensätze.

Also, SeriesInfoInteger() funktioniert immer noch im Tester, wenn der Server eine entsprechende Historie hat und der Tester sie laden kann. Wenn er auf einen "leeren" Verlauf trifft, bleibt der Test einfach stehen, obwohl der Fortschrittsbalken sich bewegt.

Seltsamerweise gebe ich im Testgerät Nullen zurück, was mache ich falsch?
 
sergey1294:
Seltsamerweise habe ich Nullen im Tester zurückgegeben, was mache ich falsch?

Und Sie stellen das Prüfintervall nicht auf "Alle Vorgänge", sondern so ein, dass der Verlauf für alle Zeichen garantiert ist, z. B. "Letztes Jahr". Dann sollten dort keine Nullen stehen, sondern der Anfang des vom Prüfer hochgeladenen Verlaufs. Ich bekomme es ab 4.01.2010.

P.S. Aber eigentlich seltsam, wenn der Tester den bestehenden Verlauf mit 2004g herunterlädt. Wenn Sie den Test mit einem Symbol beginnen, sollte er das Datum des Beginns der Geschichte 2004 für dieses Symbol ausgeben, und nicht Nullen, auch wenn das Startdatum des Tests vor der bestehenden Geschichte liegt. Ich glaube, das ist ein Fehler.

 
Abgesehen davon, dass die Zeit im MT5-Terminal plötzlich von GMT+1 auf GMT+0 gesprungen ist, habe ich auch einen Fehler gefunden - nach dem Ende der soeben abgelaufenen einstündigen Kerze haben sich die Volumenwerte in den vorherigen Kerzen geändert, und zwar erheblich. Ich kann nur mit Sicherheit sagen, dass die Candlesticks von heute - ich habe sie alle nacheinander von Beginn der Sitzung an gespeichert: 0:00 1841 - 2269, 1:00 2556 - 3235, 2:00 2436 - 2975, 3:00 1700 - 3096, 4:00 1391 - 1690, die Endzeit ist falsch. So falsch ist MT5.
 
Arkadiy:
Abgesehen davon, dass die Zeit im MT5-Terminal plötzlich von GMT+1 auf GMT+0 gesprungen ist, habe ich auch einen Fehler gefunden - nach dem Ende der soeben abgelaufenen einstündigen Kerze haben sich die Volumenwerte in den vorherigen Kerzen geändert, und zwar erheblich. Zu den heutigen Kerzen kann ich nur sagen, dass ich sie alle nacheinander von Beginn der Sitzung an gespeichert habe: 0:00 1841 - 2269, 1:00 2556 - 3235, 2:00 2436 - 2975, 3:00 1700 - 3096, 4:00 1391 - 1690, Terminalzeit ist "falsch". Das ist eine Ungenauigkeit bei MT5.
Ich vergaß zu sagen - EURUSD-Paar.
 
Valmars:

Und Sie stellen das Prüfintervall nicht auf "Alle Vorgänge", sondern so ein, dass der Verlauf für alle Zeichen garantiert ist, z. B. "Letztes Jahr". Dann sollten dort keine Nullen stehen, sondern der Anfang des vom Prüfer hochgeladenen Verlaufs. Ich habe es vom 4.01.2010.

P.S. Aber eigentlich seltsam, wenn der Tester den bestehenden Verlauf von 2004 herunterlädt. dann sollte es das Startdatum und den Verlauf 2004 für dieses Symbol ausgeben und keine Nullen, auch wenn das Startdatum vor dem bestehenden Verlauf liegt. Ich glaube, das ist ein Fehler.

Ich habe versucht, das letzte Jahr einzustellen, das Gleiche. Ich muss den EA über die gesamte Historie für alle Symbole ausführen.
 

Entdeckt beim Normalisieren der Partie. Prüfen Sie Ihre:

Print(NormalizeDouble(0.07,2);

Wider Erwarten, Drucke: 0,0700000000000000000000001

 
SoundChip:

Entdeckt beim Normalisieren der Partie. Prüfen Sie Ihre eigenen:

Print(NormalizeDouble(0.07,2);

Entgegen der Erwartung wird gedruckt: 0.07000000000000001

https://www.mql5.com/ru/forum/4033
 
Verstanden, danke.
 

Ich werde versuchen, die Frage ein drittes Mal zu stellen.) MetaDriver hat hier ein Beispiel gezeigt. Hier habe ich mein Beispiel gegeben.

Das Diagramm schrumpft, wenn die Anzahl der Trades 3000 übersteigt. Wird dieses Problem von den Entwicklern berücksichtigt?

Dieses Problem erlaubt es uns nicht, die Handelsergebnisse im Terminal auf einmal zu analysieren, wenn wir das System auf einem großen Streifen von historischen Daten testen, wenn die Anzahl der Geschäfte 10000 und mehr betragen kann.

Ich erinnere mich, dass ich etwas Ähnliches in Excel hatte. Aber das Programm war mit komplexen Formeln überfrachtet und hängte sich einfach auf, wenn die Anzahl der Zeilen 5000 überstieg. Was könnte hier das Problem sein?