Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 554

 
Karputov Vladimir:
Lassen Sie sich nicht auf Geschwätz ein - der Aufruf von OnCalculate impliziertnatürlich den Aufruf durch das Terminal selbst, denn

Nun, Sie mussten OnCalculate nicht selbst aufrufen. Ich mache das regelmäßig. Und wie sich herausstellt, bin ich nicht der Einzige.

Kurz gesagt, der gleiche Code in MT4 funktioniert ohne Probleme, in MT5 stürzt er ab. Werden sie das Verhalten von 5 korrigieren?

 
comp:

Nun, Sie mussten OnCalculate nicht selbst aufrufen. Ich mache das regelmäßig. Und wie sich herausstellt, bin ich nicht der Einzige.

Kurz gesagt, der gleiche Code in MT4 funktioniert ohne Probleme, in MT5 stürzt er ab. Werden sie das Verhalten von 5 beheben?

Sie können erst nach dem ersten Aufruf von OnCalculate im Indikator arbeiten - denn OnCalculate garantiert die Vorbereitung der Umgebung des Indikators.
 
Karputov Vladimir:
Sie können erst nach dem ersten Lauf in OnCalculate im Indikator arbeiten, da OnCalculate die Vorbereitung der Indikatorumgebung gewährleistet.
Der obige Code zeigt, dass diese Regel nur im MT4 funktioniert. Im MT5 ist das anders.
 
comp:
Der obige Code zeigt, dass diese Regel nur im MT4 funktioniert. Dies ist bei MT5 anders.
Noch einmal: Nur der erste Eintrag in OnCalculate garantiert die Vorbereitung der Umgebung.
 
Karputov Vladimir:
Noch einmal: Nur die erste Eingabe in OnCalculate garantiert die Vorbereitung der Umgebung.

Sie versuchen, mich zu einem Streit zu provozieren, was unter die Regel "Streit mit einem Moderator" fällt und mit einer Sperre geahndet wird. Ich habe nicht die Absicht, mit Ihnen zu streiten.

Im Gegensatz zu Ihnen habe ich einen Code zur Verfügung gestellt, der meine Behauptung vollständig bestätigt. Jeder, der es verstehen will, kann den Code ausführen und sich davon überzeugen, dass meine Worte wahr sind.

 
Maria Baburina:

Hallo, bin auf dieses Problem gestoßen.

Es gibt eine Bedingung in dem Programm: Wenn eine Variable (in der der Gewinn bestimmter Aufträge berechnet wird) kleiner ist als der Ausdruck aus mehreren anderen Variablen, werden als nächstes mehrere Funktionen ausgeführt.

Ich werde nicht sofort genau beschreiben, was und wie es berechnet wird, da dies zu viel wäre. Vielleicht wird die Antwort sehr einfach sein, weil ich sie nicht kenne:)

Bei der Ausführung des Programms stellt sich also heraus, dass diese Bedingung erfüllt ist, obwohl die erste Variable viel größer ist als die andere (z. B. die im Tester angezeigten Werte - 146,3412 und 0,41).

Alle Variablen in dieser Bedingung sind vom Typ double und werden separat korrekt berechnet.

Können Sie mir sagen, woran das liegen könnte?

Was ist das Problem?
 
Vladimir Zubov:
Was ist das Problem?
Bei den konkreten Zahlen heißt es 146,3412 < 0,41

Ich werde einen separaten Code mit diesem Fehler schreiben, um ihn zu überprüfen
 
comp:

Sie versuchen, mich zu einem Streit zu provozieren, was unter die Regel"Streit mit einem Moderator" fällt und mit einer Sperre geahndet wird. Ich habe nicht die Absicht, mit Ihnen zu streiten.

Im Gegensatz zu Ihnen habe ich einen Code zur Verfügung gestellt, der meine Behauptung vollständig bestätigt. Jeder, der es verstehen will, kann den Code ausführen und sehen, ob das, was ich gesagt habe, wahr ist.

Dieser Streit sollte nicht als Streit mit einem Moderator betrachtet werden, und zwar aus dem einfachen Grund, dass Vladimir in diesem Dialog NICHT die Funktion eines Moderators ausübt. Es handelt sich lediglich um einen Streit zwischen zwei Programmierern.
 
Alexey Viktorov:
Dieser Streit sollte nicht als Streit mit einem Moderator angesehen werden, und zwar aus dem einfachen Grund, dass Vladimir in diesem Dialog NICHT die Funktion eines Moderators ausübt. Es handelt sich lediglich um einen Streit zwischen zwei Programmierern.
Ich bin jedoch wiederholt ausgeschlossen worden, weil ich versucht habe, meine technischen Argumente in Gesprächen mit den Moderatoren zu verteidigen. Und beschuldigt, sich unethisch zu verhalten - "mit einem Moderator zu streiten". Ich habe nicht die Absicht, auf dieselbe Harke zu treten.
 
comp:
Ich bin jedoch wiederholt ausgeschlossen worden, weil ich versucht habe, meine technischen Argumente in Gesprächen mit Moderatoren zu verteidigen. Und beschuldigt, sich unethisch zu verhalten - "mit einem Moderator zu streiten". Ich habe nicht die Absicht, auf dieselbe Harke zu treten.

Ich habe diese Argumente gelesen. Aber das war kein Argument, sondern nur ein Unwillen, Erklärungen und Versuche, die Schuld des Terminals zu beweisen, zu verstehen. Ihre Worte wurden durch nichts untermauert. Sie sind zu faul, um Screenshots zu machen und Ihre Gedanken klar zu erklären.

Versuchen Sie nicht zu beweisen, dass die Entwickler dümmer sind als Sie und es wird keine Repressalien geben.

Wenn MT4 sich nicht wie MT5 verhält, bedeutet das nicht, dass MT5 sich nicht korrekt verhält.

Grund der Beschwerde: