Accueil > Blog > Clôture partielle et trailing stop : les points fragiles

MQL5Développement d'EA

Clôture partielle et trailing stop : les points fragiles

Publié : 2026-11-11Lecture : env. 3 min
⏱ Cet article reflète les informations à sa date de publication. Les chiffres de performance des EA (PF, DD, rendement annuel) évoluent avec le trading en réel et les revalidations — consultez les derniers chiffres sur les pages des EA. Voir les derniers résultats des EA →
Sommaire (5)
  1. En bref : ce qui casse, c'est le « passage d'état », pas la logique
  2. Pourquoi la combinaison pose problème
  3. Le volume restant ne peut pas reposer sur la « mémoire » de l'EA
  4. Le lot se « tronque », il ne s'arrondit pas
  5. Écrire le SL en un seul endroit, à la fin
  6. Checklist d'implémentation et de vérification
  7. Limites et précautions
  8. À retenir

En bref : ce qui casse, c'est le « passage d'état », pas la logique

Pris séparément, la clôture partielle et le trailing stop ne sont pas des traitements difficiles. Les bugs apparaissent quand on applique les deux à la même position. D'après notre expérience de développement, les problèmes se concentrent presque toujours sur trois points :

  1. Gestion du volume restant : l'EA ne parvient pas à « se souvenir » qu'il a déjà fait une clôture partielle
  2. Pas de lot : le volume clôturé ne correspond pas au lot minimum ou au pas du courtier
  3. Ordre de repositionnement du SL : clôture partielle, passage à break-even et trailing s'écrasent mutuellement

Ce sont des bugs qui se voient rarement en backtest et que l'on découvre le plus souvent seulement en réel.

Comparaison courtiers recommandés →

🎁 Télécharger EA gratuit

📧 Cours gratuit par e-mail (8 e-mails) + pack de 13 indicateurs MT5 réservé aux abonnés

* Confidentialité strictement protégée. Vous pouvez vous désabonner à tout moment.

Pourquoi la combinaison pose problème

Le volume restant ne peut pas reposer sur la « mémoire » de l'EA

Sous MT5, après une clôture partielle, le ticket de la position ne change pas : seul POSITION_VOLUME diminue. Si l'on stocke « clôture partielle effectuée » dans une simple variable bool, sa valeur disparaît au redémarrage de l'EA, à la reconnexion du VPS ou lors d'un changement d'unité de temps. Au premier tick suivant, l'EA clôture de nouveau la moitié de la position restante : c'est l'accident typique.

Pour l'éviter, nous parcourons l'historique des transactions de la position avec HistorySelectByPosition() et déterminons l'étape de clôture partielle en comparant le volume initial au volume restant. Le drapeau en mémoire ne sert que d'appoint.

Le lot se « tronque », il ne s'arrondit pas

La moitié de 0,03 lot donne 0,015. Sur un compte dont le pas est de 0,01, un arrondi classique clôturerait 0,02 et vous céderiez plus que prévu. Il faut tronquer le volume à clôturer selon SYMBOL_VOLUME_STEP, puis vérifier que le volume restant après la clôture reste supérieur ou égal à SYMBOL_VOLUME_MIN. Une position de 0,01 lot ne peut de toute façon pas être scindée : si vous ne décidez pas à l'avance, dans la spécification, de « ne pas clôturer partiellement » ou de « tout clôturer », l'EA renverra des erreurs en boucle.

Écrire le SL en un seul endroit, à la fin

PositionModify() fixe le SL et le TP en même temps. Si le traitement du trailing passe 0 pour le TP, le TP disparaît. De plus, si le déplacement du SL à break-even après la clôture partielle et le relèvement du SL par le trailing s'exécutent séparément au même tick, c'est le dernier écrit qui l'emporte. Résultat : un SL déjà remonté à break-even peut redescendre.

Voici l'ordre que nous avons adopté :

  • Envoyer la clôture partielle, puis resélectionner la position et vérifier le volume restant
  • Calculer les deux candidats : SL de break-even et SL de trailing
  • Ne déplacer le SL que dans le sens « plus favorable que le SL actuel » (le plus haut pour un achat, le plus bas pour une vente)
  • Vérifier le niveau de stop et le niveau de gel, puis modifier une seule fois en repassant le TP actuel tel quel

Checklist d'implémentation et de vérification

Point à vérifierSymptôme en cas de défautMéthode de vérification
L'étape de clôture partielle est-elle déduite de l'historique des transactions ?Double clôture partielle après un redémarrageRattacher de nouveau l'EA en cours de fonctionnement et observer l'évolution du volume restant
Le volume clôturé est-il tronqué selon le pas ?Clôture supérieure aux attentes, ou erreurOuvrir une position au lot minimum et lire les logs
Le traitement du lot minimum est-il défini ?Échec de clôture à chaque tickTester avec 0,01 lot
Le SL ne peut-il pas revenir dans un sens défavorable ?Sortie en perte après le SL à break-evenSuivre chronologiquement l'évolution du SL dans les logs
La modification du SL efface-t-elle le TP ?La prise de profit ne fonctionne plusRegarder le champ TP de la position après modification
Le SL reste-t-il en place si la clôture partielle échoue ?Volume restant et SL deviennent incohérentsEnvoyer un ordre juste avant la fermeture du marché pour provoquer l'échec
L'EA tourne-t-il sur un compte netting ?Positions cumulées avec celles d'autres EAVérifier le type de compte

Côté utilisateur, le contrôle le plus rapide consiste à faire tourner l'EA sur un compte démo au lot minimum et à le rattacher en cours de route pour vérifier que son comportement ne change pas. Les bases du paramétrage sont détaillées dans Comment configurer un EA.

Limites et précautions

Le testeur de stratégie exécute les ordres instantanément, et une exécution partielle d'un ordre n'y survient pratiquement jamais. Les bugs liés à la clôture partielle sont donc quasi invisibles dans les chiffres du backtest. Les différences de mode d'exécution (filling mode) en compte réel et le comportement en cas de requote ne peuvent honnêtement se vérifier que courtier par courtier.

Ajouter une clôture partielle n'améliore pas non plus mécaniquement les résultats. Pour une stratégie de suivi de tendance au faible taux de réussite, dont quelques gros gains soutiennent l'ensemble (par exemple DONCHIAN ENGINE, avec 34,5 % de réussite en backtest), on réduit la taille précisément quand le profit se développe, ce qui peut faire baisser l'espérance. Les fluctuations de gains et de pertes s'atténuent, mais ce qu'on perd en échange ne se détermine qu'en testant chaque EA. Nous n'avons pas, nous non plus, vérifié toutes les combinaisons.

Si vous ajoutez vous-même une clôture partielle à une stratégie comme DONCHIAN ENGINE, gardez à l'esprit que les résultats de validation d'origine ne s'appliquent plus tels quels.

À retenir

  • Ce qui casse le plus souvent dans la combinaison clôture partielle + trailing, c'est le « passage d'état » plus que la logique
  • L'étape de clôture partielle se déduit de l'historique des transactions et du volume restant, pas d'un drapeau en mémoire
  • Tronquer le lot selon le pas et vérifier que le volume restant ne passe pas sous le lot minimum
  • Centraliser la modification du SL en un seul endroit, ne la déplacer que dans le sens favorable et ne pas effacer le TP
  • Difficile à voir en backtest : faites un test de rattachement sur compte démo
  • La clôture partielle atténue les fluctuations de gains et de pertes, mais peut aussi réduire l'espérance

D'autres points d'attention sur l'implémentation sont réunis dans Savoir-faire EA et MT5.

📧 Cours gratuit par e-mail (8 e-mails) + pack de 13 indicateurs MT5 réservé aux abonnés

* Confidentialité strictement protégée. Vous pouvez vous désabonner à tout moment.

Une question sur les EA ou le Forex ?

Vous pouvez la publier sur le forum de trading Nattzy (inscription gratuite). Les questions qui dépassent cet article sont aussi les bienvenues : réglages d'EA, choix du courtier, etc.

Poser ma question sur Nattzy ↗

Commentaires et questions