Fehler, Irrtümer, Fragen - Seite 440

 
Renat:
Berechnen Sie das Ergebnis Ihres negativen Wertes, beziehen Sie es auf 32 Bits von int, lesen Sie dann über arithmetischen Überlauf und finden Sie Ihre 17 Tage.

Willkommen in der Welt der echten Programmierung.

Ich habe nicht die Frage gestellt: "Woher kommen die 17 Tage? Ich wiederhole: Ich habe eine Situation identifiziert, die ich im Tester nicht verstanden habe, ich habe es mir gesagt und eine Erklärung erhalten, dass (1) die Funktion Sleep() auch mit negativen Werten funktioniert und eine Verzögerung ungleich Null erzeugt, (2) die Arbeit der Funktion Sleep() im Tester emuliert wird. Wenn die Entwickler es für akzeptabel halten, was kann ich zurückgeben? Es ist nicht nötig, genau 17 Tage zu berechnen.

Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Общие функции / Sleep - Документация по MQL5
 
stringo:
Was schlagen Sie vor? Das Programm in einem Notfall beenden?
Es ist schwierig, Vorschläge zu machen, ohne zu wissen, wie das System funktioniert. Mein Ziel ist es, die Frage zu klären, und dann liegt es an Ihnen. Dieses Mal stellte sich heraus, dass die Frage voll und ganz in die aktuelle Ideologie des Terminals passt. Nun, dann weiß ich mehr.
 
uncleVic:

Ja. Wir haben den Elefanten nicht gesehen.

Ich habe einen starken Verdacht bezüglich dieser Linie:


und in diesem Fall:

Ich denke, der Compiler sollte dies nicht übersehen. Was haben Sie? Nicht einmal eine Warnung? Wenn nicht, stellen Sie eine Anfrage an den Service Desk. Ist das in Ordnung?


Bewerbung#154746

Wie erhält man die Sequenznummer des Elements mit dem maximalen/minimalen Wert im Array s1.open?

 
Yedelkin:

In diesem Fall würde mir eine Anweisung im Abschnitt "Sleep-Funktion" genügen ... (2) "Die Funktion Sleep() wird vom Tester vollständig unterstützt".

Die grundlegenden Fragen zum Testen haben wir in einem separaten Artikel, "Grundlagen des Testens in MetaTrader 5", beleuchtet. Hier haben wir versucht, die meisten Nuancen der Verwendung verschiedener Funktionen im Tester zu erklären. Wir haben auch die Funktionen Sleep() erklärt:

Sleep()-Funktion im Testgerät

Mit der Funktion Sleep() können Sie die Ausführung eines mql5-Programms in einem Expert Advisor oder in einem Skript für einige Zeit unterbrechen, wenn Sie an einem Chart arbeiten. Dies kann notwendig sein, wenn Sie Daten abrufen, die zum Zeitpunkt des Abrufs noch nicht verfügbar sind und Sie warten müssen, bis sie verfügbar sind. Ein ausführliches Beispiel für die Verwendung der Funktion Sleep() finden Sie im Abschnitt Organisation des Datenzugriffs.

Im Prüfprogramm verzögern die Aufrufe von Sleep() den Prüfvorgang nicht. Beim Aufruf von Sleep() werden die erzeugten Ticks innerhalb der angegebenen Verzögerung "abgespielt", was schwebende Aufträge, Stopps usw. auslösen kann. Nach dem Aufruf von Sleep() wird die im Prüfgerät simulierte Zeit um das im Parameter der Funktion Sleep angegebene Intervall verlängert.

Wenn infolge der Ausführung von Sleep() die aktuelle Zeit im Prüfgerät das Ende des Prüfzeitraums überschreitet, wird ein Fehler "Endlosschleife in Sleep" empfangen. Tritt ein solcher Fehler auf, werden die Testergebnisse nicht verworfen, sondern alle Berechnungen (Anzahl der Abschlüsse, Drawdown usw.) werden abgeschlossen und die Ergebnisse an das Terminal weitergeleitet.

Die Funktion Sleep() funktioniert nicht in OnDeinit(), da die Testzeit nach ihrem Aufruf garantiert außerhalb des Testintervalls liegt.



Abbildung 7. Schema der Verwendung der Funktion Sleep() im MetaTrader 5 Terminal Tester.

 
Rosh:

Wir haben die wichtigsten Aspekte des Testens in unserem separaten Artikel Grundlagen des Testens in MetaTrader 5 behandelt. Hier haben wir versucht, die meisten Nuancen der Verwendung verschiedener Funktionen im Tester zu erklären. Wir haben auch die Funktion Sleep() erklärt:

Es tut mir leid, es ist wirklich meine Schuld. Ich habe es seit 9 Monaten nicht mehr getestet und habe den Artikel übersehen.

Es wäre schön, wenn die wichtigsten Artikel in den entsprechenden Abschnitten des Referenzhandbuchs erwähnt würden (ich habe etwas Ähnliches bereits letztes Jahr vorgeschlagen, aber heute ist eine gute Gelegenheit, es erneut zu tun). Schließlich benutzen wir alle die F1 in erster Linie.

 
Das heißt, Sie haben nicht getan, worum ich Sie gebeten habe.

Sie haben hier mehrere Leute, die versuchen, Sie auf Ihren einfachen Fehler mit dem arithmetischen Überlauf hinzuweisen.
 
Renat:
Das heißt, Sie haben nicht getan, worum ich Sie gebeten habe.

Sie haben hier mehrere Leute, die versuchen, auf Ihren einfachen arithmetischen Überlauffehler hinzuweisen.

==============================================================

Sie haben gefragt:

Renat:
Wären Sie so freundlich, das Ergebnis Ihres negativen Wertes zu berechnen, es mit 32 Bits von int zu korrelieren, dann über arithmetischen Überlauf zu lesen und Ihre 17 Tage zu finden...

Ich antwortete: " Ja, ich habe nicht die Frage gestellt, woher genau 17 Tage kommen". :) usw.

Antwort auf Ihre aktuelle Frage. Was Sie verlangt haben, habe ich nicht getan. Weil ich es gestern gemacht habe (ich hatte etwas andere Ausgangsdaten, aber die Essenz dessen, was ich verstanden habe). Hätte jemand dieses Skript kompiliert, hätte ich sogar zwei Warnungen erhalten. Überlaufen/Abschneiden - damit hatte ich gestern selbst zu tun.

Die Fragen waren, warum (1) die Funktion mit negativen Werten des Arguments arbeitet und (2) eine Verzögerung im Tester für solche Argumente gibt. Dennoch verweisen Sie erneut auf einen "Programmiererfehler" mit einem Überlauf vom Typ int. - D.h. Sie lehnen mein Testbeispiel nur deshalb ab, weil bei der Auswahl des Arguments der Funktion Sleep() ein "überlaufender Wert" angegeben wurde. Aber der Punkt liegt nicht im "übergelaufenen Wert". Das ist nur eine zusätzliche Note für das Testmuster. Es scheint, dass die Teilnehmer der Diskussion dies verstanden haben. Am Ende können Sie in das Testbeispiel "nicht überlaufender Wert" einfügen - unter sonst gleichen Bedingungen bleibt der Kern der Frage gleich (die Frage selbst wurde bereits behandelt).

Jedenfalls danke für den Tipp. Denn wenn der Compiler Sie nicht gewarnt hätte, wäre Ihr Rat wahrscheinlich nützlich gewesen und hätte Sie zum Nachdenken gebracht.

 

Welche Einschränkungen gibt es bei seiner Verwendung? W =(long)ChartGetInteger(Chart_ID[i],CHART_WIDTH_IN_PIXELS,0);
H =(long)ChartGetInteger(Chart_ID[i],CHART_HEIGHT_IN_PIXELS,0);
W_B =(long)ChartGetInteger(Chart_ID[i],CHART_WIDTH_IN_BARS,0);

Aufruf der Funktion von void OnInit() alles ist korrekt, aber von void OnTick() die Daten sind falsch, insbesondere CHART_WIDTH_IN_BARS gibt die Anzahl der Balken sichtbar, obwohl ich verstehe, sollte die Anzahl der Balken passen, um das Diagramm ohne Offset geben

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 
Virty:

Entschuldigung für die primitive Frage.

Die Handelsabfrage wird nicht ausgeführt. Fehler 10014 - falscher Datenträger in der Anfrage.

Wie kann ich innerhalb des EA verstehen/berechnen, was das maximale und minimale Lotvolumen ist, das ich im Moment kaufen kann?

Die Funktion OrderCheck ist nicht geeignet, da sie nur prüft und nicht angibt, wie viele Lose gekauft werden können.

Sehen Sie sich die Aufzählung ENUM_SYMBOL_INFO_DOUBLE und die entsprechende Funktion an. Ist es das, was Sie meinen?
 
Yedelkin:
Siehe Aufzählung ENUM_SYMBOL_INFO_DOUBLE und entsprechende Funktion. Ist es das, was Sie meinen?
Ja, ich danke Ihnen. SYMBOL_VOLUME_MAX habe ich selbst gefunden, und Sie haben mir geholfen.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
Grund der Beschwerde: