Version bêta de l'IDE MetaTrader 4 comprenant un nouveau compilateur et un nouvel éditeur MQL4

 

Début du sujet :

Vous trouverez ci-dessous la version bêta de l'IDE, la même pour MetaTrader 4/MQL4 et MetaTrader 5/MQL5. Il s'agit d'une version préliminaire destinée à l'examen public.

Quelles sont les différences par rapport à l'ancienne version de MQL4 ?

  • La priorité des opérations logiques ET/OU a été modifiée. Maintenant, tout est comme en C/C++ classique.

  • Introduction d'une évaluation raccourcie des expressions logiques. Désormais, lors de l'évaluation d'une expression logique, les sous-expressions restantes ne sont pas évaluées. Comme en C/C++.

  • L'opérateur switch n'utilise désormais que des valeurs entières. Auparavant, on pouvait utiliser de vraies pièces.

  • Maintenant, vous ne pouvez pas utiliser un point dans les noms de variables. De même, vous ne pouvez pas utiliser les caractères '@', '$', '?' dans les noms de variables.

  • Les exigences relatives à la fonction de démarrage ont été renforcées. Auparavant, vous pouviez spécifier des paramètres dans la fonction de démarrage. Maintenant, tous les points d'entrée init, start, deinit, OnInit, OnStart, OnTick, OnTimer, etc. doivent correspondre exactement à leur signature.

  • En raison de l'expansion du jeu de mots-clés, nous ne pouvons pas utiliser des noms comme short, long, float, const, virtual, input, delete, new, do, char.

  • Les fonctions dll importées ne peuvent plus prendre des tableaux de chaînes en tant que paramètres. Dans le mot MQL5

  • Apparaissent maintenant les noms de variables prédéfinis _Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed qui peuvent entrer en conflit avec des variables simples déclarées dans des sources existantes avec les mêmes noms.

  • Le type datetime est devenu 8 octets comme dans MQL5.

Les différences ne sont pas fatales et peuvent être facilement corrigées dans le code. En échange, nous disposons d'un grand nombre de fonctionnalités de MQL5, ainsi que de la vitesse d'exécution et d'un contrôle de qualité beaucoup plus strict.


Nous prévoyons d'effectuer des tests publics tout au long du mois prochain afin de recueillir le plus de commentaires possible et de préparer les développeurs.

Discussion sur le forum MQL5 : https://www.mql5.com/ru/forum/13651

Dossiers :
 

C'est ce qui m'a le plus stressé :

Renat:

Désormais, les fonctions dll importées ne peuvent pas accepter les tableaux de chaînes en tant que paramètre. Dans le mot MQL5

Pourquoi est-il impossible de maintenir la compatibilité ? Devez-vous le réécrire à nouveau ? Les tableaux de chaînes de caractères du MQL4 sont-ils conservés ? S'ils subsistent, on ne sait pas comment vous l'avez interdit et pourquoi ?
 
Il ne s'agit que d'un transfert vers une DLL.
 
Renat:

Discussion sur le forum MQL4 : https://www.mql5.com/ru/forum/13651

:)
 
Peut-on vraiment faire du forum MT4 une section du forum MT5 ?
 
Auparavant, lors de la compilation, il n'y avait pas d'avertissement si les noms des variables globales et locales coïncidaient, mais maintenant il donne - "declaration of 'dist' hides global declaration at line 63", aussi cet avertissement donne quand les noms des paramètres de la fonction formelle et les noms des variables globales coïncident. Est-elle critique et peut-elle affecter le comportement du programme ? Ou bien s'agit-il d'une erreur purement stylistique, par exemple pour qu'il n'y ait pas de confusion dans les projets complexes ? (J'ai déjà l'habitude de garder à l'esprit la portée des variables et j'appelle souvent des variables similaires par le même nom).
 
zenz:
... Est-ce que cela est critique et pourrait affecter le comportement du programme... ?
Le comportement du programme ne changera pas, s'il y avait une mauvaise utilisation d'une variable dans 4ka, elle restera dans le nouveau compilateur.
 
J'ai compilé le fichier dans le nouvel éditeur et l'ai glissé dans MT4.509 - il l'a supprimé... :(
 
TarasBY:
J'ai compilé le fichier avec le nouvel éditeur et l'ai glissé dans MT4.509 - il l'a supprimé... :(

C'est logique, car l'ancien terminal ne connaît pas le nouveau format de langue.

Jusqu'à présent, nous n'avons publié qu'un éditeur et un compilateur pour des tests préliminaires. Dans quelques semaines, nous publierons une version bêta du nouveau terminal qui pourra fonctionner avec le nouveau format de programme.

Je vous recommande de lire les liens dans le message original - ils couvrent pratiquement tout.

 
Renat:

C'est logique, car l'ancien terminal ne connaît pas le nouveau format de langue.

Jusqu'à présent, nous n'avons publié qu'un éditeur et un compilateur pour des tests préliminaires. Dans quelques semaines, nous publierons une version bêta du nouveau terminal qui pourra fonctionner avec le nouveau format de programme.

Je vous recommande de lire les liens dans le message original - ils couvrent presque tout.


Je n'ai pas encore regardé, mais ce serait mieux de faire un testeur comme MT5, avec des guillemets :), et ça ne ferait pas de mal d'attacher un testeur aux ressources du processeur.
 
M2012K:

Je ne l'ai pas encore regardé, mais ce serait mieux s'ils faisaient un testeur comme MT5, avec des citations :), et ça ne ferait pas de mal d'attacher un testeur aux ressources du processeur.


Vous vous souvenez du dessin animé "Porridge de la hache" ? ;)))