Bonjour, J'ai écrit un programme qui doit envoyer des messages quand les conditions de l'indicateur sont réunis, hors j'ai une erreur et je n'arrive pas à la résoudre.
Voila pourquoi je me tourne vers vous voici l'erreur
Et le code :
// Paramètres Telegramstring telegram_bot_token = "VOTRE_BOT_TOKEN";
string chat_id = "VOTRE_CHAT_ID";
// Variables d'état pour éviter les alertes multiplesbool alertBuySent = false;
bool alertSellSent = false;
// Fonction pour envoyer un message Telegramvoid SendTelegramMessage(string message) {
string url = "https://api.telegram.org/bot" + telegram_bot_token + "/sendMessage?chat_id=" + chat_id + "&text=" + message;
char result[];
string result_headers;
int timeout = 10000;
ResetLastError();
int res = WebRequest("GET", url, "", timeout, result, result_headers);
if(res == -1) {
Print("Erreur d'envoi de message Telegram: ", GetLastError());
} else {
Print("Message Telegram envoyé: ", message);
}
}
// Fonction pour vérifier les conditions Ichimoku pour achat ou ventebool CheckIchimokuConditions(ENUM_TIMEFRAMES timeframe, bool isBuy) {
double ichimoku[5];
if (CopyBuffer(iIchimoku(_Symbol, timeframe, 9, 26, 52), 0, 0, 1, ichimoku) <= 0) {
Print("Erreur de chargement des données Ichimoku: ", GetLastError());
returnfalse;
}
double tenkan = ichimoku[0];
double kijun = ichimoku[1];
double senkouSpanA = ichimoku[2];
double senkouSpanB = ichimoku[3];
double closePrice = iClose(_Symbol, timeframe, 0);
// Condition BUY : prix au-dessus de Tenkan, Kijun, et Kumoif(isBuy) {
return closePrice > tenkan && closePrice > kijun && closePrice > senkouSpanA && closePrice > senkouSpanB;
}
// Condition SELL : prix en-dessous de Tenkan, Kijun, et Kumoelse {
return closePrice < tenkan && closePrice < kijun && closePrice < senkouSpanA && closePrice < senkouSpanB;
}
}
// Fonction pour vérifier si le prix est dans le Kumobool IsPriceInKumo(ENUM_TIMEFRAMES timeframe) {
double ichimoku[5];
if (CopyBuffer(iIchimoku(_Symbol, timeframe, 9, 26, 52), 0, 0, 1, ichimoku) <= 0) {
Print("Erreur de chargement des données Ichimoku: ", GetLastError());
returnfalse;
}
double senkouSpanA = ichimoku[2];
double senkouSpanB = ichimoku[3];
double closePrice = iClose(_Symbol, timeframe, 0);
// Vérifie si le prix est entre les limites du Kumoreturn (closePrice >= MathMin(senkouSpanA, senkouSpanB) && closePrice <= MathMax(senkouSpanA, senkouSpanB));
}
// Fonction principale pour surveiller les conditions et envoyer les alertesvoid CheckConditionsAndAlert() {
bool buyH4 = CheckIchimokuConditions(PERIOD_H4, true);
bool buyD1 = CheckIchimokuConditions(PERIOD_D1, true);
bool sellH4 = CheckIchimokuConditions(PERIOD_H4, false);
bool sellD1 = CheckIchimokuConditions(PERIOD_D1, false);
// Alerte BUY si conditions H4 et D1 sont remplies, et pas encore alertéif (buyH4 && buyD1 && !alertBuySent) {
SendTelegramMessage("BUY (" + _Symbol + ")");
alertBuySent = true;
alertSellSent = false; // réinitialiser l'alerte de vente si une nouvelle condition d'achat apparaît
}
// Alerte SELL si conditions H4 et D1 sont remplies, et pas encore alertéelseif (sellH4 && sellD1 && !alertSellSent) {
SendTelegramMessage("SELL (" + _Symbol + ")");
alertSellSent = true;
alertBuySent = false; // réinitialiser l'alerte d'achat si une nouvelle condition de vente apparaît
}
// Réinitialiser les alertes si le prix entre dans le Kumo en Dailyif (IsPriceInKumo(PERIOD_D1)) {
alertBuySent = false;
alertSellSent = false;
}
}
// Exécution sur chaque tickvoidOnTick() {
CheckConditionsAndAlert();
}
Bonjour, J'ai écrit un programme qui doit envoyer des messages quand les conditions de l'indicateur sont réunis, hors j'ai une erreur et je n'arrive pas à la résoudre.
Voila pourquoi je me tourne vers vous voici l'erreur
Et le code :
Merci d'avance pour votre aide !!!