Fehler, Irrtümer, Fragen - Seite 1516
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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.
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, das werde ich.
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.
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.
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?
MT5 Hilfe:
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.?