Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
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