Objekteigenschaften

Grafische Objekte können je nach dem Objekttyp zahlreiche Eigenschaften haben. Entsprechend den Funktionen zu grafischen Objekten werden Werte von Objekteigenschaften vorgegeben und erhalten.

Alle Objekte, die bei der technischen Analyse verwendet werden, werden an Grafiken nach den Koordinaten der Zeit und des Preises gebunden. Dazu gehören Trendlinie, Kanäle, Fibonacci usw. Es gibt aber eine Reihe von Hilfsobjekten, die zur Verbesserung des Interfaces dienen und an den immer sichtbaren Teil des Charts gebunden werden (Hauptfenster oder Subfester der Indikatoren):

Objekt

Identifikator

X/Y

Width/Height

Date/Price

OBJPROP_CORNER

OBJPROP_ANCHOR

OBJPROP_ANGLE

Text

OBJ_TEXT

Ja

Ja

Ja

Label

OBJ_LABEL

Ja

Ja (read-only)

Ja

Ja

Ja

Button

OBJ_BUTTON

Ja

Ja

Ja

Bitmap

OBJ_BITMAP

Ja (read-only)

Ja

Ja

Bitmap Label

OBJ_BITMAP_LABEL

Ja

Ja (read-only)

Ja

Ja

Edit

OBJ_EDIT

Ja

Ja

Ja

Rectangle Label

OBJ_RECTANGLE_LABEL

Ja

Ja

Ja

In der Tabelle werden folgende Bezeichnungen verwendet:

  • X/Y – die Koordinaten des Bindepunkts werden in Pixel hinsichtlich einer der Ecken der Grafik angegeben;
  • Width/Height – Objekte haben Breite und Höhe. Wenn "read-only" angegeben ist, heißt das, dass die Höhe und die Breite erst nach dem Zeichnen des Objekts auf der Grafik berechnet werden;
  • Date/Price – das Paar Datum/Preis gibt die Koordinaten des Bindepunktes an;
  • OBJPROP_CORNER – gibt eine Ecke der Grafik an, in Hinsicht auf welche Koordinaten des Bindepunkts angegeben werden. Kann einen der vier Aufzählungswerte ENUM_BASE_CORNER annehmen;
  • OBJPROP_ANCHOR – gibt den Bindepunkt im Objekt selbst an und kann einen der 9 Aufzählungswerte ENUM_ANCHOR_POINT annehmen. Gerade von diesem Punkt werden Koordinaten in Pixel zur ausgewählten Ecke der Grafik angegeben;
  • OBJPROP_ANGLE – gibt den Drehungswinkel entgegen dem Uhrzeigersinn an.

Die Funktionen, die die Eigenschaften von grafischen Objekten eingeben, und die Operationen der Erstellung ObjectCreate() und Bewegen ObjectMove() von Objekte auf dem Chart sind tatsächliche verwendet, um Befehle dem Chart zu senden. Der erfolgreiche Erfüllung dieser Funktionen wird der Befehl in die allgemeine Warteschlange der Chartereignisse platziert. Visuelle Veränderung der Eigenschaften von grafischen Objekten wird während der Verarbeitung der Ereigniswarteschlange von diesem Chart geändert.

Aus diesem Grund sollte man nicht erwarten, dass die graphische Objekten sofort nach dem Aufruf dieser Funktionen visuell aktualisiert wird. Im Allgemeinen werden die graphische Objekten durch das Terminal automatisch nach Änderung-Ereignisse aktualisiert - die Ankunft der neuen Quote, Änderung von Chartfenstergröße, etc.

Um graphischen Objekten zu aktualisieren, verwenden Sie ChartRedraw().

für die Funktionen ObjectSetInteger() und ObjectGetInteger()

ENUM_OBJECT_PROPERTY_INTEGER

Identifikator

Beschreibung

Typ der Eigenschaft

OBJPROP_COLOR

Farbe

color

OBJPROP_STYLE

Stil

ENUM_LINE_STYLE

OBJPROP_WIDTH

Weite von Linie

int

OBJPROP_BACK

Objekt auf dem Hintergrund

bool

OBJPROP_ZORDER

Priorität eines graphischen Objects für Empfang des Ereignisses einen Mausklick auf dem Chart (CHARTEVENT_CLICK). Standardmäßig ist der Wert bei Erstellen auf Null gesetzt, aber Sie können die Priorität erhöhen. Bei der Anwendung der Objekte auf jeder anderen, nur ein Objekt mit der höchsten Priorität bekommt das Ereignis CHARTEVENT_CLICK.

long

OBJPROP_FILL

Füllen ein Objekt mit Farbe (für OBJ_RECTANGLE, OBJ_TRIANGLE, OBJ_ELLIPSE, OBJ_CHANNEL, OBJ_STDDEVCHANNEL, OBJ_REGRESSION)

bool

OBJPROP_HIDDEN

Anzeige des Namens von graphischem Objekt in der Objektliste aus dem Terminal-Menü "Charts" - "Objekte" - "Objektliste". Wert true ermöglicht es,ein Objekt aus der Liste zu verstecken. Standardmäßig wird true für die Objekte, die Kalenderereignisse und Handelsgeschichte zeigen, und auch für die Objekte, die aus MQL5-Programmen erstellt werden, angegeben. Um solche graphischen Objekte graphischen Objekte zu sehen und Zugang zu ihren Eigenschaften zu haben, klicken Sie auf "Alle" im Fenster "Objektliste".

bool

OBJPROP_SELECTED

Hervorheben des Objektes

bool

OBJPROP_READONLY

Möglichkeit von Texteditieren im Objekt  Edit

bool

OBJPROP_TYPE

Objekttyp

ENUM_OBJECT   r/o

OBJPROP_TIME

Koordinate der Zeit

datetime   Modifikator=Nummer des Bezugspunktes

OBJPROP_SELECTABLE

Zugänglichkeit des Objekts

bool

OBJPROP_CREATETIME

Erzeugungszeit des Objekts

datetime    r/o

OBJPROP_LEVELS

Levelszahl

int

OBJPROP_LEVELCOLOR

Farbe von Linie-Level

color   Modifikator=Levelnummer

OBJPROP_LEVELSTYLE

Stil der Linie-Level

ENUM_LINE_STYLE Modifikator=Levelnummer

OBJPROP_LEVELWIDTH

Dicke der Linie-Level

int      Modifikator=Levelnummer

OBJPROP_ALIGN

Horizontale Textausrichtung in der "Edit"-Objekt (OBJ_EDIT)

ENUM_ALIGN_MODE

OBJPROP_FONTSIZE

Schriftgröße

int

OBJPROP_RAY_LEFT

Strahl setzt sich nach links fort  

bool

OBJPROP_RAY_RIGHT

Strahl setzt sich nach rechts fort

bool

OBJPROP_RAY

Eine vertikale Linie erstreckt sich auf alle der Chart-Fenster

bool

OBJPROP_ELLIPSE

Anzeigen die ganzen Ellipse für das Objekt "Fibonacci Arcs" (OBJ_FIBOARC)

bool

OBJPROP_ARROWCODE

Weichenkode für Objekt "Weiche"

uchar

OBJPROP_TIMEFRAMES

Sichtbarkeit des Objekts auf Timeframes

Flaggenvorrat flags

OBJPROP_ANCHOR

Stellung des Bezugspunktes des graphischen Objekts

ENUM_ARROW_ANCHOR (für OBJ_ARROW),

ENUM_ANCHOR_POINT (für OBJ_LABEL, OBJ_BITMAP_LABEL und OBJ_TEXT)

OBJPROP_XDISTANCE

Distanz in Pixel X-Achse vom Bezugswinkel (s. Hinweis)

int

OBJPROP_YDISTANCE

Distanz in Pixel Y-Achse vom Bezugswinkel (s. Hinweis)

int

OBJPROP_DIRECTION

Trend des Gann Objekts

ENUM_GANN_DIRECTION

OBJPROP_DEGREE

Level von Elliott Wave Markierung

ENUM_ELLIOT_WAVE_DEGREE

OBJPROP_DRAWLINES

Liniendarstellung für Elliott Wave Markierung

bool

OBJPROP_STATE

Schaltflächenstellung (Gedrückt/nicht gedrückt)

bool

OBJPROP_CHART_ID

ID von Objekt "Chart" (OBJ_CHART). Es erlaubt mit den Eigenschaften dieses Objektes als einer regelmäßigen Diagram mit den Funktionen der Sektion Operationen mit Charts arbeiten, aber es gibt einige Ausnahmen.

long   r/o

OBJPROP_XSIZE

Die Breite des Objekts entlang der X-Achse in Pixeln. Wird für OBJ_LABEL (read only), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL angegeben.

int

OBJPROP_YSIZE

Die Höhe des Objekts entlang der Y-Achse in Pixeln. Wird für OBJ_LABEL (read only), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL angegeben.

int

OBJPROP_XOFFSET

Die X Koordinate von der linken oberen Ecke des rechteckigen sichtbaren Bereich  in der grafischen Objekte "Bitmap Label" und "Bitmap" (OBJ_BITMAP_LABEL und OBJ_BITMAP). Der Wert wird in Pixel relativ zur oberen linken Ecke des ursprünglichen Bildes gesetzt.

int

OBJPROP_YOFFSET

Die Y Koordinate von der linken oberen Ecke des rechteckigen sichtbaren Bereich  in der grafischen Objekte "Bitmap Label" und "Bitmap" (OBJ_BITMAP_LABEL und OBJ_BITMAP). Der Wert wird in Pixel relativ zur oberen linken Ecke des ursprünglichen Bildes gesetzt.

int

OBJPROP_PERIOD

Periode für Objekt  "Chart"

ENUM_TIMEFRAMES

OBJPROP_DATE_SCALE

Merkmal der Darstellung von Preisskala für Objekt "Chart"

bool

OBJPROP_PRICE_SCALE

Merkmal der Darstellung von Preisskala für Objekt "Chart"

bool

OBJPROP_CHART_SCALE

Massstab für Objekt "Chart"

int   Größe im Bereich  0–5

OBJPROP_BGCOLOR

Hintergrundfarbe für  OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL

color

OBJPROP_CORNER

Winkel des Charts für Snap des Graphischen Objektes

ENUM_BASE_CORNER

OBJPROP_BORDER_TYPE

Frame-Typ für Object "Rechteckige Marke"

ENUM_BORDER_TYPE

OBJPROP_BORDER_COLOR

Die Rahmenfarbe für die Objekte OBJ_EDIT und OBJ_BUTTON

color

Wenn Sie benutzen Operationen mit Charts für Objekt "Chart" (OBJ_CHART), hat es die folgenden Einschränkungen:

 

Für Objekte OBJ_BITMAP_LABEL und OBJ_BITMAP, kann ein besonderer Modus der Bilddarstellung festgelegt werden. In diesem Modus nur ein Teil des Bildes, bei dem eine rechteckige sichtbaren Bereich angewendet wird, während der Rest des Bildes wird unsichtbar. Die Größe dieses Bereiches sollten mit den Eigenschaften OBJPROP_XSIZE und OBJPROP_YSIZE gestellt werden. Der sichtbare Bereich kann nur innerhalb des ursprünglichen Bildes mit den Eigenschaften OBJPROP_XOFFSET und OBJPROP_YOFFSET "bewegt" werden.

 

Für Objekte mit festgelegten Eigenschaften: OBJ_BUTTON, OBJ_RECTANGLE_LABEL, OBJ_EDIT und OBJ_CHART geben die OBJPROP_XDISTANCE und OBJPROP_YDISTANCE Eigenschaften die Lage des linken oberen Punkts hinsichtlich der Ecke der Grafik (OBJPROP_CORNER), von der die Koordinaten X und Y in Pixel berechnet werden.

 

für die Funktionen ObjectSetDouble() und ObjectGetDouble()

ENUM_OBJECT_PROPERTY_DOUBLE

Identifikator

Beschreibung

Typ der Eigenschaft

OBJPROP_PRICE

Koordinate des Preises

double    Modifikator=Nummer des Bezugspunktes

OBJPROP_LEVELVALUE

Levelwert

double    Modifikator=Levelnummer

OBJPROP_SCALE

Massstab (Eigenschaft der Objekte des Objektes "Fibinacci Arcs")

double

OBJPROP_ANGLE

Winkel. Für die aus einem Programm erstellten Objekte, für die kein Winkel angegeben ist, ist der Wert gleich EMPTY_VALUE

double

OBJPROP_DEVIATION

Abweichung für Kanal der Standardabweichung

double

 

für die Funktionen ObjectSetString() und ObjectGetString()

ENUM_OBJECT_PROPERTY_STRING

Identifikator

Beschreibung

Typ der Eigenschaft

OBJPROP_NAME

Objektname

string

OBJPROP_TEXT

Objektbeschreibung (Text, der im Objekt gibt)

string

OBJPROP_TOOLTIP

Der Text eines Tooltip. Wenn die Eigenschaft nicht angegeben ist, wird der Tooltip automatisch vom Terminal generiert. Ein Tooltip kann durch Setzen des "\n" (Zeilenvorschub) Wertes deaktiviert werden

string

OBJPROP_LEVELTEXT

Levelbeschreibung

string    Modifikator=Levelnummer

OBJPROP_FONT

Schriftart

string

OBJPROP_BMPFILE

Name der BMP-Datei für Objekt "Graphische Marke".  Sehen Sie auch Ressourcen

string    Modifikator: 0-Stellung ON, 1-Stellung OFF

OBJPROP_SYMBOL

Symbol für Objekt "Chart"

string

 

Für OBJ_RECTANGLE_LABEL ("rechteckige Marke") kann Mann eine von drei Arten, die auf Werte im ENUM_BORDER_TYPE entsprechen, angeben.

ENUM_BORDER_TYPE

Identifikator

Beschreibung

BORDER_FLAT

Flache Form

BORDER_RAISED

Konvexe Form

BORDER_SUNKEN

Konkave Form

 

Für das Onjekt OBJ_EDIT ("Eingabefeld") und die Funktion ChartScreenShot() können Sie den Typ der horizontalen Ausrichtung mit der Enumerationswerte ENUM_ALIGN_MODE angeben.

ENUM_ALIGN_MODE

Identifier

Beschreibung

ALIGN_LEFT

Linksbündige Ausrichtung

ALIGN_CENTER

Zentrierte Ausrichtung (für"Eingabefeld")

ALIGN_RIGHT

Rechtsbündige Ausrichtung

Beispiel:

#define  UP          "\x0431"
//+------------------------------------------------------------------
//| Script program start function                                    |
//+------------------------------------------------------------------
void OnStart()
  {
//---
   string label_name="my_OBJ_LABEL_object";
   if(ObjectFind(0,label_name)<0)
     {
      Print("Object",label_name,"not found. Error code = ",GetLastError());
      //--- erzeugen wir das Objekt Label
      ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);           
      //--- stellen wir die Koordinate X ein
      ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
      //--- stellen wir die Koordinate Y ein
      ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
      //--- Geben wir Textfarbe vor
      ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrWhite);
      //--- stellen wir text für Objekt Label ein
      ObjectSetString(0,label_name,OBJPROP_TEXT,UP);
      //--- stellen wir Schrift der Unterschrift ein 
      ObjectSetString(0,label_name,OBJPROP_FONT,"Wingdings");
      //--- Stellen wir Schriftgroesse ein
      ObjectSetInteger(0,label_name,OBJPROP_FONTSIZE,10);
      //--- drehen wir um 45 Grad mit dem Uhrzeigerlauf herum 
      ObjectSetDouble(0,label_name,OBJPROP_ANGLE,-45);
      //--- verbieten wir Hervorhebung mit der Maus
      ObjectSetInteger(0,label_name,OBJPROP_SELECTABLE,false);
      //--- zeichnen wir auf dem Chart
      ChartRedraw(0);                                      
     }
  }