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
Pourriez-vous répondre uniquement si vous savez de quoi vous parlez ?
Il s'agit d'un sujet sur MT5/mql5, je supprimerai tous les messages non pertinents.
Il n'y a pas de prix stoploss dans l'historique sur MT5.
Le principal problème dans mql5 (compte de couverture) est de connaître le prix du Stop Loss, lorsqu'une position est fermée, en raison du manque d'historique des positions. Vous pouvez utiliser HistorySelectByPosition() pour trouver votre Stop Loss initial (Stop Loss de l'ordre initial), mais si vous avez modifié ce Stop Loss plus tard, il génère de nouveaux ordres pour le faire, sans le même POSITION_ID, et donc, ils ne seront pas sélectionnés par la fonction HistorySelectByPosition(), il devient donc très difficile de connaître le dernier Stop Loss que vous avez placé.
Je ne sais pas si cela peut être considéré comme un bug, mais si non, il devrait l'être.
Salutations.
Le principal problème dans mql5 (compte de couverture) est de connaître le prix du Stop Loss, lorsqu'une position est fermée, en raison du manque d'historique des positions. Vous pouvez utiliser HistorySelectByPosition() pour trouver votre Stop Loss initial (Stop Loss de l'ordre initial)...
Non, vous ne pouvez pas ou je vous ai mal compris.
Le Stoploss actuel n'est nulle part dans l'historique.
Non, vous ne pouvez pas ou je vous ai mal compris.
Le stoploss n'existe nulle part dans l'histoire.
.le problème est que vous modifiez ce Stop Loss plus tard.
Vous pouvez utiliser HistorySelectByPosition(), avec votre POSITION_ID, et ensuite vous pouvez trouver le premier ordre avec cette POSITION_ID, et vérifier le Stop Loss de cet ordre (HistoryOrderGetDouble(ticket, ORDER_SL). Cela a fonctionné pour moi, mais
.le problème est que vous modifiez ce Stop Loss plus tard.
Ok compris maintenant, vous avez raison.
Vous pouvez utiliser HistorySelectByPosition(), avec votre POSITION_ID, et ensuite vous pouvez trouver le premier ordre avec ce POSITION_ID, et vérifier le Stop Loss de cet ordre (HistoryOrderGetDouble(ticket, ORDER_SL). Cela a fonctionné pour moi, mais
.le problème est lorsque vous modifiez ce Stop Loss plus tard.
puis vérifiez DEAL_ENTRY, si OUT, obtenez HystoryDealGetDouble(ticket,DEAL_PRICE).
Si DEAL_PRICE est égal à HistoryOrderGetDouble(ticket,ORDER_SL), cela signifie que l'ordre a étéclôturé à en raison d'un stop loss.
Voici mon opinion.
Ok compris maintenant, tu as raison.
Si DEAL_PRICE est égal à HistoryOrderGetDouble(ticket,ORDER_SL), cela signifie que l'ordre a étéclôturé à en raison d'un stop loss.
Et ensuite, vérifiez que ORDER_POSITION_ID est égal à DEAL_POSITION_ID,
puis vérifiez DEAL_ENTRY, si OUT, obtenez HystoryDealGetDouble(ticket,DEAL_PRICE).
Si DEAL_PRICE est égal à HistoryOrderGetDouble(ticket,ORDER_SL), cela signifie que l'ordre a étéfermé en raison d'un stop loss.
Voici mon opinion.
Qu'en est-il du slippage ?
Il n'y a pas besoin de regarder le slippage, car l'ordre a été clôturé, et le prix de clôture est sur HystoryDealGetDouble(ticket, DEAL_PRICE).
Si l 'ordre n' a pas été clôturé et que vous passez un ordre de clôture, vous devez tenir compte de la quantité de slippage, afin d'éviter toute erreur .