Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 671

 
Artyom Trishkin:

Rien de compliqué.

Merci, je serai devant mon ordinateur ce soir et je me le procurerai... rien de compliqué, mais je suis en manque de temps ))))

 
Bonjour, Veuillez me donner un exemple de code pour créer un bouton sur un graphique et lui faire effectuer au moins une opération. Au moins dans la sortie du commentaire tout signe. Merci.
 
inter78:
Bonjour, Veuillez me donner un exemple de code pour créer un bouton sur un graphique et lui faire effectuer au moins une opération. Au moins dans la sortie du commentaire tout signe. Merci.

Voici un code comme celui-ci :

#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
kn();
return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ObjectDelete("close");
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
if(ObjectGetInteger(0,"close",OBJPROP_STATE)==true)
 {
  ObjectSetString(0,"close",OBJPROP_TEXT,"Открыть ВСЕ"); 
  Comment("Открыть всё!");
 }
else
 {
  ObjectSetString(0,"close",OBJPROP_TEXT,"Закрыть ВСЕ"); 
  Comment("Закрыть всё!");
 }
return;
}

//==============================================================
void kn()
{
 if (ObjectFind("close")==-1)
  {
   ObjectCreate(0,"close",OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,"close",OBJPROP_XDISTANCE,30); 
   ObjectSetInteger(0,"close",OBJPROP_YDISTANCE,30); 
   //--- установим размер кнопки 
   ObjectSetInteger(0,"close",OBJPROP_XSIZE,100); 
   ObjectSetInteger(0,"close",OBJPROP_YSIZE,30); 
   //--- установим угол графика, относительно которого будут определяться координаты точки 
   ObjectSetInteger(0,"close",OBJPROP_CORNER,CORNER_LEFT_UPPER); 
   //--- установим текст 
   ObjectSetString(0,"close",OBJPROP_TEXT,"Закрыть ВСЕ"); 
   //--- установим цвет фона 
   ObjectSetInteger(0,"close",OBJPROP_BGCOLOR,clrRed); 
   //--- установим цвет текста 
   ObjectSetInteger(0,"close",OBJPROP_COLOR,clrWhite);
  }
}
 
Valerius:

Il s'agit de la taille du code :

Les commentaires ne sortent pas.
 
inter78:
Les commentaires ne sortent pas.

Après avoir lancé le programme, appuyez sur le bouton et l'inscription correspondante apparaît dans le coin supérieur gauche. Appuyez à nouveau sur le bouton et le message changera. N'oubliez pas d'appuyer sur le bouton auto-trade ou d'autoriser le trading dans les paramètres de l'EA. Il devrait y avoir un visage souriant dans le coin supérieur droit. Tout fonctionne dans le testeur.

 
Valerius:

Après avoir lancé le programme, appuyez sur le bouton et l'inscription correspondante apparaît dans le coin supérieur gauche. Appuyez à nouveau sur le bouton et le message changera. N'oubliez pas d'appuyer sur le bouton auto-trade ou d'autoriser le trading dans les paramètres de l'EA. Il devrait y avoir un visage souriant dans le coin supérieur droit. Tout fonctionne dans le testeur.

Comment l'indicateur fonctionnera-t-il ?
 
inter78:
Comment l'indicateur fonctionnera-t-il ?

Il est fait pour un EA, pas pour un indicateur.

 
C'est dommage. J'ai besoin d'un indicateur.
 
inter78:
C'est dommage. J'ai besoin d'un indicateur.

Il n'y a pas beaucoup de différence, n'est-ce pas ?

//==============================================================
void kn()
{
 if (ObjectFind("close")==-1)
  {
   ObjectCreate(0,"close",OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,"close",OBJPROP_XDISTANCE,30); 
   ObjectSetInteger(0,"close",OBJPROP_YDISTANCE,30); 
   //--- установим размер кнопки 
   ObjectSetInteger(0,"close",OBJPROP_XSIZE,100); 
   ObjectSetInteger(0,"close",OBJPROP_YSIZE,30); 
   //--- установим угол графика, относительно которого будут определяться координаты точки 
   ObjectSetInteger(0,"close",OBJPROP_CORNER,CORNER_LEFT_UPPER); 
   //--- установим текст 
   ObjectSetString(0,"close",OBJPROP_TEXT,"Закрыть ВСЕ"); 
   //--- установим цвет фона 
   ObjectSetInteger(0,"close",OBJPROP_BGCOLOR,clrRed); 
   //--- установим цвет текста 
   ObjectSetInteger(0,"close",OBJPROP_COLOR,clrWhite);
  }
}

Voici le code pour créer un bouton.

Le bouton est créé dans la fonction d'initialisation

int OnInit()
{
kn();
return(INIT_SUCCEEDED);
}

Et ceci est

if(ObjectGetInteger(0,"close",OBJPROP_STATE)==true)
 {
  ObjectSetString(0,"close",OBJPROP_TEXT,"Открыть ВСЕ"); 
  Comment("Открыть всё!");
 }
else
 {
  ObjectSetString(0,"close",OBJPROP_TEXT,"Закрыть ВСЕ"); 
  Comment("Закрыть всё!");
 }

Code de contrôle des boutons.

 
Alexey Viktorov:

Il n'y a pas beaucoup de différence, n'est-ce pas ?

Voici le code pour créer un bouton.

Le bouton est créé dans la fonction d'initialisation

Et ceci est

est le code pour contrôler le bouton.

En fait, je l'ai fait, mais je n'aime pas le long temps de réponse.

int start()
 {
  string    Direktor="ID";     // Имя каталога 
  string    Fail_ID=Symbol();      // Имя файла 
  int file_ID;
  file_ID=FileOpen(Direktor+"//"+Fail_ID,FILE_READ|FILE_WRITE|FILE_TXT); 
  FileWrite(file_ID,ChartID()); 
  FileClose(file_ID); 

  int total_GLOB=GlobalVariablesTotal();
  string name;
  string text;
  int kol=0;
  int x=1000;
  string strGl;
  string strGl_2;
  string strGl_3;
  double strGl_4;
  double strGl_5;
  for(int g=0;g<total_GLOB;g++)
    {
     name= GlobalVariableName(g);
     string g_2=IntegerToString(g+1,2,'0');
     text=g_2+" .  "+name+"   "+DoubleToString(GlobalVariableGet(name),4);
     kol++;
     strGl=IntegerToString(MathAbs(GlobalVariableGet(name)*10000),15,'0');
     strGl_2=StringSubstr(strGl,11,2);
     strGl_3=StringSubstr(strGl,13,2);
     strGl_4=StringToDouble(strGl_2);
     strGl_5=StringToDouble(strGl_3);
     ObjectCreate(name,OBJ_BUTTON,0,0,0);
         if(ObjectGet(name,OBJPROP_STATE)==true)
         {
          string Fail_ID_2=name;
          int file_ID_2 =FileOpen(Direktor+"//"+Fail_ID_2,FILE_READ|FILE_WRITE|FILE_TXT);
          string id =FileReadString(file_ID_2);
          long id2=StringToInteger(id);
          ChartSetInteger(id2,CHART_BRING_TO_TOP,true);
          FileClose(file_ID_2); 
         }
     if(strGl_4==strGl_5)
     {
      ObjectSet(name,6,clrDarkSlateGray);
      ObjectSet(name,OBJPROP_BGCOLOR,clrAquamarine);
      }
     if(strGl_4!=strGl_5)
     {
      ObjectSet(name,6,clrDarkSlateGray);
      ObjectSet(name,OBJPROP_BGCOLOR,clrSnow);
      }
     ObjectSet(name,102,x);
     ObjectSet(name,OBJPROP_SELECTED,false);
     ObjectSetText(name,text,10,"Arial",clrLightCyan);
     ObjectSet(name,103,40+(kol*20));
     if(GlobalVariableGet(name)<0) ObjectSet(name,6,Red);
     if(GlobalVariableGet(name)>0) ObjectSet(name,6,clrMediumBlue);
     if(GlobalVariableGet(name)==0) ObjectDelete(name);
     ObjectSetInteger(0,name,OBJPROP_XSIZE,180); 

//--- переведем кнопку в заданное состояние 
     ObjectSetInteger(0,name,OBJPROP_STATE,false); 

     if(Symbol()==name)
      {
       ObjectSet(name,6,clrMaroon);
       ObjectSet(name,103,25);
       ObjectSet(name,OBJPROP_FONTSIZE,13);
       ObjectSetInteger(0,name,OBJPROP_YSIZE,25); 
       ObjectSetInteger(0,name,OBJPROP_XSIZE,200); 
      }
    }

  return(0);
 }
void OnDeinit(const int reason)
  {
  GlobalVariablesDeleteAll();
ObjectsDeleteAll(0,0,OBJ_BUTTON);

  }
  
Raison: