il semble que les codes générés ne sont pas autorisé sur le site
Il faut utiliser alt+S pour poster des codes
salut, j'ai un script avec pleins d'erreurs, j'aimerais qu'on m'aide à les corriger svp
OK je ne trade pas avec Ctrade mais j'ai mis le code dans mon éditeur et il y a peu d'erreurs : il semblerait que le problème vienne de selllimit et de variables non reconnues.
C'est un problème de classe, tu n'as pas la bonne. Il va te falloir trouver un moyen d'adapter le code en lisant la classe Ctrade dans include de MQL5.
Bon ce n'est pas un pb de classe c'est ChatGPT : je t'invite à lire cette video youtube :"Comment coder un robot de trading en Mql4 avec ChatGPT (basé sur la stratégies des Fractals)"
En fait ChatGPT fait plein d'erreurs donc il faut repréciser les points qui vont pas comme dans la video en procédant par étapes et en regardant les prototypes des fonctions (paramètres attendus).
ChatGPT rend pas mal de services mais il faut s'appuyer sur la doc MQL5 et affiner les questions pour améliorer le code.
Bonjour,
Nous sommes une nouvelle agence spécialisée dans l'automatisation des stratégies de trading pour les traders. Nous créons des Expert Advisors (EAs) pour les plateformes MT4 et MT5, et nous offrons également des services de correction de bugs. Si vous rencontrez un problème, notre équipe dédiée est prête à vous assister.
Si vous êtes intéressé par nos services, n'hésitez pas à nous contacter à l'adresse suivante : mtautotrades@gmail.com.

- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Bonjour a tous ,
je viens vers vous pour un petit coup de main concernant un script .
Donc voici mon problème , j'ai testé une stratégie manuellement , étant donné que celle-ci est opérationnelle j'ai cherché a l'automatisé et j'ai demandé a chatgpt de me programmer ma stratégie, ce qu'il a fait mais le script comporte des erreurs lors de la compilation.
Est-ce que quelqu'un pourrait me corriger les erreurs dans le script svp?
La stratégie de base est :
Je veut que le script ouvre un ordre d'achat et de vente en même temps a une heure souhaité , avec une taille de lots réglable ainsi que le take profit et stoploss , puis lorsque les ordres sont déclenchés le robot place automatiquement un buy limit au niveau du take profit de l'ordre de vente et inversement placé un sell limit au niveau du take profit de l'ordre d'achat et des paramètres ajustable pour les take profits et stoploss des buy limit et sell limit. Et dernier point que j'ai oublié de préciser a chatgpt est que lorsque un des 2 ordres sell limit ou buy limit est déclenché il supprime automatique celui qui n'a pas déclenché.
j'espère que c'est compréhensible .
Voici ce que j'ai eu en retour :
================================================================================================================================================
#include <Trade\Trade.mqh>
input double lotsize = 0.1;
input int stopLoss = 50; // Stop Loss en points
input int takeProfit = 100; // Take Profit en points
input int sellLimitTakeProfit = 50; // Take Profit pour le Sell Limit en points
input int buyLimitTakeProfit = 50; // Take Profit pour le Buy Limit en points
CTrade trade;
void OnTick()
{
datetime currentTime = TimeCurrent();
if(currentTime == D'2021.10.05 10:00:00') // Heure désirée pour l'ordre d'achat
{
if(!trade.PositionSelect(_Symbol))
{
double currentAsk = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
double slPrice = currentAsk - stopLoss * _Point;
double tpPrice = currentAsk + takeProfit * _Point;
trade.Buy(lotsize, _Symbol, currentAsk, slPrice, tpPrice, 0, 0, "Buy order", 0, 0, clrNONE);
}
}
if(currentTime == D'2021.10.06 15:00:00') // Heure désirée pour l'ordre de vente
{
if(!trade.PositionSelect(_Symbol))
{
double currentBid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
double slPrice = currentBid + stopLoss * _Point;
double tpPrice = currentBid - takeProfit * _Point;
trade.Sell(lotsize, _Symbol, currentBid, slPrice, tpPrice, 0, 0, "Sell order", 0, 0, clrNONE);
}
}
if(trade.PositionSelect(_Symbol))
{
double currentPrice = trade.PositionGetDouble(POSITION_PRICE_CURRENT);
if(trade.PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
{
double tpPrice = currentPrice + takeProfit * _Point;
double sellLimitPrice = tpPrice + sellLimitTakeProfit * _Point;
trade.SellLimit(lotsize, _Symbol, sellLimitPrice, 0, 0, 0, 0, "Sell Limit order", 0, 0, clrNONE);
}
else if(trade.PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL)
{
double tpPrice = currentPrice - takeProfit * _Point;
double buyLimitPrice = tpPrice - buyLimitTakeProfit * _Point;
trade.BuyLimit(lotsize, _Symbol, buyLimitPrice, 0, 0, 0, 0, "Buy Limit order", 0, 0, clrNONE);
}
}
}
==================================================================================================================================================
Merci d'avoir pris le temps de lire et de vos futurs réponses.
Bonne journée