Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 671

 
Artyom Trishkin:

Nichts Kompliziertes.

Danke, ich werde heute Abend an meinem Computer sitzen und es mir besorgen... nichts Kompliziertes, aber ich bin ausgehungert nach Zeit ))))

 
Bitte geben Sie mir ein Beispiel für einen Code, mit dem ich eine Schaltfläche in einem Diagramm erstellen und mindestens eine Operation ausführen kann. Zumindest in der Kommentarausgabe gibt es kein Zeichen. Ich danke Ihnen.
 
inter78:
Bitte geben Sie mir ein Beispiel für einen Code, mit dem ich eine Schaltfläche in einem Diagramm erstellen und mindestens eine Operation ausführen kann. Zumindest in der Kommentarausgabe gibt es kein Zeichen. Ich danke Ihnen.

Hier ist ein Code wie dieser:

#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:

Hier geht es um die Größe des Codes:

Die Kommentare werden nicht veröffentlicht.
 
inter78:
Die Kommentare werden nicht veröffentlicht.

Nach dem Start des Programms drücken Sie die Taste und die entsprechende Aufschrift erscheint in der oberen linken Ecke. Drücken Sie die Taste erneut, um die Meldung zu ändern. Vergessen Sie nicht, den Autotrade-Button zu drücken oder den Handel in den EA-Einstellungen zu erlauben. In der oberen rechten Ecke sollte ein lächelndes Gesicht zu sehen sein. Im Testgerät funktioniert alles.

 
Valerius:

Nach dem Start des Programms drücken Sie die Taste und die entsprechende Aufschrift erscheint in der oberen linken Ecke. Drücken Sie die Taste erneut, um die Meldung zu ändern. Vergessen Sie nicht, den Autotrade-Button zu drücken oder den Handel in den EA-Einstellungen zu erlauben. In der oberen rechten Ecke sollte ein lächelndes Gesicht zu sehen sein. Im Testgerät funktioniert alles.

Wie wird der Indikator funktionieren?
 
inter78:
Wie wird der Indikator funktionieren?

Er ist für einen EA gemacht, nicht für einen Indikator.

 
Das ist sehr bedauerlich. Ich brauche einen Indikator.
 
inter78:
Das ist sehr bedauerlich. Ich brauche einen Indikator.

Das ist doch kein großer Unterschied, oder?

//==============================================================
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);
  }
}

Dies ist der Code zum Erstellen einer Schaltfläche.

Die Schaltfläche wird in der Initialisierungsfunktion erstellt

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

Und das ist

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

Tastensteuerungscode.

 
Alexey Viktorov:

Das ist doch kein großer Unterschied, oder?

Dies ist der Code zum Erstellen einer Schaltfläche.

Die Schaltfläche wird in der Initialisierungsfunktion erstellt

Und das ist

ist der Code für die Steuerung der Schaltfläche.

Ja, das habe ich, aber ich mag die lange Antwortzeit nicht.

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);

  }
  
Grund der Beschwerde: