
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
J'ai maintenant redessiné ma classe
Et ajouté l'héritage ... ( Je pense que je peux me tromper ) de la classe vr_MarketInfoLa classe vr_MarketInfo renvoie des informations sur le point, les chiffres du symbole et vérifie que le lot ne contient pas d'erreurs, et bien d'autres choses dont j'ai besoin pour mon travail, notamment pour tenir un journal dans Excel et sur un graphique.
Lorsqu'on utilise une méthode comme ci-dessus, une liste est donnée lorsqu'on travaille dans Primer.Primer.Primer()
Je voudrais faire quelque chose de plus abrégé...
Où est l'héritage ? Quel est l'intérêt du pointeur ?
Où est l'héritage ? Quel est l'intérêt du pointeur ?
Rédigez un manuel sur MQL4+. Coopérez, connaisseurs, et écrivez-le. 50 dollars :)
Rédigez un manuel sur MQL4+. Coopérez, connaisseurs, et écrivez-le. 50 dollars :)
Tout a été écrit il y a longtemps.
MQL4 == C++ avec de légères limitations.
En fait, ni le manuel, ni la documentation ne donnent de précisions sur la façon d'utiliser les pointeurs ou le nouvel opérateur. Nous pouvons soit deviner, soit attendre que le temps passe. Ou quand quelqu'un dit accidentellement quelque chose quelque part. Je suis choqué de voir comment cela se passe. Il est également intéressant de noter qu'à l'exception de moi et du topicstarter VLadimir, personne ne semble avoir besoin de quoi que ce soit. Bien que je continue à croire que de nombreuses personnes ne comprennent pas ce sujet. Et c'est pourquoi ils ne se mêlent pas de ces questions...
De quels éléments spécifiques avez-vous besoin ? Un principe s'applique partout : faire les choses aussi simplement que possible. N'entrez pas dans le vif du sujet juste pour être dans le vif du sujet. Si un problème peut être résolu simplement, il doit être résolu simplement.
Les pointeurs dynamiques sont nécessaires si votre programme doit travailler dynamiquement avec des objets : création, suppression pendant l'exécution du programme. Si vous savez à l'avance quels objets et combien sont nécessaires dans le programme, vous n'avez pas besoin de pointeurs dynamiques. Mais à moins que vous n'ayez beaucoup d'objets, vous pouvez simplement les créer dans une boucle avec new.
Je trouve par exemple difficile d'apprendre la théorie, montrez-moi un exemple et décrivez comment les fonctions définissent le cercle, le carré, le trapèze ou le triangle.
L'un des articles dont le lien figure dans le premier message contient cet exemple.
Une classe de base avec une méthode virtuelle. Le descendant possède une méthode portant le même nom, qui est utilisée pour effectuer des calculs.
Pour ma part, je trouve qu'il est difficile d'apprendre la théorie, de me montrer un exemple et de décrire comment les fonctions définissent un cercle, un carré, un trapèze ou un triangle ?
Je laisse le trapèze et le triangle à mon propre travail :
Les pointeurs dynamiques sont nécessaires si le programme doit travailler dynamiquement avec des objets : les créer, les supprimer pendant le fonctionnement du programme. Si vous savez à l'avance quels objets et combien seront nécessaires dans le programme, vous n'avez pas besoin de pointeurs dynamiques. Mais à moins que vous n'ayez beaucoup d'objets, il est plus facile de les créer dans une boucle avec new.
Votre cours est redondant à 90%. Seules deux fonctions effectuent le travail principal, ce sont les openorders et tip Pourquoi utiliser Sel, Buy SelStop, etc., alors qu'en fait elles appellent toutes Openorders ? De plus, le type d'ordre est passé en tant que int, donc il n'est pas protégé. Au lieu de int, vous devriez utiliser votre propre énumération ou le standard ENUM_ORDER_TYPE. Et en général, il vaut mieux ne jamais utiliser les nombres magiques "1", "2" etc., seulement des énumérations. Cela vous empêchera d'envoyer la valeur d'ordre gauche à la fonction. La fonction Openorders elle-même est trop importante. De toute évidence, il se compose de deux blocs, celui de la conclusion d'un accord et celui de la vérification des conditions. Chacun d'entre eux devrait être une fonction privée distincte.
C'est un bon début, mais il y a encore beaucoup à apprendre. La fonction de pointe serait mieux réécrite comme suit :
Quelles sont les spécificités nécessaires ? Le même principe s'applique partout : tout doit être fait aussi simplement que possible. Vous n'avez pas besoin d'aller dans le désert juste pour être dans le désert. Si un problème peut être résolu simplement, il doit être résolu simplement.
Les pointeurs dynamiques sont nécessaires si le programme doit travailler dynamiquement avec des objets : création, suppression pendant le fonctionnement du programme. Si vous savez à l'avance quels objets et combien seront nécessaires dans le programme, vous n'avez pas besoin de pointeurs dynamiques. Mais sauf quand il y a beaucoup d'objets, il est plus facile de les créer dans une boucle via new.