Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1591

 
Maxim Kuznetsov:

avec static dans mql tout est en marche et plein d'erreurs. Le code est toujours construit/compilé comme un tout, sans obj intermédiaire et la déclaration de static est juste un hommage à la tradition.

Si l'on utilise du statique dans mql - c'est presque 100% du monde C/C++/C# ; ou alors on a jeté un coup d'œil et on a ridiculement imité :-)

Mais il y a aussi __thread__ :-)

Si vous écrivez les statiques dans un module et non dans les fonctions, oui. Le codeur ne sait probablement pas ce qu'il fait. :) Et en ce qui concerne les variables locales des fonctions et, lesvariables locales des méthodes de classe, et aussi les champs de classe, c'est même une chose très utile, je pense.

Des erreurs peuvent être commises en cas de mauvaise compréhension du conceptde variables statiques et, par conséquent, d'utilisation incorrecte de celles-ci.
 
MakarFX:

après

ajouter

n'a pas aidé) où que je le mette)

 
Mihail Matkovskij:

Si vous écrivez du statique dans un module et non dans une fonction, oui. Le codeur ne sait probablement pas ce qu'il fait. :) Et en ce qui concerne les variables locales des fonctions et, lesvariables locales des méthodes de classe, et aussi les champs de classe, c'est même une chose très utile, à mon avis.

La façon de résoudre les conflits de dénomination simples est d'ajouter m_ a_ bullshit aux entités, car le compilateur ne connaît pas la portée et les jurons.

Deux programmeurs indépendants ne doivent pas nommer les fonctions, les classes et les variables globales de la même façon. Et les paramètres des méthodes et des fonctions doivent être uniques. Il en va de même pour les variables locales.

pas de statique ici :-)

Désolé, je me suis trompé.

 
законопослушный гражданин:

ça n'a pas aidé) où que je le mette)

Si vous voulez comprendre le code, examinez toute la logique de l'EA, ce qu'elle fait et dans quelles conditions.

J'ai décrit l'ensemble du conseiller très clairement, même pour les débutants, si vous ne comprenez pas, demandez.

Si vous voulez faire rédiger une évaluation environnementale pour vous, en tant que "citoyen respectueux de la loi", rendez-vous ici.

 
Maxim Kuznetsov:

La façon de résoudre les conflits de nommage simples est d'ajouter les m_ a_ bullshit aux entités parce que le compilateur ne sait pas comment scope et jurer.

Deux programmeurs indépendants ne doivent pas nommer les fonctions, les classes et les variables globales de la même façon. Et les paramètres des méthodes et des fonctions doivent être uniques. Il en va de même pour les variables locales.

pas de statique ici :-)

Désolé, je me suis trompé.

Les tâches peuvent être différentes et n'utiliser les variables statiques que pour résoudre les conflits d'espace de noms, bien sûr, vous ne devriez pas (mais c'est inexact... :)). Mais vous pouvez, par exemple, enregistrer combien d'objets d'une certaine classe ont été créés. De même, les constantes statiques, une chose très pratique. Méthodes statiques, etc. Vous pouvez vous passer de statique, bien sûr. Mais tout cela dépend de nombreux facteurs. La tâche à accomplir et les moyens de la résoudre. Bien sûr, cela dépend de la compréhension qu'ontles programmeurs du concept de programmation, en premier lieu.

 
Mihail Matkovskij:

Les tâches peuvent être différentes et utiliser des variables statiques juste pour résoudre les conflits d'espace de noms n'est certainement pas une bonne idée (mais c'est inexact... :)). Mais, par exemple, vous pouvez écrire combien d'objets d'une certaine classe ont été créés. De même, les constantes statiques, une chose très pratique. Méthodes statiques, etc. Vous pouvez le faire sans statique, bien sûr. Mais tout cela dépend de nombreux facteurs. La tâche à accomplir et les moyens de la résoudre. Bien sûr, cela dépend de la compréhension qu'ale programmeur du concept de programmation, en premier lieu.

Maintenant, prenez une bibliothèque et #incluez-la...

Vous aurez beaucoup de conflits à l'improviste. La raison en est que l'auteur et vous vous référez à une seule et même chose comme deux personnes raisonnables. Dans un EA simple, double SL - et beaucoup d'avertissements.

Comment diable puis-je nommer un stop loss, de sorte qu'il soit garanti qu'il ne coïncide avec personne (sic !, avec les noms des paramètres des méthodes), s'il s'appelle un stop loss et signifie exactement cela ?

Ooh ! la solution est inp_SL...et m_SL et a_SL de la visibilité... laisser les développeurs faire glisser les métadonnées et les zones de définition dans les noms.

pas d'endroit pour être en colère...

 
Maxim Kuznetsov:

Maintenant, prenez une bibliothèque et #incluez-la pour vous...

vous aurez beaucoup de conflits à l'improviste. Ce n'est pas parce que deux personnes raisonnables, vous et l'auteur, ont fait référence à une seule et même chose comme à une seule et même chose. Dans un EA simple, entrée double SL - et beaucoup d'avertissements.

Comment diable puis-je nommer un stop loss, de sorte qu'il soit garanti qu'il ne coïncide avec personne (sic !, avec les noms des paramètres des méthodes), s'il s'appelle un stop loss et signifie exactement cela ?

Ooh ! la solution est inp_SL...et m_SL et a_SL de la visibilité... laisser les développeurs faire glisser les métadonnées et les zones de définition dans les noms.

pas de place pour la colère...

J'utilise rarement les bibliothèques de chaînes de caractères, car elles me satisfont rarement. Je préfère faire les miens. Mais je peux utiliser une bibliothèque tierce, uniquement si j'ai besoin de créer quelque chose qui a déjàété pensé denombreuses fois avant moi. Et puis ces bibliothèques tierces doivent souvent être modifiées (par exemple, une erreur apparaît soudainement, ou il me manque certaines fonctions ou méthodes nécessaires). Et si les conflits tels que vous les avez décrits sont trop nombreux, il est préférable de chercher une autre bibliothèque. Ou changer les noms par substitution automatique, dans le cas le plus extrême. Mais je ne le ferais pas.

 
MakarFX:

Si vous voulez comprendre le code, parcourez toute la logique de l'EA, ce qu'il fait et dans quelles conditions.

J'ai rendu l'ensemble de l'EA très clair pour vous, même pour les débutants, si vous ne comprenez pas, demandez.

Si vous voulez faire rédiger une EE pour vous, vous pouvez vous rendre ici, comme un "citoyen respectueux de la loi".

Non, je ne veux pas. Je veux le découvrir par moi-même.

Le manuel de MQLQL est écrit dans une langue différente de la mienne, donc je ne comprends pas certaines choses, mais le conseiller expert est expliqué, merci.

 
Maxim Kuznetsov:

Maintenant, prenez une bibliothèque et #incluez-la pour vous...

vous aurez beaucoup de conflits à l'improviste. Ce n'est pas parce que deux personnes raisonnables, vous et l'auteur, ont fait référence à une seule et même chose comme à une seule et même chose. Dans un EA simple, entrée double SL - et beaucoup d'avertissements.

Comment diable puis-je nommer un stop loss, de sorte qu'il soit garanti qu'il ne coïncide avec personne (sic !, avec les noms des paramètres des méthodes), s'il s'appelle un stop loss et signifie exactement cela ?

Ooh ! la solution est inp_SL...et m_SL et a_SL de la visibilité... laisser les développeurs faire glisser les métadonnées et les zones de définition dans les noms.

pas de place pour la colère...

Apparemment, c'est un peu une nuisance...)) Je ne vois jamais l'intérêt d'insérer les grands codes binaires de quelqu'un d'autre dans le corps du programme. Soit ils nécessitent de véritables instructions, soit ils doivent d'abord être décomposés et compris))).

Le générateur de préfixes uniques dans le projet est notre tout))))

 

Je ne comprends pas pourquoi tout le monde parle d'une sorte de conflit de noms... ? Il doit s'agir de programmation procédurale... Pour autant que je sache, s'il y a plusieurs conflits de ce type, ils peuvent être facilement résolus avec des préfixes. C'est tout ce qu'il y a à faire... Pourquoi faut-il que tu écrives autant à ce sujet... ? :)

De plus, il y a longtemps, les développeurs ont ajouté une chose telle que les espaces de noms. Je ne sais pas pour la 4ème version, mais la 5ème l'a depuis longtemps. Donc, je ne vois pas de gros problème.