Beta-Version der MetaTrader 4 IDE mit neuem MQL4 Compiler und Editor - Seite 8

 

Alles scheint zu funktionieren.

Ich habe einen kleinen Wunsch - kann die Liste der Funktionen, die mit Alt+M aufgerufen wird, nicht dauerhaft im "Navigator"-Fenster sichtbar sein? Es wäre sehr bequem, durch den Code zu navigieren.

 
BorisMQL4:
Gibt es eine Möglichkeit, die Symbolleiste so anzupassen, wie es früher möglich war?

Ja, klicken Sie mit der rechten Maustaste auf ein vorhandenes Symbolleistenelement und wählen Sie "Anpassen".


Alles ist gleich wie in MetaEditor 4.

 
Renat:

Was sind die Unterschiede zur alten Version von MQL4:

  • Die Priorität der logischen AND/OR-Operationen hat sich geändert. Jetzt ist alles wie in klassischem C/C++.

  • Die verkürzte Auswertung von logischen Ausdrücken wurde eingeführt. Jetzt werden bei der Auswertung eines logischen Ausdrucks die verbleibenden Unterausdrücke nicht ausgewertet. Wie in C/C++.

  • Der Switch-Operator verwendet jetzt nur noch Integer-Werte. Zuvor konnte man echte verwenden.

  • Sie können in Variablennamen keinen Punkt verwenden. Außerdem können Sie die Zeichen '@', '$' und '?' nicht in Variablennamen verwenden.

  • Die Anforderungen an die Startfunktion wurden verschärft. Zuvor konnten Sie in der Startfunktion Parameter angeben. Jetzt müssen alle Einstiegspunkte init, start, deinit, OnInit, OnStart, OnTick, OnTimer usw. genau ihren Signaturen entsprechen

  • Jetzt können Sie keine Namen der folgenden Typen verwenden: short, long, float, const, virtual, input, delete, new, do, char.

  • Jetzt können importierte dll-Funktionen keine Arrays von Strings als Parameter akzeptieren. Wie in MQL5

  • Jetzt gibt es vordefinierte Variablennamen _Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed, die mit einfachen Variablen kollidieren können, die in vorhandenem Quellcode mit denselben Namen deklariert sind.

  • Der Datentyp datetime ist wie in MQL5 auf 8 Bytes erweitert worden.

Die Unterschiede sind nicht gravierend und können im Code leicht behoben werden. Im Gegenzug sind viele Funktionen von MQL5, die Geschwindigkeit der Ausführung und eine viel strengere Qualitätskontrolle verfügbar.

Die ersten beiden Punkte sind besonders gefährlich, weil der Code zwar kompiliert wird, aber möglicherweise nicht richtig funktioniert.

Darf ich noch etwas hinzufügen? Wenn nicht, korrigieren Sie es bitte (keine Zeit für Betatest und vollständigen Test). (ich werde also am Ende schreiben (?), um nicht wie eine absolute Wahrheit auszusehen):

  • Strings wurden zu Unicode (2 Bytes). Daher werden Algorithmen, die auf der Manipulation von 1-Byte-Zeichen basieren, nicht korrekt oder überhaupt nicht funktionieren (?).
  • Sie müssen die zweite und höhere Array-Dimension explizit angeben, wenn Sie die Parameter der Funktion beschreiben (?)
  • Lokale Variablen und Arrays werden nicht automatisch initialisiert (?)
  • Standard-Arrays sind nicht mehr statisch (?)
  • Zeichenfolgen, die länger als 256 Zeichen sind, werden nicht abgeschnitten (?)
  • Einige Konstanten haben ihre interne Darstellung geändert. Zum Beispiel beginnen die Diagrammperioden mit H1 (?)
  • ...
Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 

Liste der Einstiegspunkte für neue MQL4-Programme

1. Aus Gründen der Kompatibilität mit bestehenden Quellen bleiben die bekannten Funktionen init, start, deinit erhalten

2. Hinzugefügt:

OnInit, OnDeinit (für Expert Advisors, Indikatoren und Skripte ist die gleichzeitige Existenz der Funktionen init und OnInit, deinit und OnDeinit nicht erlaubt)

OnStart für Skripte (gleichzeitiges Vorhandensein von OnStart und Start ist nicht erlaubt)

OnTick für Expert Advisors (gleichzeitige Existenz von OnTick und Start ist nicht erlaubt)

OnCalculate für Indikatoren (gleichzeitiges Vorhandensein von OnCalculate und Start ist nicht erlaubt)

Auch hinzugefügt:

OnTimer für Expert Advisors und Indikatoren

OnChartEvent für Expert Advisors und Indikatoren

OnTester für Expert Advisors

 

Diese Änderungen bei der Berechnung von Ausdrücken hätten schon vor langer Zeit vorgenommen werden müssen. In den seltensten Fällen werden sie Probleme verursachen, es sei denn, der Autor hat große Ausdrücke geschrieben.

Es gibt kein Problem mit Strings - intern sind sie Unicode, automatisch in ANSI konvertiert, wenn sie außerhalb des Terminals verwendet werden (Senden von Kommentaren in Aufträgen), einschließlich automatischer Umkodierung hin und her, wenn sie an DLL übergeben werden. Das heißt, die Kompatibilität ist vollständig.

Die Abmessungen der Arrays sind ja. Jetzt können Sie wilde Spielchen mit mehrdimensionalen Arrays vergessen, da sie perfekt durch Strukturen ersetzt werden können.

Arrays in MQL4 waren nie statisch, im Gegenteil, sie waren immer dynamisch.

Nein, es gibt keine Begrenzung auf 256 Zeichen mehr.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
stringo:

Liste der Einstiegspunkte für neue MQL4-Programme

1. Aus Gründen der Kompatibilität mit bestehenden Quellen bleiben die bekannten Funktionen init, start, deinit erhalten

2. Hinzugefügt:

OnInit, OnDeinit (für Expert Advisors, Indikatoren und Skripte ist die gleichzeitige Existenz der Funktionen init und OnInit, deinit und OnDeinit nicht erlaubt)

OnStart für Skripte (gleichzeitiges Vorhandensein von OnStart und Start ist nicht erlaubt)

OnTick für Expert Advisors (gleichzeitige Existenz von OnTick und Start ist nicht erlaubt)

OnCalculate für Indikatoren (gleichzeitiges Vorhandensein von OnCalculate und Start ist nicht erlaubt)

Auch hinzugefügt:

OnTimer für Expert Advisors und Indikatoren

OnChartEvent für Expert Advisors und Indikatoren

OnTester für Expert Advisors

Sind OnTrade und OnTradeTransaction geplant?
 
Renat:

Vielleicht ist das Studio russisch?

Ja, es ist russisch. Ist das entscheidend?
 
fyords:
Ja, es ist russisch. Ist es kritisch?

Nicht kritisch, abgesehen von den gesprenkelten Phrasen auf Russisch. Dieser Text wird von den Antworten des Studios abgezogen.

Wir werden versuchen, dieses Problem zu lösen.

 
Renat:

Nicht kritisch, abgesehen von den gesprenkelten Phrasen auf Russisch. Dieser Text wird von den Antworten des Studios abgezogen.

Wir werden versuchen, dieses Problem zu lösen.

Ich sehe, danke, und über die Suche nach der 5. Studio-Einheit wird das Problem gelöst werden oder ist es mir einige Probleme haben?
 
Urain:
Sind OnTrade und OnTradeTransaction geplant?
Leider nein.