From d8c84fdf7ebebb2b08f591e3895936075585857e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20TOMAZ?= <57752243+percolouco@users.noreply.github.com> Date: Tue, 23 Sep 2025 17:18:56 +0200 Subject: [PATCH] RSI dans la fenetre --- RSI_alert.mq5 | 88 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 65 insertions(+), 23 deletions(-) diff --git a/RSI_alert.mq5 b/RSI_alert.mq5 index 68e9391..0b9bb0e 100644 --- a/RSI_alert.mq5 +++ b/RSI_alert.mq5 @@ -10,7 +10,7 @@ #include #include #include // ← AJOUT: Include pour checkbox -#include // ← NOUVEAU: Include pour label +#include // ← RETOUR: Include pour label dans le dialog CAppDialog AppWindow; CButton m_button1; // the button object @@ -19,7 +19,7 @@ CButton m_button3; // the button object CButton m_button4; // the button object CButton m_button_locker; // the button object CCheckBox m_checkbox_sound; // ← AJOUT: checkbox pour alerte sonore -CLabel m_label_rsi; // ← NOUVEAU: label pour valeur RSI +CLabel m_label_rsi; // ← RETOUR: label pour valeur RSI dans le dialog //--- Variables RSI int rsi_handle; // ← NOUVEAU: handle pour RSI @@ -231,54 +231,96 @@ bool CreateCheckBoxSound(void) } //+------------------------------------------------------------------+ -//| Create Label pour valeur RSI | +//| Create Label pour valeur RSI - DANS LE DIALOG | //+------------------------------------------------------------------+ bool CreateLabelRSI(void) { -//--- coordinates - int x1 = INDENT_LEFT + 25; - int y1 = INDENT_TOP; // Position sous la checkbox - int x2 = x1 + 150; // Largeur pour "RSI: 00.00" - int y2 = y1 + 25; // Hauteur un peu plus grande -//--- create +//--- coordinates dans le dialog - Position plus visible + int x1 = INDENT_LEFT + 10; // Plus à droite pour être visible + int y1 = 0; // Légèrement plus bas + int x2 = x1 + 120; // Largeur suffisante + int y2 = y1 + 20; // Hauteur standard + +//--- create le CLabel if(!m_label_rsi.Create(0,"LabelRSI",0,x1,y1,x2,y2)) + { + Print("Erreur création label RSI"); return(false); - if(!m_label_rsi.Text("RSI: ---.--")) // Texte initial + } + +//--- Texte et couleur initiaux + if(!m_label_rsi.Text("RSI: ---.--")) + { + Print("Erreur texte label RSI"); return(false); - if(!m_label_rsi.Color(clrLime)) // Couleur verte + } + if(!m_label_rsi.FontSize(25)) + { + Print("Erreur taille police label RSI"); return(false); -//--- add to dialog + } + if(!m_label_rsi.Color(C'50,205,50')) + { + Print("Erreur couleur label RSI"); + return(false); + } + +//--- CRUCIAL: Ajouter au dialog if(!AppWindow.Add(m_label_rsi)) + { + Print("Erreur ajout label RSI au dialog"); return(false); -//--- succeed + } + + Print("Label RSI créé avec succès dans le dialog"); return(true); } //+------------------------------------------------------------------+ -//| Mettre à jour l'affichage RSI | +//| Mettre à jour l'affichage RSI - DANS LE DIALOG avec DEBUG | //+------------------------------------------------------------------+ void UpdateRSIDisplay() { //--- Copier les données RSI if(CopyBuffer(rsi_handle, 0, 0, 1, rsi_buffer) <= 0) + { + Print("Erreur CopyBuffer RSI"); return; + } //--- Obtenir la valeur actuelle double current_rsi = rsi_buffer[0]; + Print("RSI actuel: ", current_rsi); // DEBUG //--- Créer le texte avec couleur selon niveau string rsi_text = "RSI: " + DoubleToString(current_rsi, 2); //--- Changer la couleur selon les niveaux - color rsi_color = clrLime; // Neutre (vert) + color rsi_color = C'0,165,20'; // Vert lime personnalisé (R=50, G=205, B=50) - if(current_rsi >= 70.0) - rsi_color = clrRed; // Surachat (rouge) - else if(current_rsi <= 30.0) - rsi_color = clrCyan; // Survente (cyan) + if(current_rsi >= 55.0) + { + rsi_color = C'220,20,60'; // Rouge crimson (R=220, G=20, B=60) + Print("RSI SURACHAT: ", current_rsi); + } + else if(current_rsi <= 45.0) + { + rsi_color = C'30,144,255'; // Bleu dodger (R=30, G=144, B=255) + Print("RSI SURVENTE: ", current_rsi); + } -//--- Mettre à jour le label - m_label_rsi.Text(rsi_text); - m_label_rsi.Color(rsi_color); - // Refresh() supprimé - pas nécessaire avec CLabel +//--- Mettre à jour le CLabel dans le dialog + if(!m_label_rsi.Text(rsi_text)) + { + Print("Erreur mise à jour texte RSI"); + return; + } + + if(!m_label_rsi.Color(rsi_color)) + { + Print("Erreur mise à jour couleur RSI"); + return; + } + + Print("RSI mis à jour: ", rsi_text); // DEBUG } \ No newline at end of file