RSI dans la fenetre
This commit is contained in:
+65
-23
@@ -10,7 +10,7 @@
|
|||||||
#include <Controls\Button.mqh>
|
#include <Controls\Button.mqh>
|
||||||
#include <Controls\CheckGroup.mqh>
|
#include <Controls\CheckGroup.mqh>
|
||||||
#include <Controls\CheckBox.mqh> // ← AJOUT: Include pour checkbox
|
#include <Controls\CheckBox.mqh> // ← AJOUT: Include pour checkbox
|
||||||
#include <Controls\Label.mqh> // ← NOUVEAU: Include pour label
|
#include <Controls\Label.mqh> // ← RETOUR: Include pour label dans le dialog
|
||||||
|
|
||||||
CAppDialog AppWindow;
|
CAppDialog AppWindow;
|
||||||
CButton m_button1; // the button object
|
CButton m_button1; // the button object
|
||||||
@@ -19,7 +19,7 @@ CButton m_button3; // the button object
|
|||||||
CButton m_button4; // the button object
|
CButton m_button4; // the button object
|
||||||
CButton m_button_locker; // the button object
|
CButton m_button_locker; // the button object
|
||||||
CCheckBox m_checkbox_sound; // ← AJOUT: checkbox pour alerte sonore
|
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
|
//--- Variables RSI
|
||||||
int rsi_handle; // ← NOUVEAU: handle pour 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)
|
bool CreateLabelRSI(void)
|
||||||
{
|
{
|
||||||
//--- coordinates
|
//--- coordinates dans le dialog - Position plus visible
|
||||||
int x1 = INDENT_LEFT + 25;
|
int x1 = INDENT_LEFT + 10; // Plus à droite pour être visible
|
||||||
int y1 = INDENT_TOP; // Position sous la checkbox
|
int y1 = 0; // Légèrement plus bas
|
||||||
int x2 = x1 + 150; // Largeur pour "RSI: 00.00"
|
int x2 = x1 + 120; // Largeur suffisante
|
||||||
int y2 = y1 + 25; // Hauteur un peu plus grande
|
int y2 = y1 + 20; // Hauteur standard
|
||||||
//--- create
|
|
||||||
|
//--- create le CLabel
|
||||||
if(!m_label_rsi.Create(0,"LabelRSI",0,x1,y1,x2,y2))
|
if(!m_label_rsi.Create(0,"LabelRSI",0,x1,y1,x2,y2))
|
||||||
|
{
|
||||||
|
Print("Erreur création label RSI");
|
||||||
return(false);
|
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);
|
return(false);
|
||||||
if(!m_label_rsi.Color(clrLime)) // Couleur verte
|
}
|
||||||
|
if(!m_label_rsi.FontSize(25))
|
||||||
|
{
|
||||||
|
Print("Erreur taille police label RSI");
|
||||||
return(false);
|
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))
|
if(!AppWindow.Add(m_label_rsi))
|
||||||
|
{
|
||||||
|
Print("Erreur ajout label RSI au dialog");
|
||||||
return(false);
|
return(false);
|
||||||
//--- succeed
|
}
|
||||||
|
|
||||||
|
Print("Label RSI créé avec succès dans le dialog");
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//+------------------------------------------------------------------+
|
//+------------------------------------------------------------------+
|
||||||
//| Mettre à jour l'affichage RSI |
|
//| Mettre à jour l'affichage RSI - DANS LE DIALOG avec DEBUG |
|
||||||
//+------------------------------------------------------------------+
|
//+------------------------------------------------------------------+
|
||||||
void UpdateRSIDisplay()
|
void UpdateRSIDisplay()
|
||||||
{
|
{
|
||||||
//--- Copier les données RSI
|
//--- Copier les données RSI
|
||||||
if(CopyBuffer(rsi_handle, 0, 0, 1, rsi_buffer) <= 0)
|
if(CopyBuffer(rsi_handle, 0, 0, 1, rsi_buffer) <= 0)
|
||||||
|
{
|
||||||
|
Print("Erreur CopyBuffer RSI");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//--- Obtenir la valeur actuelle
|
//--- Obtenir la valeur actuelle
|
||||||
double current_rsi = rsi_buffer[0];
|
double current_rsi = rsi_buffer[0];
|
||||||
|
Print("RSI actuel: ", current_rsi); // DEBUG
|
||||||
|
|
||||||
//--- Créer le texte avec couleur selon niveau
|
//--- Créer le texte avec couleur selon niveau
|
||||||
string rsi_text = "RSI: " + DoubleToString(current_rsi, 2);
|
string rsi_text = "RSI: " + DoubleToString(current_rsi, 2);
|
||||||
|
|
||||||
//--- Changer la couleur selon les niveaux
|
//--- 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)
|
if(current_rsi >= 55.0)
|
||||||
rsi_color = clrRed; // Surachat (rouge)
|
{
|
||||||
else if(current_rsi <= 30.0)
|
rsi_color = C'220,20,60'; // Rouge crimson (R=220, G=20, B=60)
|
||||||
rsi_color = clrCyan; // Survente (cyan)
|
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
|
//--- Mettre à jour le CLabel dans le dialog
|
||||||
m_label_rsi.Text(rsi_text);
|
if(!m_label_rsi.Text(rsi_text))
|
||||||
m_label_rsi.Color(rsi_color);
|
{
|
||||||
// Refresh() supprimé - pas nécessaire avec CLabel
|
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
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user