Guide de test et d'optimisation des expert advisors IA | Deriv Blog
Perfectionnez votre expert advisor IA grâce à des techniques de test appropriées. Notre guide couvre les problèmes courants, les méthodes de test et l'optimisation des expert advisors pour des bots de trading fiables.
Par la rédaction Deriv · 21 avril 2025 · 4 min de lecture

Les expert advisors de trading IA sont là — mais vous devez toujours les tester et les affiner.
Si vous avez déjà utilisé des outils d'IA comme Claude ou ChatGPT pour créer un expert advisor pour Deriv MT5 ou un cBot pour Deriv cTrader, vous êtes sur la bonne voie. Mais même lorsque le code semble correct, il peut encore contenir des erreurs qui affectent le fonctionnement du bot.
Avant d'exécuter votre expert advisor (EA) sur un marché réel, il est important de le tester et de vous assurer qu'il fonctionne comme vous l'attendez.
Dans ce guide, nous passerons en revue les erreurs de codage courantes dans les EA générés par l'IA, comment les corriger, et des conseils pratiques pour améliorer les performances de votre bot.
Erreurs de codage MQL5 courantes liées à l'IA
Voici quelques-uns des problèmes les plus courants rencontrés dans les EA générés par l'IA, ainsi que les moyens de les corriger :
- Erreur d'identifiant non déclaré en MQL5
Cette erreur apparaît lorsque le bot utilise une variable ou un nom qui n'a pas été correctement défini, comme un paramètre manquant ou l'utilisation d'un nom incorrect dans des indicateurs comme iMA().
Correction :
Vérifiez les paramètres de l'indicateur et assurez-vous que tous les noms de variables correspondent à ce qui est attendu dans MetaEditor (l'outil de codage de MT5).
- Fonctions d'exécution des ordres d'achat/vente manquantes
Certains bots générés par l'IA omettent la logique essentielle pour ouvrir des positions.
Correction :
Ajoutez manuellement les fonctions de base d'exécution des trades. Voici un exemple de structure de base pour placer un ordre d'achat :
void OpenBuy() {
MqlTradeRequest request; MqlTradeResult result;
request.action = TRADE_ACTION_DEAL;
request.type = ORDER_TYPE_BUY;
request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
request.volume = 0.1; request.magic = 12345;
OrderSend(request, result);
}
Assurez-vous également d'inclure la logique pour les ordres de vente et de définir les conditions dans lesquelles les trades doivent être placés.
- Conditions de boucle incorrectes dans Deriv cTrader
Dans Deriv cTrader, la logique du bot doit s'exécuter à l'intérieur de fonctions spécifiques comme OnBar() ou OnTick(). Celles-ci sont déclenchées automatiquement lorsque le marché bouge. Si votre code est placé en dehors de ces sections, par exemple dans une mauvaise boucle ou dans la portée globale, il ne s'exécutera pas comme prévu.
Correction :
Assurez-vous que les barres et les ticks sont gérés à l'intérieur de OnBar() ou OnTick(). Cela permettra à votre bot de répondre correctement aux nouveaux ticks ou barres pendant le backtesting et le trading en direct.
- Calcul incorrect de la taille du lot basé sur un pourcentage du solde
Lorsque l'IA tente de définir la taille du lot en fonction du solde de votre compte (par ex. en risquant 2 % par trade), elle peut omettre un détail important — la taille du contrat. Cela peut conduire à des tailles de lot inexactes. Cela ne déclenchera pas d'erreur de code, mais lors des tests, vous verrez des tailles de trade qui ne correspondent pas à vos paramètres de risque, entraînant une surexposition ou une sous-exposition dans les trades en direct.
Correction :
Utilisez une formule de taille de lot qui prend en compte la taille du contrat, comme :
//-----------------------------------------------------------------
double accountBalance = AccountInfoDouble(ACCOUNT_BALANCE);
double riskMoney = accountBalance * (RiskPercent / 100.0);
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double pointValue = tickValue / tickSize;
double contractSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);
if(contractSize > 0)
pointValue = pointValue / contractSize;
double lotSize = riskMoney / (StopLossPoints * pointValue);
double minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
double maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
lotSize = MathMax(lotSize, minLot);
lotSize = MathMin(lotSize, maxLot);
lotSize = MathFloor(lotSize / lotStep) * lotStep;
- Autres erreurs
Si vous rencontrez l'une de ces erreurs — ou toute autre —, vous pouvez toujours demander de l'aide à votre modèle d'IA pour identifier et corriger le problème.
Copiez simplement le message d'erreur et le code pertinent, puis partagez-les avec le modèle d'IA. La plupart du temps, il devrait être en mesure d'identifier le problème et de proposer une correction ou de suggérer des solutions possibles.
Conseil : Effectuez toujours un backtest avant de passer en direct. Des problèmes comme celui-ci n'apparaissent pas tant que vous n'avez pas testé la stratégie avec des données de marché réelles.
Améliorez votre expert advisor généré par l'IA
Une fois que votre bot fonctionne, vous pouvez apporter de petites modifications pour améliorer ses performances et sa stabilité. Voici quelques astuces courantes pour y parvenir :
- Ajoutez une logique de gestion des erreurs pour gérer les comportements inattendus lors de forte volatilité ou de problèmes de connexion.
- Utilisez un trailing stop-loss pour sécuriser les profits potentiels lorsque le marché évolue en votre faveur.
- Effectuez un backtest de votre stratégie avec des données historiques pour voir comment elle aurait performé.
- Nettoyez et organisez votre code pour améliorer la lisibilité et l'efficacité. Cela facilitera les mises à jour ou le dépannage ultérieurs.
Conseil : Utilisez le débogueur MetaEditor (sur MT5) pour tester le fonctionnement de votre bot étape par étape.
Pourquoi le backtesting des trades est crucial
Les bots générés par l'IA sont un excellent moyen d'automatiser votre trading sans avoir besoin de coder à partir de zéro. Mais même avec l'IA, votre stratégie a toujours besoin de vérifications et d'ajustements humains pour bien fonctionner dans des conditions réelles.
Avant de passer en direct, prenez le temps de tester minutieusement et d'apporter de petites améliorations. Même des corrections mineures peuvent faire une grande différence dans la régularité et l'efficacité des performances de votre EA.