Stop Loss et Take Profit : Optimisez vos Transactions sur MetaTrader 5

Mike 2017.11.03 20:43 14 0 0
Pièce jointe

Lorsque vous fermez une position par Stop Loss, le volume est doublé, tandis que si elle se ferme par Take Profit, le volume minimum est utilisé. Pour savoir si une transaction a été réalisée suite à l'activation d'un Stop Loss ou d'un Take Profit, on utilise la fonction OnTradeTransaction.

Une excellente énumération ENUM_DEAL_REASON a été ajoutée dans la version 1625 :

ENUM_DEAL_REASON Description de la raison
... ...
DEAL_REASON_SL L'opération a été exécutée suite à l'activation du Stop Loss
DEAL_REASON_TP L'opération a été exécutée suite à l'activation du Take Profit
... ...

Vous pouvez vérifier cela dans OnTradeTransaction.

En d'autres termes, c'est une méthode simple et fiable pour déterminer si une transaction résulte d'un Take Profit ou d'un Stop Loss.

Actuellement (version 1626), cet Expert Advisor ne peut être vérifié que dans un test en direct, en le lançant sur un graphique ou en mode débogage sur des données réelles (F5 dans l'éditeur MetaEditor). J'ai utilisé la manœuvre suivante :

Dans OnTradeTransaction, nous avons déterminé si le Take Profit ou le Stop Loss a été déclenché :

      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
         if(deal_entry==DEAL_ENTRY_OUT)
           {
            if(deal_reason==DEAL_REASON_SL)
               ExtLot*=2.0;
            else if(deal_reason==DEAL_REASON_TP)
               ExtLot=m_symbol.LotsMin();
           }
Liste
Commentaire 0