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

 
HUNTERGOOD:

Guten Tag zusammen. Liebe Programmierer, bitte helfen Sie mir, eine Zeile mit der Möglichkeit einzufügen, eine Sounddatei für jeden Alert3.Lv1;2;3 anzugeben, um einen anderen Sound auszulösen, den Sie angeben.

Guten Tag zusammen. Verehrte Programmierer, bitte helfen Sie mir, einen String mit der Möglichkeit einzufügen, eine Sounddatei für Alert3.Lv1;2;3 anzugeben, um einen anderen Sound auszulösen.

Guten Tag zusammen. Liebe Programmierer, bitte helfen Sie mir, einen String in die Sounddatei für Alert3.Lv1;2;3 einzufügen, um einen anderen Sound auszulösen.

Fangen Sie an zu basteln, und Sie werden Hilfe bekommen.

Fangen Sie an zu basteln, und Sie werden Hilfe bekommen.

Fangen Sie an zu basteln und Sie werden Hilfe bekommen.

 

Hilfe, die Schlittschuhe rutschen nicht.

Ich versuche zu lernen, wie ich mit Grafikpanels arbeiten und meine eigenen erstellen kann.

Ich habe 2 Rechtecke erstellt, 1 Hauptrechteck, an dessen Koordinaten sich alle Objekte des Panels orientieren sollen, wenn sie verschoben werden.

Ich habe eine solche Bedingung in ChartEvent und jetzt, wenn ich das Hauptrechteck bewegen, bewegt sich das zweite nur nach 2-3 Sekunden, wie es zu beheben?
Ich habe auch versucht, CHARTEVENT_MOUSE_MOVE in der Bedingung, gleichen Effekt

input string ds;//Параметры заднего фона панели
input int x_offset_anchor=100;
input int y_offset_anchor=100;
int anchor_width=150;
int anchor_height=20;
int back_height=100;
input color anchor_color=clrBlue, back_color=clrAquamarine, clrBorder=clrAliceBlue;
input string ds2;//
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   RectLabelCreate(0,"Back_panel_anchor_point",0,x_offset_anchor,y_offset_anchor,anchor_width,anchor_height,anchor_color,BORDER_SUNKEN,CORNER_LEFT_UPPER,clrBorder,STYLE_SOLID,2,false,true,true,0);
   RectLabelCreate(0,"Back_panel",0,x_offset_anchor,y_offset_anchor+anchor_height,anchor_width,back_height,back_color,BORDER_SUNKEN,CORNER_LEFT_UPPER,clrBorder,STYLE_SOLID,1,false,false,true,0);
   
   
   
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
//---
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason){
   ObjectsDeleteAll(0,-1,-1);
}  
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id == CHARTEVENT_OBJECT_DRAG && sparam == "Back_panel_anchor_point")
      {
         ObjectDelete(0,"Back_panel");
         RectLabelCreate(0,"Back_panel",0,ObjectGetInteger(0,"Back_panel_anchor_point", OBJPROP_XDISTANCE),ObjectGetInteger(0,"Back_panel_anchor_point", OBJPROP_YDISTANCE)+anchor_height,anchor_width,back_height,back_color,BORDER_SUNKEN,CORNER_LEFT_UPPER,clrBorder,STYLE_SOLID,1,false,false,true,0);
      }   
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+ 
//| Создает прямоугольную метку                                      | 
//+------------------------------------------------------------------+ 
bool RectLabelCreate(const long             chart_ID=0,               // ID графика 
                     const string           name="RectLabel",         // имя метки 
                     const int              sub_window=0,             // номер подокна 
                     const int              x=0,                      // координата по оси X 
                     const int              y=0,                      // координата по оси Y 
                     const int              width=50,                 // ширина 
                     const int              height=18,                // высота 
                     const color            back_clr=C'236,233,216',  // цвет фона 
                     const ENUM_BORDER_TYPE border=BORDER_SUNKEN,     // тип границы 
                     const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // угол графика для привязки 
                     const color            clr=clrRed,               // цвет плоской границы (Flat) 
                     const ENUM_LINE_STYLE  style=STYLE_SOLID,        // стиль плоской границы 
                     const int              line_width=1,             // толщина плоской границы 
                     const bool             back=false,               // на заднем плане 
                     const bool             selection=false,          // выделить для перемещений 
                     const bool             hidden=true,              // скрыт в списке объектов 
                     const long             z_order=0)                // приоритет на нажатие мышью 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- создадим прямоугольную метку 
   if(!ObjectCreate(chart_ID,name,OBJ_RECTANGLE_LABEL,sub_window,0,0)) 
     { 
      Print(__FUNCTION__, 
            ": не удалось создать прямоугольную метку! Код ошибки = ",GetLastError()); 
      return(false); 
     } 
//--- установим координаты метки 
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x); 
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y); 
//--- установим размеры метки 
   ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width); 
   ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height); 
//--- установим цвет фона 
   ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr); 
//--- установим тип границы 
   ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,border); 
//--- установим угол графика, относительно которого будут определяться координаты точки 
   ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner); 
//--- установим цвет плоской рамки (в режиме Flat) 
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); 
//--- установим стиль линии плоской рамки 
   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); 
//--- установим толщину плоской границы 
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,line_width); 
//--- отобразим на переднем (false) или заднем (true) плане 
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); 
//--- включим (true) или отключим (false) режим перемещения метки мышью 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); 
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов 
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); 
//--- установим приоритет на получение события нажатия мыши на графике 
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); 
//--- успешное выполнение 
   return(true); 
  } 
 
Roman Sharanov:

Hilfe, die Schlittschuhe rutschen nicht.

Ich versuche zu lernen, wie ich mit Grafikpanels arbeiten und meine eigenen erstellen kann.

Ich habe 2 Rechtecke erstellt, 1 Hauptrechteck, an dessen Koordinaten sich alle Panel-Objekte orientieren sollen, wenn sie verschoben werden.

Ich habe eine solche Bedingung in ChartEvent gemacht, und jetzt, wenn ich das Hauptrechteck bewegen, bewegt sich die zweite nur nach 2-3 Sekunden, wie es zu tun?
auch CHARTEVENT_MOUSE_MOVE in der Bedingung ausprobiert, gleiche Wirkung

Nach der Erstellung eines Objekts und seiner Bewegung muss ich ChartRedraw() ausführen

 
Vladislav Andruschenko:

Nachdem Sie ein Objekt erstellt und verschoben haben, müssen Sie ChartRedraw() ausführen

Ja, so ist es besser. Es ist also unmöglich, ihn reibungslos gleiten zu lassen, oder?

Update fügte die Bedingung hinzu, dass nur dann neu gezeichnet wird, wenn das Hauptrechteck ausgewählt ist, und jetzt ist alles in Ordnung, danke für die Hilfe!)

 

Aus einem anderen Thread übernommen. Vielleicht rüttle ich jemanden auf und bekomme Hilfe:


<Die hiesigen Experten erinnern mich an meinen Klassenkameraden (ach, wie lange ist das her) - er kannte alle Regeln, alle Formeln, aber wann er welche anzuwenden hatte, konnte er nicht sofort denken und ging fast alles durch, so dass er die vorgegebene Zeit nie ein hielt.Hier ist es genauso: Sie wissen viel, aber sie sehen die Lösung nicht, sie arbeiten nur nach ihrem "Bauchgefühl". Am Institut wurde uns beigebracht, ein Problem ohne Zahlen und Formeln zu lösen, denn nur dann weiß man genau, welche Formeln man anwenden muss. Neueinsteiger in MKL4 verstehen die Feinheiten der Sprache nicht, und genau da brauchen sie Hilfe (nicht im Sinne von "ein Lehrbuch lesen"). Aber niemand kannIhnen die Fallstricke bei derEröffnung und Schließung von Positionenaufzeigen. Vielleicht wissen sie es nicht? Also ließen sie meine Frage fallen...>.

 
Guten Tag, ich brauche Hilfe, um den aktuellen Preis in eine Datei zu schreiben.
 
lil_lil:
Grüße, Hilfe beim Schreiben des aktuellen Preises in eine Datei.

Schauen Siehier nach.

 
Artyom Trishkin:

Fangen Sie an zu handeln und Sie werden Hilfe bekommen.

Fangen Sie an zu handeln und Sie werden Hilfe bekommen.

Fangen Sie damit an, und Sie werden Hilfe bekommen.

Ich schätze Ihren Sarkasmus, nur nicht auf eine gute Art. Was sollte ich tun? Wenn ich wüsste, wo ich anfangen und wo ich aufhören soll, wäre ich wahrscheinlich nicht an der Hilfe der erfahreneren Sitter in diesem Forum interessiert. Ich denke nur, dass es für eine Person, die sich mit dieser Art von Tätigkeit, d.h. mit dem Programmieren, auskennt, kein Problem wäre, ein paar Zeichenfolgen an bestimmten Stellen einzufügen, so dass ich eine bestimmte Tondatei im Indikator anzeigen kann. Und Sie bieten mir an, "anzufangen", mit welchen Grundlagen sollte ich beginnen, um diese große und undurchschaubare Kunst des Programmierens zu beherrschen, damit ich weiß, wo ich dieselben Zeichenfolgen richtig einfügen muss? Das meine ich....

 
HUNTERGOOD:

Ich habe Ihren Sarkasmus zu schätzen gewusst, aber nicht wegen des Inhalts. Was sollte ich tun? Wenn ich wüsste, wo ich anfangen und wo ich aufhören soll, hätte ich wahrscheinlich kein Interesse an der Hilfe von erfahreneren Mitgliedern dieses Forums gezeigt. Ich denke nur, dass es für eine Person, die sich mit dieser Art von Tätigkeit, d.h. mit dem Programmieren, auskennt, kein Problem wäre, ein paar Zeichenfolgen an bestimmten Stellen einzufügen, so dass ich eine bestimmte Tondatei im Indikator anzeigen kann. Und Sie bieten mir an, "anzufangen", mit welchen Grundlagen sollte ich beginnen, um diese große und undurchschaubare Kunst des Programmierens zu beherrschen, damit ich weiß, wo ich die gleichen Zeichenfolgen richtig einfügen muss? Das meine ich....

Die Blinker funktionieren nicht, nur Alarm, nur 1 Ton.
 
Alexey Viktorov:

Siehehier.

Danke, die Werte dort sind aus einer Datei und einem Zeitpunkt und ich habe eine Aufgabe, die sich über die Zeit erstreckt.

Zeichnen Sie den aktuellen Preis und die Uhrzeit zu Beginn eines jeden Tages 30 Minuten lang alle 120 Sekunden auf.

Überschreiben Sie keine früheren Einträge.