Erreurs, bugs, questions - page 2751

 
Alexey Navoykov:

Comment se fait-il que vous l'ayez déclaré comme const, mais que sa valeur change.

Hélas, je suis comme vous... Même idéaliste, pour qui il est plus logique et compréhensible d'écrire en VS C# - là, le compilateur ne permet pas de séparer un concept logique de constante du contrôle machine du C++ avant la compilation.

n'a pas hésité à poser des questions

https://www.mql5.com/ru/forum/1111/page2680#comment_15546412


le fait est que tout est logique en C++ ;)

 
Alexey Navoykov:

Vous n'avez pas besoin de cette ***. _Symbol est une constante, il n'y a donc aucun problème avec elle(bien qu'il soit plus correct d'appeler Symbol()).

Qu'y a-t-il de mal à l'écrire pour un utilisateur ?

const string _Symbol = ::Symbol();

Et un tick est une variable - comment imaginer qu'il soit déclaré comme const, mais que sa valeur change.

Bid/Ask dans MT4. Bien sûr, RefreshRates() est là.


J'ai récemment découvert un symbole sur lequel les chiffres étaient mal réglés. J'ai demandé à mon courtier de le corriger. Il l'a fait à la volée. Je n'ai pas regardé si j'avais changé la valeur de la variable _Digits et Digits(). Mais juste le fait que le symbole peut changer ses valeurs à la volée.

 
Chers développeurs, est-il possible de faire en sorte que la fenêtre du graphique ressemble aux autres fenêtres, comme dans WIN 10 ? Il est également possible de "repeindre" le cadre de la fenêtre graphique, et le cadre du terminal en général, en noir.
En fonction de la palette de couleurs, par exemple. Les larges cadres blancs sur les graphiques noirs sont ennuyeux, irritants et empêchent de s'enrichir. S'il vous plaît !!!
 
Igor Makanu:

Hélas, je suis comme vous... Je suis le même idéaliste qui trouve plus logique et compréhensible d'écrire en VS C# - le compilateur ne permet pas de séparer la notion logique de constante du contrôle machine du C++ avant la compilation.

n'a pas hésité à poser des questions

https://www.mql5.com/ru/forum/1111/page2680#comment_15546412

Dans le premier cas, vous avez une variable statique, pas un membre de la classe, donc la constante n'a rien à voir avec elle.

 
Alexey Navoykov:

Vous n'avez pas besoin de ce ***. _Symbol est une constante, il n'y a donc aucun problème avec elle (bien qu'il soit plus correct d'appeler Symbol()). Un tick est une variable. Comment imaginer qu'il soit déclaré comme const, mais que sa valeur change.

Vous mélangez la constance du côté du MQL et du côté du noyau. L'essence de la déclaration d'une structure avec le modificateur const est que le code MQL ne peut pas la modifier. Par analogie, vous pouvez décrire une méthode de la classe const, qui empêche l'objet de changer dans cette méthode, mais qui ne signifie pas que l'objet lui-même ne peut pas changer d'état par d'autres conditions.

 

Pourquoi ne puis-je pas voir les variables globales du terminal dans le testeur en mode visuel (émulé, bien sûr) ?

Les variables globales du terminal fonctionnent-elles dans le testeur ?

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Глобальные переменные создаются путем размещения их объявлений вне описания какой-либо функции. Глобальные переменные определяются на том же уровне, что и функции, т. е. не локальны ни в каком блоке. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе...
 
Andrey Dik:

Pourquoi ne puis-je pas voir les variables globales du terminal dans le testeur en mode visuel (émulé, bien sûr) ?

Les variables globales du terminal fonctionnent-elles dans le testeur ?

Cela a toujours été possible (F3). Ils fonctionnent.

 
Alexey Navoykov:

Dans le premier cas, vous modifiez une variable statique, et non un membre de la classe, de sorte que la constante n'a rien à voir avec elle.

Ce script doit-il retourner sum = 0 ?

ou ce script devrait-il même retourner une erreur de compilation?

void OnStart()
{
   int sum = 0;
   for(int i = 0; i < 3 ; i++)
   {
      const int j = f(i);
      sum += j * i;
   }
   printf("sum = %i", sum);
}
//+------------------------------------------------------------------+
int f(int v)
{
   return(v);
}
//+------------------------------------------------------------------+
 
Igor Makanu:

Le script doit-il retourner sum = 0 ?

Ou ce script devrait-il même retourner une erreur de compilation?

Lancez au moins un débogueur avant d'écrire des déclarations ridicules.
À la deuxième boucle, i == 1 et j == 1, et à la troisième et ainsi de suite, les deux sont un de plus.

 
Sergey Dzyublik:

Lancez au moins un débogueur avant d'écrire des déclarations ridicules.
À la deuxième boucle, i == 1 et j == 1, et à la troisième et ainsi de suite, les deux sont un de plus.

Finis au moins l'école avant d'accuser des étrangers de quelque chose.

en langue russe, un point d'interrogation à la fin d'une phrase ne signifie pas affirmation !