Questions des débutants MQL5 MT5 MetaTrader 5 - page 25

 
fyords:

Oui, il est réglé, mais quand il est déclenché...

Ou un autre exemple : nous avons un ordre en attente, son prix diffère de celui du jour d'un point, au tick suivant le prix augmente non pas d'un point, mais, disons, de 3 à 5 points, ce qui entraîne une ouverture à un prix erroné. Un exemple évident est un écart.

Ou peut-être que je ne comprends pas la question et que je suis stupide.

Ici, je comprends mal le fonctionnement de OrderGetTicket. La fonction renvoie alternativement faux et vrai. Même si nous tenons compte du fait que l'ordre est placé à un prix erroné, elle devrait simplement renvoyer faux. Mais alternativement...


UPD : En général, le problème était dans un oubli de NormalizeDouble dans le passage du prix. Comme d'habitude :) La fonction elle-même fonctionne bien.


 
Dites-moi s'il est possible d'écrire
 if (OrderTicket=OrderGetTicket(i)) {//Возвращает тикет соответствующего ордера и автоматически выбирает ордер

La fonction, si aucun ordre n'est sélectionné, donne zéro ?

C'est-à-dire que si l'égal n'est pas double, simple, il s'agira ici d'une affectation et non d'une comparaison ? Le zéro n'est-il pas la même chose que le non ?

Je n'ai pas eu d'erreur tout de suite, mais j'ai réalisé plus tard que je n'avais pas compris ce que j'avais écrit !

 
Dimka-novitsek:
Pouvez-vous nous dire s'il est possible de rédiger

La fonction, si aucun ordre n'est sélectionné, donne zéro ?

C'est-à-dire que si l'égal n'est pas double, simple, il s'agira ici d'une affectation et non d'une comparaison ? Le zéro n'est-il pas la même chose que le non ?

Je n'ai pas eu d'erreur tout de suite, mais j'ai réalisé plus tard que je n'avais pas compris ce que j'avais écrit !

L'expression est correcte ; la description de la fonction indique qu'elle renvoie zéro si elle échoue. Zéro pour si est faux. La construction fonctionnera donc très bien.

De plus, la fonctionnalité de négociation est si rapide que nous avons envoyé un ordre sur un tick et qu'il est déjà dans l'historique sur le tick suivant, donc cette construction retournera très souvent (mais pas toujours) faux.

Ce code montre que vous vérifiez les ordres que vous avez passés, mais pas encore exécutés. La fonction OnTradeTransaction() est mieux adaptée pour les surveiller.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
MERCI ! !!
 
Je n'ai aucune idée de la façon de traiter les classes, les fonctions virtuelles. J'ai lu, lu, lu... Depuis une heure maintenant, et pas pour la première fois. Il est rédigé de manière assez lourde, incompréhensible et, surtout, parsemé de termes nouveaux et inédits - il suffit de suivre les liens. Ici, il est dit ( Les classes et les structures peuvent avoir un constructeur et un destructeur explicites) allez voir Constructeurs et Destructeurs Il est dit (Le constructeur est une fonction spéciale qui est appelée automatiquement lorsque vous créez un objet structurel ou une classe et est généralement utilisé pour initialiser les membres de la classe) En bref, je ne comprends pas.
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 
Dimka-novitsek:
Je n'ai aucune idée de la façon de traiter les classes, les fonctions virtuelles. Lecture, lecture, lecture, lecture. Pendant une heure, et pas pour la première fois. Il est écrit de manière un peu lourde, incompréhensible, et l'essentiel est couvert par des termes nouveaux et inédits - il suffit de suivre les liens. Il est dit ( Les classes et les structures peuvent avoir un constructeur et un destructeur explicites) Je vais regarder Constructeurs et Destructeurs Il est dit (Le constructeur est une fonction spéciale qui est appelée automatiquement lors de la création d'un objet structurel ou d'une classe et est généralement utilisé pour initialiser les membres de la classe) En bref, je ne comprends pas.

Un constructeur est une fonction appelée automatiquement lors de la création d'un objet de classe et sert à initialiser l'objet.

C'est plus clair ? Sinon, je suis impuissant.

 
Merci ! Très bien. Je vais aller jouer au foot maintenant. Je reviendrai, je ferai mes bagages et je demanderai. Je vais demander. Qu'est-ce qu'une fonction virtuelle? Est-ce qu'il fonctionne quand il veut ? Quel est le mot dynamique ?
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Виртуальные функции
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Виртуальные функции
  • www.mql5.com
Основы языка / Объектно-ориентированное программирование / Виртуальные функции - Документация по MQL5
 

Donc. Elle indique que le choix de la définition de fonction à appeler pour la fonction virtuelle est dynamique (au moment de l'exécution).

La définition de la fonction, qui est entre parenthèses, c'est-à-dire qu'elle ordonne à la machine de faire quelque chose de spécifique, n'est-ce pas ? Mais ici, il s'avère que la machine elle-même fait ce qu'elle veut et quand elle veut, tout comme mon ami Vasya ? Vraiment, j'ai lu cette phrase 100 fois déjà, mais je n'arrive pas à la comprendre. Je ne peux pas le comprendre ! J'essaierai de lire les exemples avec soin et attention...

Et j'ai commencé à lire sur la classe - c'est là que j'ai commencé, à comprendre, j'écrivais sur la fonction !

 
Dimka-novitsek:

Donc. Elle indique que le choix de la définition de fonction à appeler pour la fonction virtuelle est dynamique (au moment de l'exécution).

La définition de la fonction, qui est entre parenthèses, c'est-à-dire qu'elle ordonne à la machine de faire quelque chose de spécifique, n'est-ce pas ? Mais ici, il s'avère que la machine elle-même fait ce qu'elle veut et quand elle veut, tout comme mon ami Vasya ? Vraiment, j'ai lu cette phrase 100 fois déjà, mais je n'arrive pas à la comprendre. Je ne peux pas le comprendre ! J'essaierai de lire les exemples attentivement et avec attention...

Et j'ai commencé à lire sur la classe - c'est par là que j'ai commencé, pour comprendre que j'écrivais sur une fonction !

Tu te moques de moi ?

Apprenez à poser les bonnes questions et vous n'aurez pas à en poser la plupart.

Lesfonctions virtuelles n'ont de sens que dans le contexte de l'héritage.

L'astuce de l'héritage n'est pas seulement que le code peut être réparti sur de nombreuses classes (à mesure que l'héritage augmente),

mais en ce sens que vous pouvez d'abord déclarer un objet ancêtre dynamique et ensuite le défaire en tant que descendant.

Par exemple, un objet doit être déclaré globalement, mais au moment de la déclaration, on ne sait pas de quelle classe l'objet doit être. Ensuite, les classes sont héritées d'un ancêtre commun, un objet dynamique de l'ancêtre est déclaré dans la portée globale et ensuite, quand on sait quelle classe l'objet doit être, il est redéfini par l'opérateur new.

Le mot dynamique est souligné car on ne peut pas faire cela avec un statique, le statique est défini immédiatement et complètement.

 
OK, ça ne rentre pas tout de suite, mais quelque chose se dégage. Merci. Si vous le permettez, je vais demander au fur et à mesure.