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

 
Seric29:

Da Artyom nichts antwortet und der Mann oben die Antwort gab, dass Funktionen mit Strukturen arbeiten, die bekannt sein müssen und daher global deklariert werden müssen, schließen wir, dass die Struktur global deklariert werden muss.

Es liegt in der Natur der Sache, dass eine Funktion, die mit einer Struktur arbeitet, nur die gleichen statischen Strukturen akzeptieren kann. Das bedeutet, dass wir eine Struktur nicht lokal deklarieren können, so dass sie einen begrenzten Anwendungsbereich hat, und sie an eine Funktion übergeben können.

Verweisen Sie nicht auf mich, wenn Sie nicht verstehen, was ich gesagt habe. Lesen Sie aufmerksam, was Artem gesagt hat.

In seiner Eile hat er einige Ungenauigkeiten in den Kodex eingebaut. Das bedeutet nicht, dass er sich falsch ausgedrückt hat. Eine Struktur ist ein benutzerdefinierter Datentyp und wird im globalen Bereich definiert . Eine Variable vom Typ Benutzer kann überall deklariert werden. Und es können beliebig viele solcher Variablen deklariert werden.
 
Artyom Trishkin:
Die Statistik wird sich dadurch nicht ändern.

Übrigens, es zeigt mir nicht nur nicht 1 Uhr nachts oder 23 Uhr, sondern das hier.


Der technische Beruf.

Fortschritt

Genehmigung der TOR
Demo
Übermittlung von Arbeiten und Zahlungen


Alle diese Kästchen sind angeklickt. Es heißt, dass die Zahlung in einer Woche automatisch verschwindet. Allerdings wurde nur die Demodatei erhalten, und in dieser befindet sich eine Datumsbeschränkung, die eine Bearbeitung nur im letzten Jahr zulässt. Ich vermute, dass er sich gelangweilt hat und nun eine Woche warten wird, bis sich die Gehaltsliste automatisch ändert.


Es ist bereits geschehen.


Der Kunde Zlaya_budka hat den Schritt"Demo" bestätigt
2020.01.29 21:47

Übertragung von Arbeiten und Bezahlung

Der Kunde hat die Demo akzeptiert, nun muss der Entwickler das Endergebnis abliefern.

Nach Abnahme der Arbeit erfolgt die Bezahlung automatisch vom Konto des Kunden (abzüglich einer Provision). Wenn der Kunde nicht innerhalb einer Woche auf die vorgelegten Arbeiten antwortet, gilt der Auftrag automatisch als abgeschlossen.

2020.01.29 21:47

Entwickler=========bestätigte den Schritt"Übertragung von Arbeit und Bezahlung"


Was soll das bedeuten? ich hatte schon eine schöne von pipal, wo Soll und Haben getauscht wurden, warte schon 3 Wochen auf servicedesk mit Zahlung. jetzt diese Freude, was bedeutet das?

Zlaya_budka
Zlaya_budka
  • www.mql5.com
Профиль трейдера
 
Alexey Viktorov:

Verweisen Sie nicht auf mich, wenn Sie nicht wissen, wovon ich spreche. Lesen Sie aufmerksam, was Artem gesagt hat.

In seiner Eile hat er einige Ungenauigkeiten in den Kodex eingebaut. Das bedeutet nicht, dass er sich falsch ausgedrückt hat. Eine Struktur ist ein benutzerdefinierter Datentyp und wird im globalen Bereich definiert . Eine Variable vom Typ Benutzer kann überall deklariert werden. Und es können beliebig viele solcher Variablen deklariert werden.

Nun, ich spreche genau über meinen Fall und genau über die Struktur, es ist klar, dass es auch ein benutzerdefinierter Variablentyp ist, aber insbesondere bin ich an der lokalen Ebene interessiert. Vielleicht könnte man das im Rahmen eines Kurses machen. Im Prinzip kann man einen privaten Typ über eine Klasse deklarieren und das war's, aber ich verstehe das nicht so ganz.

 
Kolleginnen und Kollegen - können Sie mir sagen, ob das Init bei jedem Durchlauf des Testers startet?
 
Seric29:

Nun, ich spreche genau über meinen Fall und genau über die Struktur und genau so, es ist klar, dass es auch ein benutzerdefinierter Variablentyp ist, aber insbesondere bin ich an der lokalen Ebene interessiert. Vielleicht könnte man das im Rahmen eines Kurses machen. Im Prinzip kann man einen privaten Typ über eine Klasse deklarieren, aber ich verstehe das nicht so ganz.

Sie definieren Ihre Struktur auf globaler Ebene - das gesamte Programm muss sie kennen - es handelt sich um einen neuen Typ von Variablen, den Sie erstellt haben.

Und Sie können verschiedene Variablen mit dem Typ dieser Struktur auf jeder der lokalen Ebenen definieren - nur in ihnen (den lokalen Ebenen) werden die in ihrem Bereich erstellten Variablen sichtbar sein.

 

Hallo zusammen!

Helfen Sie mir beim Anbringen

extern   ENUM_BASE_CORNER  InpCorner      =  CORNER_LEFT_UPPER;   // Угол привязки индикатора

zu diesem Objekt

//--- Clicking on the fifth rectangle
   if(id==CHARTEVENT_OBJECT_CLICK) 
     {
      string clickedChartObject=sparam;
      if(clickedChartObject==obj_name[5]) 
        {
         string name="name_"+IntegerToString(MathRand()+100,0,' ');

         y=100;x=5;
         ChartXYToTimePrice(0,x,y,window,dt_1,price_1);
         ChartXYToTimePrice(0,x+250,y,window,dt_2,price_2);
         ChartXYToTimePrice(0,x,y+20,window,dt_3,price_3);

         ChannelCreate(0,name,0,dt_1,price_1,dt_2,price_2,dt_3,price_3,1,clrRed,STYLE_SOLID,1,InpBackRect,true,false,false,InpHidden_OBJ,0);
        }
     }

bool

//+------------------------------------------------------------------+
//| Create an equidistant channel by the given coordinates           |
//+------------------------------------------------------------------+
bool ChannelCreate(const long             chart_ID=0,                   // chart's ID
                   const string           name="Channel",               // channel name
                   const int              sub_window=0,                 // subwindow index  
                   datetime               time1=0,                      // first point time
                   double                 price1=0,                     // first point price
                   datetime               time2=0,                      // second point time
                   double                 price2=0,                     // second point price
                   datetime               time3=0,                      // third point time
                   double                 price3=0,                     // third point price
                   const ENUM_BASE_CORNER corner = CORNER_RIGHT_UPPER,  // the angle of the graph for the binding
                   const color            clr=clrRed,                   // channel color
                   const ENUM_LINE_STYLE  style=STYLE_SOLID,            // style of channel lines
                   const int              width=1,                      // width of channel lines
                   const bool             back=false,                   // in the background
                   const bool             selection=true,               // highlight to move
                   const bool             ray_left = false,             // extend the line to the left
                   const bool             ray_right=false,              // channel's continuation to the right
                   const bool             hidden=true,                  // hidden in the object list
                   const long             z_order=0)                    // priority for mouse click
  {
//--- reset the error value
   ResetLastError();
//--- create a channel by the given coordinates
   if(!ObjectCreate(chart_ID,name,OBJ_CHANNEL,sub_window,time1,price1,time2,price2,time3,price3))
     {
      Print(__FUNCTION__,
            ": failed to create an equidistant channel! Error code = ",GetLastError());
      return(false);
     }
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- 
   return(true);
  }
//+------------------------------------------------------------------+
//| Delete the channel                                               |
//+------------------------------------------------------------------+
bool ChannelDelete(const long   chart_ID=0,     // chart's ID
                   const string name="Channel") // channel name
  {
//--- reset the error value
   ResetLastError();
//--- delete the channel
   if(!ObjectDelete(chart_ID,name))
     {
      Print(__FUNCTION__,
            ": failed to delete the channel! Error code = ",GetLastError());
      return(false);
     }
//---
   return(true);
  }
//---
 

Soweit ich weiß, berechnet ChartXYToTimePrice die Koordinaten standardmäßig auch von der linken oberen Ecke.

Wie würde ChartXYToTimePrice von der angegebenen Ecke aus neu berechnet werden?

 
MakarFX:

Ich habe verstanden, dass ChartXYToTimePrice die Koordinaten berechnet und von der linken oberen Ecke ausgeht.

Wie würde ChartXYToTimePrice anhand des von mir angegebenen Winkels neu berechnet werden?

Man kann nur die Meinung von jemandem ändern, der etwas hat, mit dem er Entscheidungen treffen kann. Und wenn "es" nur die Einstellungen eines anderen ausführt, dann sind alle Dialoge, die versuchen, Sie von etwas zu überzeugen, reine Zeitverschwendung.))

Ich verstehe die Aufgabe nicht ganz, aber achten Sie nicht nur auf den Bindungswinkel ENUM_BASE_CORNER, sondern auch auf den Bindungspunkt ENUM_ANCHOR_POINT

 

Alexey Viktorov:

Ich verstehe die Aufgabe nicht ganz

Indikator beim Aufruf erzeugt ein Objekt (OBJ_CHANNEL) in der oberen linken Ecke

wie man die Bedingung festlegt, um ein Objekt in der anderen Ecke zu erstellen.

 
MakarFX:

Indikator beim Aufruf erzeugt ein Objekt (OBJ_CHANNEL) in der oberen linken Ecke

wie man die Bedingung festlegt, um ein Objekt in der anderen Ecke zu erstellen.

Lesen Sie das Handbuch sorgfältig durch. OBJ_CHANNEL hat nichts mit dem Winkel zu tun.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Способы привязки объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Способы привязки объектов
  • www.mql5.com
Графические объекты Text, Label, Bitmap и Bitmap Label (OBJ_TEXT, OBJ_LABEL, OBJ_BITMAP и OBJ_BITMAP_LABEL) могут иметь один из 9 различных способов привязки своих координат, задаваемых свойством OBJPROP_ANCHOR. – объекты имеет ширину и высоту. Если указано "только для чтения", то это означает, что значения ширины и высоты...