Wie lerne ich, grafische Objekte zu erstellen? MQL4. - Seite 4

 
Integer:

Vor der Erstellung können Sie mit der Funktion ObjectFind() prüfen, ob das Objekt existiert. Sie brauchen nichts zu tun, es gibt sie, und es ist in Ordnung, keine große Sache.

Eine Gruppe von Objekten. Sie können dem Objektnamen die Uhrzeit hinzufügen, um einen eindeutigen Namen zu erhalten.

Trimmen Sie den Balken. Die Eigenschaft ObjectSet(Name,OBJPROP_RAY,false);

Wow, ich habe Ihre Gedanken gelesen. Bereits erledigt. Der Name wurde der aktuellen Uhrzeit zugeordnet.

Trimmen des Balkens. Das heißt, die Erinnerung an den alten Namen setzt einen falschen Namen?

 
forexman77:

...

Schneiden Sie den Balken. Sie meinen, die Erinnerung an den alten Namen ist ein Fauxpas?

Unmittelbar nach der Erstellung rufen Sie ObjectSet() mit demselben Namen auf, mit dem die Erstellung durchgeführt wurde.
 

Versuch, Objekte im Expert Advisor, Indikator-Unterfenster zu zeichnen (MQL4)

Der Indikator ist derselbe, d. h., das Teilfenster sollte die Nummer 1 sein.

long   chart_ID=0;        // ID графика
int win_idx=1;
string nameobj=TimeToStr(Time[0]);       
            //--- сбросим значение ошибки
            ResetLastError();
            //--- создадим трендовую линию по заданным координатам
           if(!ObjectCreate(chart_ID,nameobj,OBJ_TREND,win_idx,Time[index],maximum1,Time[1],TRENDmax[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            } 

Keine Zeichnung. Es erscheint die Fehlermeldung 4206 (Unterfenster nicht gefunden)

Der Expert Advisor eröffnet den Handel so, wie er visuell sein sollte. D.h. die Variablen"Time[index],maximum1,Time[1],TRENDmax[1]" sind korrekt.

 
forexman77:

Versuch, Objekte im Expert Advisor, Indikator-Unterfenster zu zeichnen (MQL4)

Der Indikator ist derselbe, d. h., das Teilfenster sollte die Nummer 1 sein.

Keine Zeichnung. Es wird der Fehler 4206 (Unterfenster nicht gefunden) angezeigt

Anstelle von "1" setzen SieChartWindowFind().
 
Karputov Vladimir:
Anstelle von "1" setzen SieChartWindowFind().

Wie erhalte ich die Kurzbezeichnung des Indikators im EA?

Im Indikator selbst habe ich einen kurzen Namen vergeben

IndicatorShortName("fraktalSDV");
 

Ich habe ein Skript erstellt:

void OnStart()
  {
string   shortName="fraktalSDV"; 
long   chart_ID=0;        // ID графика
int win_idx=ChartWindowFind(chart_ID,shortName);
Alert("Окно = ", win_idx);
  }

Das Fenster wird so angezeigt, wie es sein soll.

In der EA:

string   shortName="fraktalSDV"; 
long   chart_ID=0;        // ID графика
int win_idx=ChartWindowFind(chart_ID,shortName);
         Print("shortName=",shortName);
         string nameobj=TimeToStr(Time[0]);          
            //--- сбросим значение ошибки
            ResetLastError();
            //--- создадим трендовую линию по заданным координатам
           if(!ObjectCreate(chart_ID,nameobj,OBJ_TREND,win_idx,Time[index],maximum1,Time[1],TRENDmax[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            } 

Nummer des Unterfensters ermitteln -1

 
forexman77:

Ich habe ein Skript erstellt:

Das Fenster wird so angezeigt, wie es sein soll.

In der EA:

Nummer des Unterfensters abrufen -1

Sind Sie sicher, dass Sie im Unterfenster einen Indikator mit der Kurzbezeichnung"fraktalSDV" haben?
 
Karputov Vladimir:
Sind Sie sicher, dass Sie einen Indikator im Unterfenster mit dem Kurznamen"fraktalSDV" im Chart haben?
Wenn ich die Visualisierung im Tester aktiviere, erscheint sie am Ende des Laufs.
 
forexman77:
Wenn ich die Visualisierung im Tester aktiviere, erscheint sie am Ende des Laufs.
Erstellen Sie eine Vorlage mit dem Indikator und speichern Sie diese Vorlage unter dem Namen tester.
 
Karputov Vladimir:
Erstellen Sie eine Vorlage mit dem Indikator und speichern Sie diese Vorlage unter dem Namen tester.

Das heißt, Sie erstellen ein Diagrammprofil mit dem Indikator?

Ich habe versucht, den Indikator im Testgerät in Zeitlupe auszuführen, er wird gerendert.

Grund der Beschwerde: