Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 503
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
Für Währungspaare, wenn Sie ein Limit setzen, alles funktioniert, aber für Zeitrahmen nicht funktioniert, auch wenn Sie es auf h1 Indikator nicht funktioniert
https://docs.mql4.com/ru/chart_operations/periodwindow
https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes
RückgabewertZeitraum des aktuellen Diagramms (in Minuten).
Probieren Sie es aus, vielleicht klappt es ja.
Oder entfernen Sie Anführungszeichen.
https://docs.mql4.com/ru/chart_operations/periodwindow
https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes
RückgabewertZeitraum des aktuellen Diagramms (in Minuten).
Probieren Sie es aus und sehen Sie, ob es funktioniert.
Eine weitere Frage, beim Hinzufügen am Anfang, wenn #property strengen Indikator gibt Fehler Array außerhalb des Bereichs in 'Indikator-Name' (100,41), wie man damit umgehen
Was ist daran falsch?
Es tut mir leid, ich wusste nicht, über die Code-Einfügung, aber wie für den Code selbst, warum passiert es, wenn Sie #property strict einfügen und alles funktioniert ohne sie?
Haben Sie die Hilfe in MetaEditor gesehen?
Die Arbeit mit Funktionen, der Geltungsbereich von Variablen und das Freigeben von Speicher in lokalen Arrays hat sich ebenfalls geändert. Da sich die Änderungen als ziemlich bedeutend herausstellten, wurde beschlossen, eine neue Eigenschaft #property strict einzuführen, um die Kompatibilität mit dem alten Ansatz zum Schreiben von MQL4-Programmen zu maximieren. Beim Erstellen eines neuen MQL4-Programms mit dem MQL4-Assistenten wird diese Eigenschaft immer zur Vorlage hinzugefügt.
Und so weiter:
Tabelle der Unterschiede zwischen den Compilern:
Alter MQL4-Compiler
Neuer MQL4-Compiler
Neuer MQL4-Compiler mit #property strict
Die Einstiegspunkte init(), start(), deinit() können beliebige Parameter und einen beliebigen Rückgabetyp haben
init(), start(), deinit(), links für Kompatibilität,
und die neuenOnInit(),OnStart(),OnCalculate(),OnTick(),OnTimer(),OnChartEvent(),OnTester(),OnDeinit() müssen genau ihren Signaturen entsprechen
Gleiche
Das Ergebnis der Funktion init() wird vom ausführenden Teilsystem in keiner Weise ausgewertet
Das Rückgabeergebnis der init()- und OnInit()-Funktionen wird vom ausführenden Subsystem in keiner Weise ausgewertet
Wenn OnInit() einen Wert ungleich Null zurückgibt, bleibt der Experte oder Indikator stehen und das Programm wird entladen.
Variablennamen können fast beliebig sein (außer reservierten Wörtern), einschließlich Sonderzeichen und Punkt.
Variablennamen dürfen keine Sonderzeichen und Punkte enthalten.
Die Listeder reservierten Wörter wurde erweitert, so dass gängige Wörter wie short, long, const usw. nicht genannt werden können.
Gleiche
Der Geltungsbereich einer Variablen reicht von der Deklaration (auch in einem verschachtelten Block) bis zum Ende der Funktion.
Gleiche
Sichtbarkeitsbereich einer Variablen - von der Deklaration bis zum Ende des Blocks, in dem die Variable deklariert ist.
Implizite Initialisierung aller Variablen (sowohl global als auch lokal) mit Nullen.
Das gleiche
Nur Initialisierung von globalen Variablen. Von den lokalen Variablen werden nur Strings implizit initialisiert
Lokale Arrays werden beim Verlassen der Funktion nicht freigegeben
Lokale Arrays werden beim Verlassen der Funktion freigegeben
Lokale Arrays werden beim Beenden freigegeben {}
DerFehler"Array out of range" führt nicht zu einem kritischen Fehler*.
Dasselbe. Außer bei Arrays von Strukturen und Klassen, für die dieser Fehler kritisch ist
"Array out of range" ist ein kritischer Fehler und führt zum Abbruch des Programms
Keine Strukturen und Klassen
Es gibtStrukturen und Klassen. Es erscheinen zusätzliche Datentypen.
Gleiche
Zeichenketten - Einzelbyte.
datetime - 32-Bit-Ganzzahl
Vordefinierte Variable Volume hat den Typ double
Zeichenketten - Unicode.
datetime - 64-Bit-Ganzzahl
Volume ist eine vordefinierte Variable vom Typ long.
Gleiche
ArrayCopyRates() erzeugt virtuelles Kopieren in Array double[][6]
ArrayCopyRates() erzeugt ein virtuelles Kopieren in das Array MqlRates[]. Aus Kompatibilitätsgründen bleibt das Kopieren in das Array double[][6] bestehen, aber dieses Kopieren ist nicht virtuell, sondern real.
Auch.
Funktionen dürfen keine Werte zurückgeben, auch wenn sie einen Typ haben. Zu diesem Zweck fügt der Compiler automatisch return(0) am Ende der Funktion ein.
Dasselbe.
Funktionen beliebigen Typs müssen immer einen Wert zurückgeben
Anzahl der gleichzeitig geöffneten Dateien - 32
Anzahl der gleichzeitig geöffneten Dateien - 64
Gleiche
Dateien werden immer im gemeinsamen Modus geöffnet **
Der Freigabemodus muss explizit mit FILE_SHARE_READ und/oder FILE_SHARE_WRITE deklariert werden
Gleiche
Die Skripte im Eingabefenster zeigen die Namen derexternen Variablen
Die Namen derexternen undEingabevariablen werden im Eingabeparameterfenster für die Skripte im Modus show_inputs angezeigt.
Bei Skripten im show_inputs-Modus werden String-Kommentare im Eingabefenster anstelle vonexternen undEingabevariablennamen angezeigt
* Sie sollten besonders auf den Fehler "Array out of range" achten - viele alte benutzerdefinierte Indikatoren erzeugen diesen Fehler im neuen Compiler im Strict-Modus, wenn sie auf einem Chart laufen. Es ist wünschenswert, die Ursache zu finden und sie zu beseitigen.
** Im neuen MQL4 und MQL5 sind die Flags FILE_SHARE_READ und FILE_SHARE_WRITE für den File-Sharing-Modus verantwortlich, im alten MQL4 gab es sie nicht.
Sag mir, was los ist?
Tut mir leid, wenn ich Sie störe, aber jetzt kommt dieser Fehler
39. Platz.
Gleicher Fehler, Array außerhalb des Bereichs?