Fehler, Irrtümer, Fragen - Seite 1516

 
zaskok3:

Hören Sie auf, so zu tun, als würden Sie nichts verstehen: Der Hintergrund kann vom Flash-Laufwerk weggezogen werden. Es gibt viele andere Möglichkeiten. Die Hauptsache ist, dass es sich hinzieht. Sie müssen es nicht einmal auf dem Computer eines anderen tun.

Sie haben Ihre Passwörter übertragen, das Speichern von Passwörtern auf dem Computer eines anderen Benutzers aktiviert und die Sache damit abgeschlossen. Sie haben die Tatsache, dass Sie die Passwortsicherung aktiviert haben, bis zum letzten Moment verschwiegen.

Die Schlussfolgerung ist logisch: Ein Dutzend Ihrer Klone wurde bereits wegen Rückfälligkeit entlassen.

 
Renat Fatkhullin:
Gibt es Pläne, Änderungen an der MetaEditor-Funktionalität vorzunehmen, um Variablen hervorzuheben und im Debugger automatisch alle verwendeten Variablen zu erstellen? Wie in Qt Creator IDE oder VS.
 
coderex:
Gibt es Pläne, Änderungen an der MetaEditor-Funktionalität vorzunehmen, um Variablen hervorzuheben und im Debugger automatisch alle verwendeten Variablen zu erstellen? Wie in Qt Creator IDE oder VS.
Ja, auf jeden Fall.
 
Renat Fatkhullin:
Ja, das werde ich.
Ich frage mich, wie bald?
 
Slawa:
Bitte prüfen Sie Anwendung #1416121 zur Initialisierung von globalen/statischen Variablen!
 
Alexey Kozitsyn:
Bitte prüfen Sie die Anfrage #1416121 zur Initialisierung von globalen/statischen Variablen!

In der Warteschlange. Die Anwendung ist erst zwei Stunden alt.

Im Allgemeinen sollten solche Fragen in einem Forum gestellt werden. Denn es kann viele Menschen betreffen. Ich werde mir erlauben, Sie zu zitieren und dann zu antworten.

Hallo. Korrigieren Sie mich, wenn ich falsch liege. Statische und globale Variablen werden einmal vor dem Start des Programms initialisiert (d.h. mit der Funktion OnInit()). Dementsprechend muss das Programm, wenn es deinitialisiert wird (Aufruf der Funktion OnDeinit()), die Werte der globalen/statischen Variablen "vergessen" und vor dem nächsten Aufruf von OnInit() mit den Anfangswerten initialisieren.

Ich habe eine interessante Tatsache in mql4 Expert Advisors entdeckt. Wenn Sie globale/statische Variablen deklarieren, dann werden z.B. beim Ändern der Eingabeparameter, d.h. nach OnDeinit(), diese Variablenwerte nicht zurückgesetzt. Aber bei den Indikatoren sind sie es. Was ist zu tun? Dies scheint ein Fehler zu sein.

Ich habe es auf mql5 (Build 1241 x64) überprüft - ähnlich. Bei Expert Advisors - nicht zurücksetzen, bei Indikatoren - zurücksetzen.

Dies ist ein geplantes Verhalten. Außerdem ist es in der Dokumentation klar beschrieben

Laden und Entladen von Indikatoren

In den folgenden Fällen werden die Indikatoren geladen:

-Anhängeneines Indikators an ein Diagramm;

-Startdes Terminals (wenn ein Indikator vor dem letzten Schließen des Terminals an ein Diagramm angehängt wurde)

-Ladeneiner Vorlage (wenn die Vorlage einen Indikator enthält, der mit dem Diagramm verbunden ist)

-Profiländern(wenn ein Indikator mit einem der Profilcharts verbunden ist);

-Änderungdes Symbols und/oder der Periode des Charts, dem der Indikator zugeordnet ist;

-nach dererfolgreichen Neukompilierung eines Indikators, wenn dieser Indikator an ein Diagramm angehängt wurde

-Änderung der Eingabeparameter desIndikators.

In den folgenden Fällen werden die Indikatoren entladen:

-wennein Indikator von einem Diagramm getrennt wird;

-Schließendes Terminals (wenn ein Indikator an einen Chart angehängt ist);

-Ladeneiner Vorlage, wenn ein Indikator an ein Diagramm angehängt ist

Schließen Sieden Chart, an den ein Indikator angehängt wurde; - Schließen Sie das Terminal (wenn ein Indikator an den Chart angehängt wurde)

-Änderungeines Profils, wenn ein Indikator mit einem der Charts des zu ändernden Profils verbunden ist;

-Änderungdes Symbols und/oder der Periode des Charts, an den der Indikator angehängt ist;

-Indikator-Eingabeparameterändern.

Das Ent- und Beladen erfordert eine vollständige Neuinitialisierung aller Komponenten.

In Five ist die Situation, wie Sie richtig festgestellt haben, ähnlich.

Es ist wahr, es war historisch so in MQL4 wir zuerst dieses Verhalten geändert (um es wie in Experten zu machen, d.h. das Verhalten, das Sie erwarten). Bei den alten Indikatoren, die auf dieser Initialisierung basierten, ergaben sich jedoch viele Fragen. Wir waren gezwungen, zurückzukehren

Bei den fünf war dies aufgrund der Architektur sofort der Fall. Wenn Sie die Parameter ändern, wird der alte Indikator mit den alten Parametern zerstört und ein neuer Indikator mit geänderten Parametern angelegt.

Input переменные
Input переменные
  • docs.mql4.com
Input переменные
 
Slawa:
In der Warteschlange. Die Anwendung ist erst zwei Stunden alt.

Ich habe sie hier nur für den Fall dupliziert.

Dies ist ein geplantes Verhalten. Außerdemist es in der Dokumentation klar beschrieben.

Ich habe gerade hier und hier nachgesehen. Und ich denke, es ist logisch, da ich mit einer statischen Speicherklasse arbeite. Und auch hier ist es sinnvoll, wenn es einen "Haken" in Form von bewährten Techniken in Bezug auf verschiedene Programmtypen gibt, wäre es gut, diesen auch in der Dokumentation für die Klasse des statischen Speichers (statische und globale Variablen) zu beschreiben.

Bitte ergänzen Sie die Bemerkungen.

 
Alexey Kozitsyn:

Ich habe sie hier nur für den Fall dupliziert.

Ich habe nur hier und hier nachgeschaut. Und ich denke, es ist logisch, da ich mit einer statischen Speicherklasse arbeite. Und auch hier ist es sinnvoll, wenn es einen "Haken" in Form von bewährten Techniken in Bezug auf verschiedene Programmtypen gibt, wäre es gut, diesen auch in der Dokumentation für die Klasse des statischen Speichers (statische und globale Variablen) zu beschreiben.

Bitte ergänzen Sie die Bemerkungen.

Welcher Kommentar? Über das Laden/Entladen von Programmen?
 
Slawa:
Welcher Kommentar? Über das Laden/Entladen von Programmen?
Über die Tatsache, dass die Initialisierung von statischen und globalen Variablen durch verschiedene Ereignisse in Indikatoren und Expert Advisors verursacht wird. Fügen Sie dementsprechend im Absatz über die globalen und statischen Variablen im Unterabschnitt "Bemerkungen" hinzu.
 

MT5 Hilfe:

IsStopped
 
Проверяет принудительное завершение работы mql5-программы.
 
bool  IsStopped();
 
Возвращаемое значение
 
Возвращает true, если в системной переменной _StopFlag содержится значение, отличное от 0. Ненулевое значение записывается в переменную _StopFlag, если поступила команда завершить выполнение mql5-программы. 
В этом случае необходимо как можно быстрее завершить работу программы, в противном случае программа будет завершена принудительно извне через 3 секунды.

Gerade überprüft - der Indikator wird aus dem Diagramm entfernt, aber er läuft weiter für 3 Sekunden, 10 Sekunden, 3 Minuten...(IsStopped wurde dort nicht geprüft, das ist nicht die Frage)

1) Warum heißt es "erzwungene Beendigung für 3 Sekunden", aber in Wirklichkeit funktioniert es nicht?

2) Warum werden Prozesse (Skripte, Indikatoren, Expert Advisors, Tester-Agenten) nicht zwangsweise beendet, wenn sie aus einem Diagramm entfernt werden, ein Benutzer einen Test beendet usw.?