Questions des débutants MQL5 MT5 MetaTrader 5 - page 1098
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
Hmm, situation étrange, comme l'activité dans le sujet que j'ai soulevé, j'avais une question, de mon point de vue spécifique, mais au lieu d'une réponse jusqu'à présent j'ai obtenu "pourquoi en avez-vous besoin ?
Je veux le faire avec SB CTrade, voici un exemple (compilé à partir de 2 de mes exemples) : Nous ouvrons chaquenouvelle barre à 9 TF par un ordre, nous mémorisons le ticket et déterminons la direction d'un ordre fermé par le numéro du ticket.
Dans MQL4, le code pour le testeur ressemblerait à ceci
nous avons besoin d'un code pour le testeur, c'est-à-dire le nombre minimum de contrôles et le travail le plus rapide possible dans l'optimiseur.
comment écrire ce code en MQL5 avec SB CTrade ?
Hmm, situation étrange, comme l'activité dans le sujet que j'ai soulevé, j'avais une question, de mon point de vue spécifique, mais au lieu d'une réponse jusqu'à présent j'ai obtenu "pourquoi en avez-vous besoin ?
Je veux le faire avec SB CTrade, voici un exemple (compilé à partir de 2 de mes exemples) : Nous ouvrons chaque nouvelle barre à 9 TF par un ordre, nous mémorisons le ticket et déterminons la direction d'un ordre fermé par le numéro du ticket.
Dans MQL4, le code pour le testeur ressemblerait à ceci
comment écrire ce code dans MQL5 en utilisant SB CTrade ?
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
FAQ des débutants MQL5 MT5 MetaTrader 5
Vladimir Karputov, 2019.07.21 12:56
Ainsi, la base est lePOSITION_IDENTIFIER, mais pas le ticket de position. C'est important juste à cause du filet:
IDENTIFICATEUR DE POSITION
L'identifiant du poste est un numéro unique, qui est attribué à chaque poste nouvellement ouvert et ne change pas pendant toute sa durée de vie. Il correspond au ticket de l'ordre avec lequel la position a été ouverte.
L'identifiant de la position est spécifié dans chaque ordre (ORDER_POSITION_ID) et dans chaque transaction (DEAL_POSITION_ID) qui l'a ouvert, modifié ou fermé. Utilisez cette propriété pour rechercher les ordres et les transactions liés à la position.
Lorsqu'une position est inversée en mode compensation (une seule opération d'entrée/sortie), l'identifiant POSITION_IDENTIFIER de la position n'est pas modifié. Cependant, POSITION_TICKET est changé en ticket d'ordre qui a entraîné l'annulation. En mode couverture, il n'y a pas d'inversion de position.
long
Nous devons donc garder la trace de l'identifiant de la position (POSITION_IDENTIFIER).
Maintenant, une tâche plus précise : au premier lancement, nous ouvrons une POSITION D'ACHAT et la mémorisons (ATTENTION : nous devons mémoriser l'ID de la position, pas le ticket). Si la position a été fermée, nous ouvrons une position opposée : par exemple, il y avait autrefois une position BUY, puis elle a été fermée, ce qui signifie que nous ouvrons immédiatement une position SELL.
Maintenant, il sera beaucoup plus facile de résoudre le problème.
c'est-à-dire que CTrade ne sait pas comment détecter de manière indépendante si un ordre est ouvert ou fermé, quel était le type du dernier ordre fermé ?
quelle bibliothèque dois-je utiliser à cette fin ?
c'est-à-dire que CTrade ne sait pas comment détecter indépendamment si un ordre est ouvert ou fermé, quel était le type du dernier ordre fermé ?
Quelle bibliothèque devons-nous utiliser à cette fin ?
Je vous l'ai déjà dit cent fois, alors s'il vous plaît, retirez le mot "ordre" de votre vocabulaire. Tant que vous n'aurez pas fait ça, vous ne pourrez pas passer à autre chose. De toute façon, je ne pourrai probablement pas vous aider. C'est dommage.
Eh bien, je vous l'ai dit des centaines de fois - enlevez le mot "mandat" de votre vocabulaire. Tant que tu n'auras pas fait ça, tu ne pourras pas avancer. Bref, je ne peux probablement pas vous aider. C'est dommage.
Eh bien, dites-moi ce que vous entendez par là :
Eh bien, je vous l'ai dit des centaines de fois - enlevez le mot "mandat" de votre vocabulaire. Tant que tu n'auras pas fait ça, tu ne pourras pas avancer. Bref, je ne peux probablement pas vous aider. C'est dommage.
OK ? Laissez-moi reformuler la question :
Comment utiliser un ticket mémorisé avec CTrade::ResultOrder()?
pour le découvrir :
1. si la position est fermée ?
2. quel type d'accord le poste fermé avait-il ?
3. nous devons gérer simultanément 9 positions, commandes ou tickets, ou ... OnAnyTerminology sur un compte de couverture
dans cette formulation, ma question est-elle sans ambiguïté ? (exemple reproductible sous MQl4 posté ci-dessus)
ZS : Je ne peux pas oublier l'ordre des mots, malheureusement ce mot est utilisé dans l'aide avec d'autres termes: https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/ctrade/ctraderequestorder.
Hm, c'est une situation étrange, il me semble que j'ai soulevé le sujet, ma question était spécifique de mon point de vue, mais au lieu d'une réponse, j'ai eu droit à "pourquoi en avez-vous besoin ?".
La raison en est l'incompétence des intervenants. Il m'a fallu cinq minutes pour l'écrire et une tentative pour le vérifier.
MT4
Forum sur le trading, les systèmes de trading automatisés et le testeur de stratégie
Questions des débutants MQL5 MT5 MetaTrader 5
fxsaber, 2019.07.21 12:54
MT5
Il n'est pas nécessaire d'être un expert pour écrire cela, il suffit de connaître les bases de MT5.
ZS Sur les filets, il y a une petite nuance pour déterminer le type de position fermée. Mais cela ne joue pas de rôle ici.
Vous n'avez pas besoin d'être fort pour écrire ceci, vous devez juste connaître les bases de MT5.
Merci !
Oui, je cherchais une solution si je ne pouvais pas l'écrire en cinq lignes avec SB
Mais j'ai bien compris qu'un seul SB CTrade ne pourra pas résoudre mon problème et que je dois aussi utiliser CPositionInfo ? - Si je veux accompagner 9 postes par plusieurs TF en même temps ?
ZS : Je suis assis dans l'aide MQL5 avec smart TV - assez bien décrit les fonctions commerciales, l'utilisation de SatB est sous une question .... je pense qu'il est logique d'utiliser SB pour les stratégies primitives, un peu plus compliquées - la fonctionnalité est insuffisante ou l'utilisation pas évidente, peut-être que j'ai besoin de plus de pratique - je vais essayer de "tordre" le SB
Merci encore !
La raison est l'incompétence si répondue. Il m'a fallu cinq minutes pour écrire et une tentative pour vérifier.
MT4
MT5
Il n'est pas nécessaire d'être un expert pour écrire cela, il suffit de connaître les bases de MT5.
Vous n'avez pas besoin de connaître les bases, il vous suffit de connaître les bases de MT5. Mais ça n'a pas d'importance ici.
C'est là que
il existe un piège potentiel.
Dans la liste historique, les mandats ne sont pas classés dans l'ordre dans lequel ils apparaissent dans cette liste. Je suis tombé dessus en développant la bibliothèque. Je m'y suis fié. Mais il s'est avéré que ce n'était pas si simple. Essayez de définir des ordres limite et stop à tour de rôle dans l'ordre suivant : limite -> stop -> limite -> stop -> limite -> stop et supprimez chacun d'entre eux dans n'importe quel ordre et voyez quel est le dernier ordre enregistré dans la liste historique. Vous serez surpris.
C'est là que
il y a une erreur potentielle.
Dans la liste de l'historique, les commandes ne sont pas classées dans l'ordre dans lequel elles apparaissent dans la liste. J'ai rencontré ce problème lors du développement de la bibliothèque. Je m'y suis fié. Mais il s'est avéré que ce n'était pas si simple. Essayez de définir des ordres limite et stop à tour de rôle dans l'ordre suivant : limite -> stop -> limite -> stop -> limite -> stop et supprimez chacun d'entre eux dans n'importe quel ordre et voyez quel est le dernier ordre enregistré dans la liste historique. Vous serez surpris.
Il n'y a pas d'erreur ici, car la liste est générée par HistorySelectByPosition.