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

 
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 ?
 
Benjamin Fotteler #:
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 ?
Je pense que c'est le dernier qui a été saisi.
 

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.

Documentation on MQL5: Trade Functions / PositionSelect
Documentation on MQL5: Trade Functions / PositionSelect
  • www.mql5.com
PositionSelect - Trade Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Benjamin Fotteler 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.

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 !

 
Bonjour bonjour, quelqu'un peut m'aider, je n'arrive à télécharger aucun indicateur de mql5 pour mt5, je donne télécharger l'indicateur dans mql5 j'obtiens une fenêtre me demandant si j'ai mt5 je lui donne oui, puis ouvre automatiquement mt5 dans la section de marquage ou de marché et ne télécharge rien.
J'ai essayé d'entrer l'utilisateur et le mot de passe de mql5 dans mt5 dans la section outils, communauté, pour les télécharger directement par mt5 directement et rien ne se télécharge rien, juste fait le même son quand une opération ne rentre pas ou il y a une erreur lotaje....

Mon pc est windows 8.1 32 bit, je ne sais pas si le système d'exploitation a quelque chose à voir.
J'apprécie l'aide, merci beaucoup.
 

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, on risque d'aboutir au chaos. Je vais donc vérifier dans mon EA avec PositionSelect() si une position est déjà ouverte et, le cas échéant, laisser mon EA attendre jusqu'à ce qu'il n'y en ait plus, avant qu'ils ne s'emmêlent.
 
Benjamin Fotteler #:
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.
Merci pour le test ! Comme je le supposais, sur un compte de netting, les positions ouvertes n'ont pas de 'mémoire'. Ou alors on prend un compte de couverture, où chaque position a alors le numéro magique de 'son' EA, qui peut alors les gérer.
 

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.