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

 

Tout semble fonctionner.

J'ai un petit souhait : la liste des fonctions déroulée par Alt+M ne peut-elle pas être visible en permanence dans la fenêtre "Navigator" ? Il serait très pratique de naviguer dans le code.

 
BorisMQL4:
Existe-t-il un moyen de personnaliser la barre d'outils comme il était possible de le faire auparavant ?

Oui, faites un clic droit sur un élément de la barre d'outils existante et sélectionnez "Personnaliser".


Tout est identique à celui de MetaEditor 4.

 
Renat:

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

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

  • Une évaluation raccourcie des expressions logiques a été introduite. 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.

  • Maintenant, vous ne pouvez pas utiliser les noms des types suivants : short, long, float, const, virtual, input, delete, new, do, char.

  • Maintenant, les fonctions dll importées ne peuvent pas accepter des tableaux de chaînes de caractères comme paramètre. Dans le mot MQL5

  • Il existe maintenant des 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 le code source existant avec les mêmes noms.

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

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

Les deux premiers points sont particulièrement dangereux car le code sera compilé mais ne fonctionnera peut-être pas correctement.

Puis-je en ajouter ? Si ce n'est pas le cas, merci de le corriger (pas le temps de faire un bêta test et un test complet). (j'écrirai donc à la fin ( ?) pour ne pas avoir l'air d'une vérité absolue) :

  • Les chaînes de caractères sont devenues unicode (2 octets). Par conséquent, les algorithmes basés sur la manipulation de caractères à un octet ne fonctionneront pas correctement ou ne fonctionneront pas du tout ( ?).
  • Vous devez spécifier explicitement la deuxième dimension et la dimension supérieure du tableau lorsque vous décrivez les paramètres de la fonction ( ?).
  • Lesvariables locales et les tableaux ne sont pas initialisés automatiquement ( ?)
  • Les tableaux par défaut ne sont plus statiques ( ?)
  • Les chaînes de plus de 256 caractères ne seront pas tronquées ( ?)
  • Certaines constantes ont changé leur représentation interne. Par exemple, les périodes du graphique commencent à partir de H1 ( ?)
  • ...
Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 

Liste des points d'entrée pour les nouveaux programmes du MQL4

1. Pour des raisons de compatibilité avec les sources existantes, les fonctions familières init, start, deinit sont conservées.

2. Ajouté :

OnInit, OnDeinit (pour les Expert Advisors, les indicateurs et les scripts, l'existence simultanée des fonctions init et OnInit, deinit et OnDeinit n'est pas autorisée).

OnStart pour les scripts (l'existence simultanée de OnStart et de start n'est pas autorisée)

OnTick pour les Expert Advisors (l'existence simultanée de OnTick et de start n'est pas autorisée).

OnCalculate pour les indicateurs (l'existence simultanée de OnCalculate et de start n'est pas autorisée)

Également ajouté :

OnTimer pour les conseillers experts et les indicateurs

OnChartEvent pour les conseillers experts et les indicateurs

OnTester pour les Expert Advisors

 

Ces modifications du calcul des expressions auraient dû être apportées il y a longtemps. Il est presque rare qu'ils causent des problèmes, à moins que l'auteur n'ait écrit d'énormes expressions.

Il n'y a aucun problème avec les chaînes de caractères - en interne, elles sont Unicode, automatiquement converties en ANSI lorsqu'elles sont utilisées en dehors du terminal (envoi de commentaires dans les commandes), y compris le recodage automatique dans les deux sens lorsqu'elles sont transmises à la DLL. C'est-à-dire que la compatibilité est complète.

Les dimensions des tableaux sont oui. Vous pouvez désormais oublier les jeux sauvages avec des tableaux multidimensionnels, car ils sont parfaitement remplaçables par des structures.

Les tableaux dans MQL4 n'ont jamais été statiques, au contraire, ils ont toujours été dynamiques.

Non, il n'y a plus de limite de 256 caractères.

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

Liste des points d'entrée pour les nouveaux programmes du MQL4

1. Pour des raisons de compatibilité avec les sources existantes, les fonctions familières init, start, deinit sont conservées.

2. Ajouté :

OnInit, OnDeinit (pour les Expert Advisors, les indicateurs et les scripts, l'existence simultanée des fonctions init et OnInit, deinit et OnDeinit n'est pas autorisée).

OnStart pour les scripts (l'existence simultanée de OnStart et de start n'est pas autorisée)

OnTick pour les Expert Advisors (l'existence simultanée de OnTick et de start n'est pas autorisée).

OnCalculate pour les indicateurs (l'existence simultanée de OnCalculate et de start n'est pas autorisée)

Également ajouté :

OnTimer pour les conseillers experts et les indicateurs

OnChartEvent pour les conseillers experts et les indicateurs

OnTester pour les Expert Advisors

Est-ce que OnTrade et OnTradeTransaction sont prévus ?
 
Renat:

Peut-être que le studio est russe ?

Oui, c'est russe. Est-ce critique ?
 
fyords:
Oui, c'est russe. Est-ce critique ?

Pas critique, sauf pour les phrases mouchetées en russe. Ce texte est déduit des réponses du studio.

Nous allons essayer de résoudre ce problème.

 
Renat:

Pas critique, sauf pour les phrases mouchetées en russe. Ce texte est déduit des réponses du studio.

Nous allons essayer de résoudre ce problème.

Je vois, merci, et pour ce qui est de trouver le 5e studio, le problème sera résolu ou c'est moi qui ai des problèmes ?
 
Urain:
Est-ce que OnTrade et OnTradeTransaction sont prévus ?
Malheureusement, non.