Dans le trading algorithmique, savoir entrer sur le marché est important, mais savoir **quand couper tout le système** est vital. Pour les traders de Prop Firms (FTMO, Apex), le “Daily Drawdown” est la limite absolue.
Aujourd’hui, nous allons coder un script simple mais puissant en MQL5 : un **Equity Protector**. Ce robot ne prend pas de trades, il surveille votre capital et ferme tout si la perte du jour dépasse votre limite.
## Pourquoi coder cet outil en MQL5 ?
Contrairement à MQL4, MQL5 offre un accès direct et rapide aux informations du compte via `AccountInfoDouble`. De plus, la classe `CTrade` rend la fermeture groupée de positions extrêmement simple et fiable.
## Le Code Source (Base)
Voici la structure fondamentale de notre Expert Advisor.
“`cpp
#include
input double InpMaxDailyLossUSD = 500.0; // Perte max autorisée ($)
CTrade trade;
double startOfDayBalance = 0;
int OnInit() {
// On mémorise le solde au lancement (ou au début du jour)
startOfDayBalance = AccountInfoDouble(ACCOUNT_BALANCE);
return(INIT_SUCCEEDED);
}
void OnTick() {
double currentEquity = AccountInfoDouble(ACCOUNT_EQUITY);
double dailyLoss = startOfDayBalance – currentEquity;
if(dailyLoss >= InpMaxDailyLossUSD) {
Print(“LIMITE ATTEINTE : Fermeture de sécurité…”);
CloseAllPositions();
ExpertRemove(); // On désactive l’EA après l’action
}
}
void CloseAllPositions() {
for(int i = PositionsTotal() – 1; i >= 0; i–) {
ulong ticket = PositionGetTicket(i);
trade.PositionClose(ticket);
}
}
“`
## Explications Techniques
1. **`AccountInfoDouble(ACCOUNT_EQUITY)`** : Nous utilisons l’Équité (profit flottant inclus) et non le Solde. C’est crucial car une perte latente non coupée peut vous faire échouer à un challenge Prop Firm.
2. **La Boucle de Fermeture** : Remarquez que nous parcourons les positions de la fin vers le début (`PositionsTotal() – 1`). C’est une règle d’or en MQL : si vous fermez la position 0, la position 1 devient la position 0, et votre boucle sautera un trade.
3. **`ExpertRemove()`** : Une fois la sécurité activée, il est préférable de décharger le robot pour éviter qu’il n’essaie de refermer des ordres en boucle si vous essayez de rouvrir manuellement un trade par frustration.
## Aller plus loin
Ce code est une base. Une version professionnelle (comme notre **[Equity Protector Premium]**) inclut :
* La suppression des ordres en attente (Pending Orders).
* L’envoi de notifications Push sur votre téléphone.
* La réinitialisation automatique à minuit (heure du broker).
* La protection contre le “Revenge Trading” en bloquant le terminal.
**Vous ne voulez pas gérer les bugs de code ?**
[Téléchargez notre version compilée et testée de l’Equity Protector ici.]
—
**Besoin d’un développement sur-mesure ?**
* [Demander un devis pour un EA MQL5]
* [Consulter nos scripts gratuits sur GitHub]