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
Alors faites une usine. Cela résoudrait le problème.
C'est assez facile de travailler là-dedans comme ça. L'objet est structuré de manière assez rigide. Il appelle une méthode virtuelle Load de chacun de ses membres, qui à leur tour font de même. Au début de chaque bloc de données (objet), l'ID du type est écrit (pour le contrôle lors du chargement). C'est tout ce qu'il y a à faire. Il s'agit d'une sorte d'usine artisanale.
Il est logique de créer une usine si un type inconnu peut se trouver dans le fichier. Il faudra alors créer une usine et une table de registre des types. Bien que le problème ne soit pas aussi résolu, je me suis débrouillé avec des trombones et du ruban adhésif. :)
Le fan de Gunn.
Si le deuxième point d'ancrage se trouve dans le futur, l'angle change.
De plus, cet objet a quelques problèmes de copie (avec Ctrl enfoncé). Très souvent, il ne copie pas, mais traîne l'original, et il faut la troisième ou la cinquième tentative pour copier.
OK, super.
Slava, puis-je demander (pour le développement général) pourquoi vous ne pouvez pas initialiser la table des méthodes virtuelles au début du constructeur (après l'initialisation de l'ancêtre) ?
Je vous l'ai déjà dit. Les constructeurs établissent la hiérarchie. Tant qu'un ancêtre est en cours de construction, il n'y a aucune information sur les descendants.
Je l'ai déjà lu. Et je l'ai très bien compris. Et j'ai posé une question basée sur ma compréhension de ce que j'ai lu. Je vais essayer d'être plus clair, avec des images.
Je comprends tout, c'est plus difficile à faire, il y a toutes sortes de subtilités. Il est beaucoup plus facile et polyvalent (pour vous) d'écrire toute l'initialisation implicite à la fin. Et je crois même à l'avance que "personne ne fait ça" et que "ce n'est pas l'usage en C++" etc.
Mais pour nous (utilisateurs), il est plus simple, plus universel, raisonnable et logique de considérer le constructeur MySecond() comme un territoire de la classe MySecond et non MyFirst. Réfléchissez à ce qui est le plus facile : faire fonctionner les fonctions virtuelles dans les constructeurs ou exprimer des restrictions importantes et sérieuses sur le code des constructeurs dans la documentation à plusieurs endroits, et, malgré cela, recevoir régulièrement des messages importants et sérieux de la part de newbies au Service Desk et au Forum "à propos des bugs virtuels dans les constructeurs". C'est aussi un facteur sérieux - on attend beaucoup de newbies bientôt...
L'opérateur tensoriel avec les structures conduit à une erreur de génération de code (bien que si vous le remplacez par if, cela fonctionne).
Je reçois régulièrement l'erreur 4401
ERR_HISTOIRE_NON_FONDÉE
Le code indicateur suivant
produira une erreur immédiatement au démarrage (si ce n'est pas sur D1). Ou plutôt, une fois après le démarrage du terminal et l'ouverture du graphique - pour mettre l'indicateur, nous aurons une erreur. Si le terminal n'est pas fermé, il n'y aura pas une telle erreur au démarrage.
Mais après un certain temps (quelques heures - 2 heures ont suffi pour moi), nous verrons que nous obtiendrons l'erreur sur le graphique déjà ouvert. (Je l'ai fait fonctionner sur m30)
Bonjour, messieurs les développeurs !
Pouvons-nous apporter des modifications au compilateur MQL5 pour qu'il nous donne au moins un avertissement ?
pour les erreurs de ce genre dans le code.
if(Flag_Exitl=true) {break;}
La condition de comparaison ici n'est pas correcte (elle devrait être == ), c'est pourquoi il y aura toujours une rupture.
Comment remédier à cette situation dans le compilateur (si c'est possible), afin que je puisse avoir moins de bosses en écrivant du code ?
(Je pensais que cela ne marcherait pas, il semble séparer l'affectation et la comparaison dans if, puis la question est supprimée).
Bonjour, messieurs les développeurs !
Est-il possible de modifier le compilateur MQL5 pour qu'il donne au moins un avertissement ?
pour les erreurs de ce genre dans le code.
if(Flag_Exitl=true) {break;}
La condition de comparaison n'est pas correcte (elle devrait être == ), c'est pourquoi il y aura toujours une rupture.
Comment remédier à cette situation dans le compilateur (si c'est possible), de manière à ce que je puisse avoir moins de bosses en écrivant du code ?
(J'ai pensé que ça ne marcherait pas, je pourrais séparer l'affectation et la comparaison en if, ainsi la question est supprimée).
La condition peut être écrite de manière incorrecte mais elle est autorisée dans MQL5.
Je vais traduire ce que vous avez codé : assigner la valeur vraie à la variable Flag_Exitl et ensuite vérifier si Flag_Exitl est vrai, puis break.
La séquence d'actions est exactement la suivante.
Je ne comprends pas bien comment travailler avec des tampons qui n'ont pas besoin d'être affichés à l'écran.
Selon le code ci-dessous, pour une raison quelconque
1) ne dessine rien
2) les deux tampons sont appelés Label1
bien qu'ils contiennent les bonnes données
Bonjour. J'écris peut-être dans la mauvaise direction, mais j'espère que vous pourrez m'orienter dans la bonne direction. Où aller avec une question sur l'API Web pour mt5 ? )
Je vais essayer d'expliquer la situation, au cas où. J'ai un gestionnaire МТ et une API WEB avec php... La facture en russe est créée, les données sont envoyées et même affichées dans le gestionnaire МТ, mais il y a un problème - les données dans le gestionnaire МТ sont affichées en unicode ("044404300c0438043b0438044f" - c'est à cela que ressemble le nom d'utilisateur). Lors de l'envoi de données, rien n'est codé ou décodé, depuis le client MT tout est créé normalement... Au moins dans quel sens regarder ? (