Erreurs, bugs, questions - page 1491

 
Joo Zepper:
Comment faire glisser la fenêtre du graphique vers un autre moniteur ?

ouvrir un autre terminal et le faire glisser)

Ou l'étirer, mais ce n'est pas bon.

 
Alexandr Bryzgalov:

ouvrir un autre terminal et le faire glisser)

ou le faire durer, mais ce n'est pas très bon.

Il en va de même pour les autres terminaux - ils communiquent tous entre eux par le biais d'événements.

Pourquoi l'étirement du terminal n'est-il pas "bon" ?

 
Joo Zepper:


et pourquoi étirer le terminal n'est pas "bon" ?

Je peux le dire par la façon dont je me sens.

votre main est habituée à une certaine taille d'écran, et lorsque vous l'étirez, votre main sort de la table.

Si vous l'aimez, pourquoi pas ?

Je n'aime pas ça.

 
Joo Zepper:
Comment faire glisser la fenêtre du graphique vers un autre moniteur ?
Détacher la fenêtre du terminal
 
Yuri Evseenkov:

MT4. Je souhaite attirer l'attention sur la différence dans l'ordre d'initialisation des variables globales et des variables externes. Il n'est pas mentionné dans la documentation.

La variable extern est située dans la portée globale et par le type de variable (globale ou locale) fait référence à la globale, comme il est écrit dans la documentation et dans le tutoriel de Kovalev.

Puisque la documentation ne dit rien sur l'ordre d'initialisation de extern, il est logique de conclure que l'ordre d'initialisation de extern est le même que celui de la variable globale elle-même.

En fait, les différences sont significatives. Les variables globales a et b sont initialisées une fois avant l'exécution de la première fonction init ; elles conservent leur valeur initiale (ou modifiée dans le code), si le cadre temporel ou le symbole sur le graphique a changé.

La variable extern int c n'enregistre pas la valeur modifiée dans le code et, si l'horizon temporel ou l'instrument du graphique a été modifié, elle reprend la valeur initiale spécifiée. Le code ci-dessous le montre.

Il est important de le savoir pour comprendre pourquoi, toutes choses égales par ailleurs, les résultats du code exécuté à partir de la fenêtre "Propriétés" ou de la recompilation diffèrent des résultats du code exécuté en changeant d'horizon temporel ou de symbole.

Voici le code qui le montre. Si nous changeons plusieurs fois de cadre temporel ou de symbole, nous verrons que a et b augmentent et que c conserve sa valeur initiale.


Oubliez le mot "externe".

Le nouveau MQL4 utilise l'entrée. Commencez par là.

Les variables externes sont toujours réinitialisées juste avant l'appel de OnInit - c'est un paramètre d'entrée externe !

 
Slawa:

Oubliez le mot "externe".

Le nouveau MQL4 utilise l'entrée. Commencez par là.

Les variables externes sont toujours réinitialisées juste avant l'appel à OnInit - c'est un paramètre d'entrée externe !

Dans MQL4++, je ne peux pas me passer de l'extern lorsque j'ai besoin de modifier les paramètres d'entrée de manière programmatique. Par exemple, lors de la conversion d'un indicateur simple en un indicateur interactif, je dois remplacer input par extern. Le compilateur traite les variables d'entrée comme constantes et se plaint des tentatives de modification. Avec extern, il n'y aura pas de tels problèmes.
 
Slawa:

Oubliez le mot "externe".

Le nouveau MQL4 utilise l'entrée. Commencez par là.

Les variables externes sont toujours réinitialisées juste avant l'appel à OnInit - c'est un paramètre d'entrée externe !

Les variables externes (globales) sont réinitialisées, et c'est bien. Et les variables globales (non externes) ne le sont pas, et ce n'est pas bon.
 
Slawa:

Oubliez le mot "externe".


Ouais, j'ai d'abord appris à marcher et à parler

et maintenant apprendre à s'asseoir et à se taire)

 
Slawa:

Oubliez le mot "externe".

Le nouveau MQL4 utilise l'entrée. Commencez par là.

Les variables externes sont toujours réinitialisées juste avant l'appel à OnInit - c'est un paramètre d'entrée externe !

Il serait bon de refléter cela dans la documentation.
 
Maxim Khrolenko:
Et le global (pas l'externe) ne l'est pas, et ce n'est pas bon.

Pourquoi n'est-ce pas bon ? Il est explicitement dit que les variables globales sont initialisées une fois au démarrage du programme.

Vous voulez un comportement différent, initialisez comme vous le souhaitez dans OnInit