C'est marrant
Cette méthode SelectPosition() n'est pas documentée dans la doc
CTrade - Classes pour le Trading - Bibliothèque Standard - Référence MQL5 - Référence sur le langage de trading algorithmique/automatisé pour MetaTrader 5
//+------------------------------------------------------------------+ //| Position select depending on netting or hedging | //+------------------------------------------------------------------+ bool CTrade::SelectPosition(const string symbol) { bool res = false; //--- if(IsHedging()) { uint total = PositionsTotal(); for(uint i = 0; i < total; i++) { string position_symbol = PositionGetSymbol(i); if(position_symbol == symbol && m_magic == PositionGetInteger(POSITION_MAGIC)) { res = true; break; } } } else res = PositionSelect(symbol); //--- return(res); }

- www.mql5.com
Bonjour Gerard !
Personnellement, jusqu'ici, de toutes les classes dédiées au trading disponibles dans la bibliothèque standard Mql5, CTrade est la seule classe que j'utilise dans mes projets.
Et parlant toujours de la bibliothèque standard Mql5, j'utilise aussi ses classes dédiées à la création d'objets graphiques complexes, notamment les combobox, les cases à cocher, le calendrier, etc.
Bonjour Gerard !
Personnellement, jusqu'ici, de toutes les classes dédiées au trading disponibles dans la bibliothèque standard Mql5, CTrade est la seule classe que j'utilise dans mes projets.
Et parlant toujours de la bibliothèque standard Mql5, j'utilise aussi ses classes dédiées à la création d'objets graphiques complexes, notamment les combobox, les cases à cocher, le calendrier, etc.
j'espère que tu regarde bien les codes des méthodes, je trouve que certaines sont vraiment bizarre
exemple
bool CTrade::PositionClose(const string symbol, const ulong deviation) et bool CTrade::PositionClose(const ulong ticket, const ulong deviation) {
il faudrait faire de ces 2 approches qu'une BONNE méthode
La deuxième est bien mieux
j'espère que tu regarde bien les codes des méthodes, je trouve que certaines sont vraiment bizarre
exemple
il faudrait faire de ces 2 approches qu'une BONNE méthode
La deuxième est bien mieux
Je crois que selon les cas, chacune de ces méthodes peut avoir sa raison d'être. Tout est question du contexte et de ce que l'on souhaite exactement faire. Du coup, je trouve que chacune de ces méthodes est valable, à mon avis.
Je crois que selon les cas, chacune de ces méthodes peut avoir sa raison d'être. Tout est question du contexte et de ce que l'on souhaite réellement faire. Du coup, je trouve que chacune de ces méthodes est valable, à mon avis.
La première méthode sans le ticket dans la signature, supprime le premier trade sans que tu puisses sélectionner quoi que se soit pour identifier le trade.
S'il n'y a qu'un trade à fermer ça peut le faire, pas de sélection.
Par contre si plusieurs trades, c'est plus compliqué
Alors "oui" tu peux aussi l'appeler à travers une boucle pour clôturer tout un tas de trades, mais ca se fera toujours sans sélection précise.
En clair, je n'aime pas du tout ce flottement
La première méthode sans le ticket dans la signature, supprime le premier trade sans que tu puisses sélectionner quoi que se soit pour identifier le trade.
S'il n'y a qu'un trade à fermer ça peut le faire, pas de sélection.
Par contre si plusieurs trades, c'est plus compliqué
Alors "oui" tu peux aussi l'appeler à travers une boucle pour clôturer tout un tas de trades, mais ca se fera toujours sans sélection précise.
En clair, je n'aime pas du tout ce flottement
Oui, je vois ce que tu évoques. Mais, je pense qu'il faut lire (chose que je n'ai pas fait) la documentation sur cette méthode pour savoir si elle ne supprime que la première occurrence ou tous les trades en cours avec le symbole indiqué.
Lorsque tu dis "toujours sans sélection précise"... Non, il y a bel et bien sélection dans ce cas. Et la sélection ici, c'est justement le symbole qui est passé en paramètre. Donc, cette façon de faire est aussi une manière de sélectionner. Ainsi, comme je le disais précédemment, tout est question de ce que l'on veut exactement à un moment donné.
Oui, je vois ce que tu évoques. Mais, je pense qu'il faut lire (chose que je n'ai pas fait) la documentation sur cette méthode pour savoir si elle ne supprime que la première occurrence ou tous les trades en cours avec le symbole indiqué.
Lorsque tu dis "toujours sans sélection précise"... Non, il y a bel et bien sélection dans ce cas. Et la sélection ici, c'est justement le symbole qui est passé en paramètre.
oui bien sur un trade à fermer sur le symbol qui est donné dans la signature.
Mais s'il y a plusieurs trades sur le symbol, tu l'as dans l'os, car tu ne peux pas les sélectionner/identifier par le ticket
Et sauf erreur de ma part, tu ne peux pas le sélectionner avec puis lancer la méthode.
Comme tu vois, c'est du flou et c'est justement cela que je regrette dans cette classe
oui bien sur un trade à fermer sur le symbol qui est donné dans la signature.
Mais s'il y a plusieurs trades sur le symbol, tu l'as dans l'os, car tu ne peux pas les sélectionner/identifier par le ticket
Et sauf erreur de ma part, tu ne peux pas le sélectionner avec puis lancer la méthode.
Comme tu vois, c'est du flou et c'est justement cela que je regrette dans cette classe
En tout cas, je pense qu'il n'y a pas du tout de flou avec ces deux méthodes, et j'essaie personnellement de me mettre à la place de leur concepteur. Je pense que son idée, elle est simple à comprendre :
> Tu veux supprimer un trade dont tu connais précisément le ticket, peu importe son symbole, tu utilises la méthode prenant un ticket en paramètre.
> Tu veux supprimer un trade dont tu ne connais pas le ticket mais dont tu connais quand même le symbole, et bien, tu passes ce symbole. Ceci est très compréhensible, surtout dans le cas où tu peux avoir plusieurs trades en cours sur de symboles différents. Et dans ce genre des cas, indiquer à ton EA le symbole des trades à supprimer est bel et bien une façon de sélectionner. Et même dans les cas où tu as plusieurs trades en cours sur un même symbole et dans le même temps plusieurs autres trades sur plusieurs autres symboles, le fait de les supprimer sur la base du fait qu'ils sont de tel ou tel autre symbole est encore une fois une façon de faire une sélection.
Aussi, j'aimerais ajouter qu'en réalité, ce sont des méthodes surchargées et que l'appel à l'une ou à l'autre d'entre elles sera automatiquement gérée par Mql5 selon que tu auras passé en paramètre un symbole ou un ticket.
En tout cas, je pense qu'il n'y a pas du tout de flou avec ces deux méthodes, et j'essaie personnellement de me mettre à la place de leur concepteur. Je pense que son idée, elle est simple à comprendre :
> Tu veux supprimer un trade dont tu connais précisément le ticket, peu importe son symbole, tu utilises la méthode prenant un ticket en paramètre.
> Tu veux supprimer un trade dont tu ne connais pas le ticket mais dont tu connais quand même le symbole, et bien, tu passes ce symbole. Ceci est très compréhensible, surtout dans le cas où tu peux avoir plusieurs trades en cours sur de symboles différents. Et dans ce genre des cas, indiquer à ton EA le symbole des trades à supprimer est bel et bien une façon de sélectionner. Et même dans les cas où tu as plusieurs trades en cours sur un même symbole et dans le même temps plusieurs autres trades sur plusieurs autres symboles, le fait de les supprimer sur la base du fait qu'ils sont de tel ou tel autre symbole est encore une fois une façon de faire une sélection.
Aussi, j'aimerais ajouter qu'en réalité, ce sont des méthodes surchargées et que l'appel à l'une ou à l'autre d'entre elles sera automatiquement gérée par Mql5 selon que tu auras passé en paramètre un symbole ou un ticket.
Si ticket est présent ou pas....

- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation