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

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
Il existe un conseiller expert qui vous permet de déterminer quand un ordre en attente a été déclenché.
https://www.mql5.com/ru/code/17610
Je l'utilise pour obtenir un ticket pour un ordre SELL_STOP
J'ai modifié le code en
Tout va bien jusqu'à un certain moment. Jusqu'à ce qu'un autre type de commande apparaisse dans l'historique.
Par exemple, SELL_LIMIT.
Dès que SELL_LIMIT apparaît dans l'historique, je ne peux pas obtenir un ticket du dernier SELL_STOP.
Le conseiller expert lance une erreur.
L'ordre 9 n'est pas en cours
Bien qu'il y ait un SELL_STOP dans l'historique
Et pourquoi dois-je faire le 9e si j'ai besoin du 7e billet ?
Bonjour. J'obtiens une erreur siStopLoss_=0
échec de la modification #2 vendre 3.00 Si-9.18 sl : 0, tp : 62749 -> sl : 0, tp : 62774 [Arrêts invalides]
Bonjour. J'obtiens une erreur siStopLoss_=0
échec de la modification #2 vendre 3.00 Si-9.18 sl : 0, tp : 62749 -> sl : 0, tp : 62774 [Arrêts invalides]
Une logique incorrecte dans l'écriture du programme.
Lorsque StopLoss_=0, la condition supérieure se déclenche - une tentative de modification du TakeProfit. L'erreur est que vous soustrayez du PRIX OUVERT - dans ce cas le niveau de TakeProfit peut être plus élevé que le PRIX COURANT et ceci est une erreur.
Dans votre cas, soustrayez du PRIX COURANT (m_position.PriceCurrent).
Une position de vente a été ouverte et la limite de vente a été activée, j'ai besoin de déplacer le tp par rapport au nouveau prix de la position, et non par rapport au prix actuel.
Quel type de contrôle dois-je effectuer pour éviter d'essayer de modifier un prix non valide ?
Une position de vente a été ouverte et la limite de vente a été activée, j'ai besoin de déplacer le tp par rapport au nouveau prix de la position, et non par rapport au prix actuel.
Quel type de contrôle dois-je effectuer pour ne pas essayer de modifier un prix non valide ?
Vérifiez :
if(m_position.PriceOpen()-ExtTakeProfit<m_position.PriceCurrent() { m_trade.PositionModify(m_position.Ticket(), m_position.StopLoss(), m_symbol.NormalizePrice(m_position.PriceOpen()-ExtTakeProfit) ); ...
Vérifiez :
Merci, mais l'erreur demeure.
Il pourrait être inacceptablement proche du prix actuel. Comment puis-je le vérifier ?
Merci, mais l'erreur demeure.
Il pourrait être inacceptablement proche du prix actuel. Comment vérifiez-vous cela ?
Je n'ai pas accès à une bourse, alors soit vous le faites vous-même, soit vous travaillez sur des instruments de change. Désolé.
Ajouté : introduire un autre contrôle - pour une position de vente, le nouveau TakeProfit (valeur calculée) ne doit pas être SUPÉRIEUR ou ÉGAL au TakeProfit actuel de la position.
Je n'ai pas accès à une bourse, alors soit vous le faites vous-même, soit vous travaillez sur des instruments de change. Désolé.
Ajouté : introduire un autre contrôle - pour une position de vente, le nouveau TakeProfit (valeur calculée) ne doit pas être SUPÉRIEUR ou ÉGAL au TakeProfit actuel de la position.
Probablement le prix d'ouverture (POSITON_PRICE_OPEN) ?
Probablement le prix d'ouverture (POSITON_PRICE_OPEN) ?
Cette option était ci-dessus. Voir les messages ci-dessus. Vous avez répondu au milieu de la conversation.
Ne correspond pas, modifier par ATR Quels autres contrôles peuvent être effectués pour cette erreur ? Tout est possible. Dans mt4 il y aSTOPLEVEL, mais ici quoi ?