L'avenir de MQL5 est MQL5+ ou même MQL6 - page 8

 
Karputov Vladimir:

Je ne sais pas ce qu'est le test simultané sur plusieurs TF, mais le fait que vous ne puissiez pas passer à d'autres TF au moins après le test n'est pas bon. Eh bien, le changement pendant les tests visuels serait génial.
 

L'avenir... Eh bien, eh bien. "Merci, c'est drôle" (c).



 
Lors de l'optimisation, j'aimerais voir le résultat de l'exécution sous forme de pourcentage, plutôt que les chiffres affichés dans la colonne "Résultat". Et dans le backtest, ce serait bien si le résultat "Bénéfice net" avait un bénéfice en %.
 
Rinat Tukaev:
Lors de l'optimisation, j'aimerais voir le résultat de l'exécution sous forme de pourcentage, plutôt que les chiffres affichés dans la colonne "Résultat". Et dans le backtest, ce serait bien si le résultat "Bénéfice net" avait un bénéfice en %.
Insérez votre formule dans le gestionnaire d'événement OnTester() et voyez le résultat dont vous avez besoin.
 
Yury Reshetov:
Insérez votre formule dans le gestionnaire d'événement OnTester() et obtenez le résultat souhaité.
Merci ! Je ne le savais pas)
 
Je suggère de faire en sorte que les variables globales du programme ne croisent pas les variables et paramètres des plugins de MQL4 et MQL5. J'ai déclaré une variable 'point' dans mon conseiller expert et maintenant je reçois beaucoup de messages comme : "La déclaration de 'point' cache la déclaration globale dans le fichier 'expert.mq4' à la ligne 153 ChartObject.mqh 154 39". C'est horrible quand on ne peut pas déclarer une variable dans un module, un programme, qui est dans les paramètres d'un autre module. Pourquoi le module ChartObject.mqh doit-il voir mon Expert Advisor, expert.mq4, si ChartObject.mqh ne le déclare pas explicitement ?
 
Mihail Matkovskij:
Je suggère de faire en sorte que les variables globales du programme ne croisent pas les variables et paramètres des plugins de MQL4 et MQL5. J'ai déclaré une variable 'point' dans mon conseiller expert et maintenant je reçois beaucoup de messages comme : "La déclaration de 'point' cache la déclaration globale dans le fichier 'expert.mq4' à la ligne 153 ChartObject.mqh 154 39". C'est horrible quand on ne peut pas déclarer une variable dans un module, un programme, qui est dans les paramètres d'un autre module. Pourquoi le module ChartObject.mqh doit-il voir mon Expert Advisor, expert.mq4, si ChartObject.mqh ne le déclare pas explicitement ?
Il est évident que cela vous aiderait
#property strict
 
Igor Volodin:
Il est évident que cela vous aidera.
Oui, j'ai cette ligne dans mon EA, mais elle n'est pas dans le module ChartObject.mqh. Je ne vais pas réécrire tous les modules standards à cause de ça...
 
Mihail Matkovskij:
Oui, j'ai cette ligne dans mon Expert Advisor, mais elle n'est pas dans le module ChartObject.mqh. Je ne vais pas réécrire tous les modules standards à cause de ça...


Je l'ai. Dans ce cas, ne créez pas de variables globales. Vous pouvez vous en passer. Sinon, avec n'importe quelle coïncidence, comme un nom très commun :

int i;

Les déclarations globales seront écrasées par les déclarations locales. C'est ce dont on vous avertit.

Et le plugin n'a pas sa propre portée, ce n'est pas un module, c'est juste un morceau de code qui sera inséré là où vous écrivez include.

 
Igor Volodin:


Je l'ai. Alors ne créez pas de variables globales. Vous pouvez vous en passer.

Que voulez-vous dire, ne pas les créer ? Dans n'importe quel langage de programmation, les variables globales sont utilisées librement et c'est ok, mais le compilateur jure. L'erreur n'est pas cruciale, mais elle est tout de même gênante.

double point = MarketInfo(EA_Symbol(), MODE_POINT);

Le point variable rapporte le prix d'un point et remplace le point standard. La fonction MarketInfo(EA_Symbol(), MODE_POINT) donne le prix de 1 point pour n'importe quel symbole. En outre, le point variable peut être utilisé dans n'importe quelle fonction, dans le corps de l'EA, s'il s'agit d'une variable globale bien sûr. Je suis d'accord pour dire que de tels cas causent assez souvent des inconvénients (si vous avez certainement de l'expérience dans la programmation en MQL). Et bien qu'ils puissent être évités, la question est de savoir pourquoi, si dans d'autres langues modernes ces problèmes n'existent tout simplement pas ?