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
C'est parti.
Voici comment nous procédons.
Si une variable statique est initialisée avec une constante, cette initialisation sera effectuée à l'étape d'initialisation globale, comme précédemment.
Dans le cas contraire (appel ou initialisation de variable), la variable statique sera initialisée sur la première référence (comme en C++), cette référence sera elle-même enveloppée dans une condition avec une variable/un drapeau global implicite, par exemple
pour le code MQL :
Le pseudo-code suivant sera généré
Vous devrez toujours les séparer d'une manière ou d'une autre dans la fonction.
Pas nécessairement et pas toujours. Je ne vous donnerai pas d'exemples, afin de ne pas encombrer le fil.
Voici ce que nous allons faire.
Oui, à peu près. Car MQL n'a pas de POO à part entière. De plus, il y a beaucoup de bugs, que je signale régulièrement, mais sans succès. Et contre les bugs, je dois me défendre avec des béquilles, que puis-je faire ?
Tu m'as embrouillé. Si dans ... lire vos mots
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Particularités de mql5, trucs et astuces
Alexey Navoykov, 2019.01.25 11:44
Si les paramètres sont de types différents, il est raisonnable de faire plusieurs méthodes surchargées avec les types correspondants. Vous devez de toute façon les partager dans les fonctions, donc il vaut mieux les diviser en fonctions séparées, que de faire un bazar, qui en plus prend un type impersonnel, c'est-à-dire que vous pouvez par erreur tout lui passer et obtenir une erreur de compilation à l'intérieur de la bibliothèque, ce qui n'est pas bon. Ou même ne pas l'obtenir, ce qui est doublement mauvais).
En bref, dans la POO à part entière, les fonctions de template sont une béquille (à quelques exceptions près).
MQL est OK avec la POO, s'ils ajoutent l'héritage multiple(au moins pour les interfaces, car elles sont inutiles dans leur forme actuelle), ce sera parfait.
Ainsi, les interfaces sont la base de la POO normale, et vous dites que tout va bien dans MQL.
Les interfaces sont donc la base de la POO normale, et pourtant vous dites que tout va bien dans MQL.
La base de la POO normale est le polymorphisme, pas les interfaces. Les interfaces sont la base d'une certaine structure de classe. En général, j'aimerais beaucoup parler de ces sujets, mais j'ai bien peur que ce fil de discussion ne soit pas le bon endroit pour cela.
La base de la POO normale est le polymorphisme, pas les interfaces. Les interfaces sont la base d'une certaine structure de classe. En général, je serais heureux de discuter de ces sujets, mais je crains que cette branche ne s'y prête pas.
Nous discutons des particularités du langage MQL et l'absence d'héritage multiple est un trait caractéristique).
D'accord, la base est bien sûr le polymorphisme, mais sans interfaces séparées, ce n'est pas pratique à utiliser. Cela conduit souvent à passer des objets comme arguments de modèle au lieu d'interfaces.
J'ai décrit ici ma variante de simulation d'interfaces multiples. Par conséquent, une classe peut être déclarée comme suit
Nous discutons des particularités du langage MQL et l'absence d'héritage multiple est une particularité).
Ok, la base est certainement le polymorphisme, mais sans interfaces séparées, ce n'est pas pratique à l'usage. Cela conduit souvent à passer des objets comme arguments de modèle au lieu d'interfaces.
J'ai décrit ma variante de l'imitation de plusieurs interfaces ici. En conséquence, une classe peut être déclarée comme telle :
À mon avis, tout n'est pas mauvais. Il n'y a pas tant d'interfaces principales de base en C# que leurs méthodes ne puissent être réduites à une superclasse de base, puis héritées.
P.S. Mettre en œuvre quelque chose de multiple à travers des constructions comme <<<<>>>> est un peu casse-gueule. Il est préférable d'utiliser des opérateurs pour les fonctions, par exemple, a==b appelle a.compareto( b ), a[comparer]==b appelle comparer.compare(a,b), etc.