Merci ! Votre candidature a été reçue !
Oups ! Un problème s'est produit lors de l'envoi du formulaire.

Comment tester, dépanner et optimiser les conseillers experts IA pour Deriv MT5 et cTrader

Les conseillers experts 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 conseiller expert 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 contenir des erreurs qui affectent le fonctionnement du bot.

Avant de lancer votre conseiller expert (EA) sur un marché en direct, il est important de le tester et de vérifier qu’il fonctionne comme prévu.

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 courantes de codage MQL5 générées par l’IA

Voici quelques-uns des problèmes les plus fréquents rencontrés dans les EA générés par l’IA, avec les moyens de les corriger :

  • Erreur d’identificateur non déclaré en MQL5

Cette erreur apparaît lorsque le bot utilise une variable ou un nom qui n’a pas été défini correctement, comme un paramètre manquant ou une mauvaise utilisation d’un nom dans des indicateurs tels que 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 trades.

Correction :
Ajoutez manuellement des fonctions basiques d’exécution des ordres. 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 selon 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 se déclenchent automatiquement lorsque le marché évolue. Si votre code est placé en dehors de ces sections, par exemple dans une boucle incorrecte ou dans la portée globale, il ne s’exécutera pas comme prévu.

Correction :

Assurez-vous que les barres et ticks soient traités dans OnBar() ou OnTick(). Cela permettra à votre bot de répondre correctement aux nouvelles ticks ou barres lors des backtests et du trading en direct.

  • Mauvais calcul de la taille de lot basé sur un pourcentage du solde

Lorsque l’IA tente de définir la taille du lot en fonction de votre solde de compte (par exemple, en risquant 2 % par trade), elle peut omettre un détail important — la taille du contrat. Cela peut conduire à des tailles de lots inexactes. Cela ne déclenchera pas une erreur de code, mais en test, vous constaterez des tailles d’ordre ne correspondant pas à vos réglages de risque, ce qui entraîne une surexposition ou une sous-exposition lors des trades en direct.

Correction :
Utilisez une formule avec une taille de lot qui prend en compte la taille du contrat, par exemple :

//-----------------------------------------------------------------

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 une de ces erreurs — ou toute autre — vous pouvez toujours demander à votre modèle d’IA de vous aider à identifier et corriger le problème.

Il vous suffit de copier le message d’erreur et le code concerné, puis de les partager avec le modèle d’IA. La plupart du temps, il pourra localiser le problème et proposer une correction ou des solutions possibles.

Conseil : Effectuez toujours un backtest avant de passer en réel. Ces problèmes n’apparaissent pas tant que vous ne testez pas la stratégie avec des données réelles du marché.

Améliorez votre conseiller expert généré par l’IA

Une fois votre bot opérationnel, vous pouvez apporter de petites modifications pour améliorer sa performance et sa stabilité. Voici quelques astuces courantes :

  • Ajoutez une logique de gestion des erreurs pour gérer les comportements inattendus lors d’une forte volatilité ou de problèmes de connexion.
  • Utilisez un stop-loss dynamique (trailing stop-loss) pour verrouiller les gains potentiels lorsque le marché évolue en votre faveur.
  • Backtestez 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 la résolution des problèmes plus tard.

Conseil : Utilisez le MetaEditor Debugger (sur MT5) pour tester le déroulement de votre bot pas à pas.

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 nécessite toujours des vérifications et ajustements humains pour bien fonctionner en 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 constance et l’efficacité de votre EA.

Clause de non-responsabilité :

Ce contenu n'est pas destiné aux résidents de l'UE. Les informations contenues dans cet article de blog ont uniquement un but éducatif et ne constituent pas un conseil financier ou d'investissement. Ces informations peuvent devenir obsolètes. Aucune représentation ou garantie n'est donnée quant à l'exactitude ou l'exhaustivité de ces informations. Nous vous recommandons de faire vos propres recherches avant de prendre toute décision de trading.