Questions des débutants MQL5 MT5 MetaTrader 5 - page 1414
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Je peux comprendre cela, merci. Mais je ne comprends toujours pas quel stop loss s'applique si le premier EA achète 0,01 lot et le deuxième 0,05 lot. Il y a alors une position ouverte de 0,06 lot, non ? Et quel StopLoss s'applique alors à cette position ? Le premier, le deuxième ou un agrégat ?
Ok, si c'est le cas, j'ai enfin compris le principe sous-jacent d'un compte de netting : Il n'y a qu'une seule position, qui est un agrégat de tous les trades précédents ; et celui qui a fixé en dernier le SL et le TP - que ce soit via la méthode OrderSend ou via PositionModify ou autre - a fixé le SL et le TP pour toute la position, que cela convienne ou non aux autres EA.
En d'autres termes, l'utilisateur doit être conscient, lorsqu'il utilise plusieurs EA sur un seul et même symbole avec un compte de netting, qu'il doit fixer le SL et le TP des différents EA de manière identique, afin que ceux-ci ne fonctionnent pas différemment de ce qui était prévu à l'origine - à moins que ceux-ci n'aient une fonction de protection et n'ouvrent une position "interne" que si aucune position n'est ouverte sur le symbole en question. Et pour cela, la fonction PositionSelect() que tu as mentionnée plus haut est très utile.
En d'autres termes, l'utilisateur doit être conscient, lorsqu'il utilise plusieurs EA sur un seul et même symbole avec un compte de netting, qu'il doit fixer le SL et le TP des différents EA de manière identique, afin que ceux-ci ne fonctionnent pas différemment de ce qui était prévu à l'origine - à moins que ceux-ci n'aient une fonction de protection et n'ouvrent une position "interne" que si aucune position n'est ouverte sur le symbole en question. Et pour cela, la fonction PositionSelect() que tu as mentionnée plus haut est très utile.
Mais pour être sûr, je testerais encore une fois si, lors d'une autre commande, le SL et le TP sont repris ou s'il vaut mieux modifier ensuite séparément le SL et le TP - je n'en ai pas l'expérience !
Oui, il faut certainement tout essayer. En ce qui concerne le compte de netting, je ne l'ai pas fait jusqu'à présent, mais je l'ai fait avec la valeur tradeResult.deal que j'avais sauvegardée comme positionTicket.
J'ai constaté que si j'exécute l'EA et que j'envoie des ordres à cours limité entre les ordres au marché que j'utilise exclusivement dans l'EA (à l'exception du SL et du TP), le ticket de la position ouverte n'est pas du tout identique à tradeResult.deal, mais à tradeResult.order. Et comme décrit sur la page Propriétés de la position, le ticket de la position peut simplement changer, alors que POSITION_IDENTIFIER ne change pas, mais est invariablement identique au ticket de l'ordre qui a ouvert la position, c'est-à-dire au tradeResult.order de l'entrée de la transaction.
Qui sait où l'on peut négocier l'USDKZT ?
Je viens de faire un essai avec le compte de netting. Si on envoie un ordre de vente au marché à 1 lot avec un StopLoss à 1,1 EURUSD et qu'on envoie ensuite un ordre de vente au marché à 1 lot avec un StopLoss à 1,05 EURUSD, alors toute la position de netting à 2 lots a le StopLoss à 1,05 EURUSD. Cela signifie que si l'on exécute deux EA concurrentes sur un symbole, qui gèrent le StopLoss et le TakeProfit différemment, cela peut conduire au chaos. Je vais donc vérifier dans mon EA avec PositionSelect() si une position est déjà ouverte et, le cas échéant, faire attendre mon EA jusqu'à ce qu'il n'y en ait plus, avant qu'ils ne s'emmêlent encore.
Je viens de passer en revue The checks a trading robot must pass. Les informations étaient très utiles. Cependant, la question des appels de marge m'est apparue. Je ne sais pas si j'ai bien compris.
Actuellement, mon EA fait deux choses pour éviter les appels de marge : Avant un trade qui ouvre ou pourrait ouvrir une position, il vérifie à l'aide de OderCalcMargin(...) et ACCOUNT_MARGIN_FREE si la marge peut être appliquée. Ensuite, si une position doit être ouverte, il regarde si le montant du StopLoss dépasse la marge à payer. Et c'est justement sur le deuxième point que je ne sais pas si je n'ai pas mal compris quelque chose.
Supposons que la marge soit de 500 $, que le marché aille dans ma direction et que mon StopLoss n'intervienne ou ne se déclenche qu'en cas de perte de 1000 $. Si la valeur P&L ouverte de ma position est de -750$, c'est-à-dire que la marge de 500$ est épuisée, est-ce que je reçois un appel de marge ? La vérification du SL aurait-elle donc un sens ? - Car c'est une chose que je ne veux pas essayer.