Wie lerne ich, grafische Objekte zu erstellen? MQL4.

 

Ich wollte schon seit langem lernen, wie mangrafische Objekte erstellt, aber viele Codezeilen sind verwirrend.

Wenn mit dem Aufruf des Indikators im Expert Advisor alles klar ist: Aufruf des Handles, Kopieren von Werten in den Puffer, wie sieht dann der Algorithmus zur Konstruktion von Objekten in Kurzform aus?

Ich beginne mit der einfachsten Variante - dem Zeichnen der Trendlinie. Hier ist ein Beispielhttps://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_trend

Nur, wie lässt man die Linie erscheinen, aber nicht verschwinden?

Ich frage mich, wie man die aktuelle Position dieser Zeile in der EA zu lesen, gibt es keine Puffer in den Objekten?

Ich möchte es in MQL4 erstellen, ist es viel anders als MQL5?

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Nehmen SieOBJ_TREND als Beispiel und kopieren Sie es als separate Funktion in Ihren EA. Was meinen Sie mit "es nicht verschwinden lassen"? Abrufen von Objektzeit- und Preiswerten:ObjectGetTimeByValue undObjectGetValueByTime.
OBJ_TREND - Документация на MQL4
  • docs.mql4.com
OBJ_TREND - Документация на MQL4
 
barabashkakvn:
Nehmen SieOBJ_TREND als Beispiel und kopieren Sie es als separate Funktion in Ihren EA. Was meinen Sie mit "es nicht verschwinden lassen"? Abrufen von Objektzeit- und Preiswerten:ObjectGetTimeByValue undObjectGetValueByTime.
Wenn ich das Skript aufrufe, erscheint die Zeile visuell (die Aktion geschieht wie im Video) und verschwindet dann wieder.
 
forexman77:
Wenn ich das Skript aufrufe, erscheint die Zeile visuell (wie im Video) und verschwindet dann wieder.
Ändern Sie den Skriptcode. Entfernen Sie die Löschung des Objekts. Verwenden Sie das gesamte Skript aus der Hilfe?
 
barabashkakvn:
Ändern Sie den Skriptcode. Entfernen Sie die Löschung des Objekts. Verwenden Sie das gesamte Skript aus der Hilfe?
Ja. Ich werde es jetzt versuchen.
 
barabashkakvn:
Ändern Sie den Skriptcode. Entfernen Sie die Löschung des Objekts. Verwenden Sie das gesamte Skript aus der Hilfe?
Die Linie bleibt bestehen. Das ist in Ordnung. Ich werde es mir jetzt ansehen.
 
Wenn Sie Fragen zum Code haben, posten Sie den Code und fragen Sie.
 
barabashkakvn:
Wenn Sie Fragen zum Code haben, posten Sie den Code und fragen Sie.

Es ist nicht klar, was diese Zahlen bedeuten und was sie festlegen? Wenn mit der Zeit kann ich davon ausgehen, dass es bar Index ist, dann wie zu verstehen, InpPrice, hat int Typ?

input int             InpDate1=35;         // Дата 1-ой точки в %
input int             InpPrice1=60;        // Цена 1-ой точки в %
input int             InpDate2=65;         // Дата 2-ой точки в %
input int             InpPrice2=40;        // Цена 2-ой точки в %
 
forexman77:

Es ist nicht klar, was diese Zahlen bedeuten und was sie verlangen?

Dechiffrierung Die Erklärung wird etwas weiter oben gegeben:

#property description "Скрипт строит графический объект \"Трендовая линия\"."
#property description "Координаты точек привязки задаются в процентах от"
#property description "размеров окна графика."

und von nun an werden diese Daten zur Bestimmung der Zeichnungspunkte verwendet:

void OnStart()
  {
.
.
.
//--- определим точки для рисования линии
   int d1=InpDate1*(bars-1)/100;
   int d2=InpDate2*(bars-1)/100;
   int p1=InpPrice1*(accuracy-1)/100;
   int p2=InpPrice2*(accuracy-1)/100;
//--- создадим линию тренда
.
.
.
 
barabashkakvn:

Dechiffrierung Die Erklärung wird etwas weiter oben gegeben:

und von nun an werden diese Daten verwendet, um die Zeichenpunkte zu definieren:

Im Beispiel"OBJ_TREND" gibt es meiner Meinung nach eine Menge unnötiger Daten. Da ich mich in dieser Gegend nicht besonders gut auskenne, fürchte ich, dass ich mich lange verirren werde.

Soweit ich verstehe, wird der Code durchsucht, aber ich kenne bereits die beiden Punkte, Balkenindizes (mein Algorithmus).

Die Frage ist nur, wie man diese beiden Punkte mit einer Linie verbindet und sie bis zu einem bestimmten Ereignis nach rechts weiterführt.

 
forexman77:

In diesem Beispiel scheint es eine Menge Redundanz zu geben. Da ich mich in dieser Gegend nicht besonders gut auskenne, fürchte ich, dass ich lange umherirren werde.

Soweit ich verstehe, sucht der Code, aber ich kenne bereits die beiden Punkte, Indexbalken (mein Algorithmus).

Die Frage ist nur, wie man diese beiden Punkte mit einer Linie verbindet und sie bis zu einem bestimmten Ereignis nach rechts weiterführt.

Wenn Sie die Zeit und das Datum Ihrer Punkte kennen, müssen Sie nurbool TrendCreate() aufrufen.