Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

ObjectCreateAndSet - Bibliothek für den MetaTrader 5

Ansichten:
1372
Rating:
(28)
Veröffentlicht:
2016.07.28 12:40
Aktualisiert:
2016.11.22 07:34
\MQL5\Include\ \MQL5\Scripts\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Die angehängte *.mqh Datei enthält Funktionen für das Erstellen von Objekten und das Ändern von Eigenschaften von Objekten. Es ist besonders nützlich für mich, wenn ich schnell einen Test-Code zu schreiben habe, der Objekte in einem Diagramm erstellt oder die Eigenschaften vorhandener Objekte ändert.

Die andere Datei ist ein Skript mit einem Verwendungsbeispiel (erstellt eine Beschriftung, dreht sie allmählich um 90 Grad und ändert den Text und seine Farbe auf dem Weg).

I. Funktionen zum Erstellen von Objekten:

Die Funktionen basieren auf den Standardfunktionen, wie sie in der MQL5 Referenz beschrieben sind. Größere Unterschiede zu den korrespondierenden Standardfunktionen:

  • Zeilen hinzugefügt für das Einstellen von Tooltips und Einstellen der Sichtbarkeit von Objekten auf verschiedenen TimeFrames;
  • Zeilen entfernt für Erstellungsfunktionen ohne Koordinaten, Preise, Ankerpunkte (ausgenommen VLineCreate(...) und EventCreate(...)) zu setzen;
  • basierend auf Funktionen für das Einstellen (Ändern) von Objekteigenschaften, die in dieser Bibliothek implementiert sind, wurden zusätzliche Bedingungen hinzugefügt um den Erfolg beim Einstellen der Eigenschaften zu überprüfen.

Liste von Funktionen für das Erstellen von Objekten:

Name
Kurze Beschreibung
Objektyp

VLineCreate

Erstelle eine vertikale Linie

OBJ_VLINE

HLineCreate

Erstelle eine horizontale Linie

OBJ_HLINE

TrendCreate

Erzeugt eine Trendlinie mit den gegebenen Koordinaten

OBJ_TREND

ArrowedLineCreate

Erstellt einen Pfeil mit den gegebenen Koordinaten

OBJ_ARROWED_LINE

ChannelCreate

Erzeugt einen äquidistanten Kanal mit den angegebenen Koordinaten

OBJ_CHANNEL

RectangleCreate

Erzeugt ein Rechteck mit den angegebenen Koordinaten

OBJ_RECTANGLE

TriangleCreate

Erzeugt ein Dreieck mit den angegebenen Koordinaten

OBJ_TRIANGLE

EllipseCreate

Erzeugt eine Ellipse mit den angegebenen Koordinaten

OBJ_ELLIPSE

ArrowCreate

Create OBJ_ARROW

OBJ_ARROW
TextCreate

Erzeugt ein Textobjekt

OBJ_TEXT

LabelCreate

Erzeugt einen Textlabel

OBJ_LABEL

ButtonCreate

Erzeugt einen Button

OBJ_BUTTON

BitmapCreate

Erzeugt eine Bitmap im Chartfenster

OBJ_BITMAP

BitmapLabelCreate

Erzeugt ein Label Objekt

OBJ_BITMAP_LABEL

EditCreate

Erzeugt ein Edit-Objekt

OBJ_EDIT

EventCreate

Erzeugt ein Event-Objekt am Chart

OBJ_EVENT

RectLabelCreate

Erzeugt einen rechteckigen Label

OBJ_RECTANGLE_LABEL

 

II. Funktionen für das Einstellen von Objekteigenschaften:

Using ObjectSetDouble(...), ObjectSetInteger(...) and ObjectSetString(...) without specifying a modifier:


Funktionsname
Enumeration
Eigenschaft
Kurze Beschreibung
Eigenschaftstyp
1. ObSetDouble ENUM_OBJECT_PROPERTY_DOUBLE OBJPROP_SCALE Skala (Eigenschaft von Gannobjekten und Fibonacci Bogen Objekten) double
OBJPROP_ANGLE
Winkel. Für Objekte bei denen kein Winkel durch ein Programm spezifiziert wurde, ist der Wert gleich EMPTY_VALUE
double
OBJPROP_DEVIATION Abweichung vom Standardabweichungskanal
double
2. ObSetIntegerAlign ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ALIGN Horizontale Textasurichtung im Edit-Objekt (OBJ_EDIT)
ENUM_ALIGN_MODE
3. ObSetIntegerAncorPoint ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ANCHOR
Ort des Ankerpunktes für OBJ_LABEL, OBJ_BITMAP_LABEL und OBJ_TEXT Objekte
ENUM_ANCHOR_POINT
4.
ObSetIntegerArrowAncor
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ANCHOR Ort des Ankerpunktes für OBJ_ARROW Objekte
ENUM_ARROW_ANCHOR
5. ObSetIntegerArrowCode
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ARROWCODE Pfeil code für OBJ_ARROW
char
6. ObSetIntegerBool ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_BACK
Objekt im Hintergrund
bool
OBJPROP_FILL Füllt ein Objekt mit Farbe (für OBJ_RECTANGLE, OBJ_TRIANGLE, OBJ_ELLIPSE, OBJ_CHANNEL, OBJ_STDDEVCHANNEL,OBJ_REGRESSION) bool
OBJPROP_HIDDEN Verbietet die Anzeige des Namens eines grafischen Objektes der Liste der Objekte aus dem Terminal-Menü "Charts" - "Objekte" - "Liste der Objekte". "true" blendet ein Objekt aus der Liste aus. Standardmäßig ist "true" für Objekte gesetzt, die Kalenderereignisse oder die Handelshistorie zeigen und Objekte die von MQL5 Programmen erstellt wurden. Um solche graphischen Objekte zu sehen und auf ihre Eigenschaften zuzugreifen, klicken Sie
den "Alle" Button im "List der Objekte" Fenster.
bool
OBJPROP_SELECTED
Objekt ist ausgewählt bool
OBJPROP_READONLY
Möglichkeit Text im Edit-Objekt zu bearbeiten bool
OBJPROP_SELECTABLE
Objekt-Verfügbarkeit bool
OBJPROP_RAY_LEFT
Strahl geht nach links bool
OBJPROP_RAY_RIGHT Strahl geht nach rechts bool
OBJPROP_RAY Vertikale Linie geht durch alle Fenster eines Charts bool
OBJPROP_ELLIPSE Zeige die vollständige Ellipse des Fibonacci Bogen Objektes (OBJ_FIBOARC) bool
OBJPROP_DRAWLINES Zeige Linien für die Markierung von Elliottwellen bool
OBJPROP_STATE Button Zustand (gedrückt/losgelassen) bool
OBJPROP_DATE_SCALE Flag für die Anzeige der Zeitskala des Chartobjektes bool
OBJPROP_PRICE_SCALE Flag für die Anzeige der Preisskala des Chartsobjektes bool
7. ObSetIntegerBorderType ENUM_OBJECT_PROPERTY_INTEGER
OBJPROP_BORDER_TYPE
Rahmentyp für das Rechteck-Label-Objekt
ENUM_BORDER_TYPE
8. ObSetIntegerColor ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_COLOR Farbe (abhängig vom Objekttyp, steuer die Farbe von Linien, Texten etc.) color
OBJPROP_BGCOLOR Hintergrundfarbe für OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL color
OBJPROP_BORDER_COLOR Rahmenfarbe für OBJ_EDIT und OBJ_BUTTON color
9. ObSetIntegerCorner
ENUM_OBJECT_PROPERTY_INTEGER
OBJPROP_CORNER Chartecke für das Anhängen von graphischen Objekten
ENUM_BASE_CORNER
10. ObSetIntegerInt ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_WIDTH Linienbreite int
OBJPROP_LEVELS Anzahl von Levels int
OBJPROP_FONTSIZE Schriftgröße int
OBJPROP_TIMEFRAMES Sichtbarkeit eines Objektes auf TimeFrames (eine Menge von Flags) int
OBJPROP_XDISTANCE Distanz in Pixels entlang der X-Achse von der Ankerecke (siehe Hinweis in der MQL5 Referenz) int
OBJPROP_YDISTANCE Distanz in Pixels entlang der Y-Achse von der Ankerecke (siehe Hinweis in der MQL5 Referenz)
int
OBJPROP_XSIZE Objektbreite entlang der X-Achse in Pixels. Spezifiziert für OBJ_LABEL (read only), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL int
OBJPROP_YSIZE Objekthöhe entlang der Y-Achse in Pixels. Spezifiziert für OBJ_LABEL (read only), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL int
OBJPROP_XOFFSET Die X-Koordinate der oberen linken Ecke des rechteckigen sichtbaren Bereichs im Bitmap-Label und graphischen Bitmap-Objekten (OBJ_BITMAP_LABEL und OBJ_BITMAP). Der Wert wird in Pixels relativ zur oberen linken Ecke des originalen Bildes gesetzt int
OBJPROP_YOFFSET Die Y-Koordinate der oberen linken Ecke des rechteckigen sichtbaren Bereichs im Bitmap-Label und graphischen Bitmap-Objekten (OBJ_BITMAP_LABEL und OBJ_BITMAP). Der Wert wird in Pixels relativ zur oberen linken Ecke des originalen Bildes gesetzt int
OBJPROP_CHART_SCALE Skala für das Chartobjekt (von 0 bis 5) int
11. ObSetIntegerLineStyle ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_STYLE
Stil
ENUM_LINE_STYLE
12. ObSetIntegerLong ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ZORDER Priorität eines graphischen Objektes für das Empfangen von Events beim Klicken auf den Chart (CHARTEVENT_CLICK). Der Standard Null Wert wird gesetzt, wenn ein Objekt erstellt wird, aber die Eigenschaft kann vergrößert werden, wenn nötig. Wenn Objekte übereinander gelegt werden empfängt nur jenes mit der höchsten Priorität das CHARTEVENT_CLICK event.
long

ObSetString ENUM_OBJECT_PROPERTY_STRING OBJPROP_NAME Objektname
string
OBJPROP_TEXT Objektbeschreibung (im Objekt enthaltener Text) string
OBJPROP_TOOLTIP Tooltip-Text. Wenn die Eigenschaft nicht gesetzt wurde, wird der automatisch generierte Tooltip gezeigt. Um den Tooltip abzuschlaten, stellen Sie den Wert "\n" (newline) ein string
OBJPROP_FONT Schrift string
OBJPROP_SYMBOL Symbol für das Chartobjekt string

 

Verwendung von ObjectSetDouble(...), ObjectSetInteger(...) und ObjectSetString(...) ohne einen Modifikator anzugeben:


Name
Enumeration Eigenschaft Kurze Beschreibung Eigenschaftstyp
1. ObSetDoubleMod ENUM_OBJECT_PROPERTY_DOUBLE OBJPROP_PRICE Preiskoordinate - double, Modifikator=Anker Punkt Nummer double
OBJPROP_LEVELVALUE Levelwert - double, Modifikator=Levelnummer
double
2.
ObSetIntegerLevelColorMod ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELCOLOR Farbe der Levellinie - color, Modifikator=Levelnummer
color
3.
ObSetIntegerLevelStyleMod
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELSTYLE
Stil der Levellinie ENUM_LINE_STYLE, Modifikator=Levelnummer
ENUM_LINE_STYLE
4.
ObSetIntegerLevelWidthMod
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELWIDTH
Breite der Levellinie - int, Modifikator=Levelnummer
int
5. ObSetIntegerTimeMod ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_TIME
Zeitkoordinate - datetime, Modifikator=Anker Punkt Nummer
datetime
6. ObSetStringMod ENUM_OBJECT_PROPERTY_STRING OBJPROP_LEVELTEXT Levelbeschreibung - string, Modifikator=Level Nummer string
OBJPROP_BMPFILE
BMP Dateiname für das Bitmap Level Objekt - string. Siehe auch Ressourcen in der Referenz. Modifikator: 0-ON Zustand, 1-OFF Zustand string

 

Zusätzliche Funktionen:



bool ObDelete (long chart_ID,string name)
Lösche ein einzelnes Objekt mit angegebenen Namen

 

III. Verwendung:

Sie können sie als Include-Datei verwenden oder einfach bestimmte Funktionen daraus in ihren Quellcode kopieren.

Wenn Sie den zweiten Weg wählen, denke ich, dass es besser ist, sie zuerst als Include-Datei zu verwenden. Wenn Sie dann alle notwendigen Funktionsaufrufe implementiert haben, können Sie die Include-Direktive (#include...) entfernen.

Dann sagt Ihnen der Compiler, welche Funktionen Sie von der Include-Datei kopieren müssen.

Verwendung als Include-Datei:

  1. Speichern Sie die angehängte Datei ObjectCreateAndSet.mqh in den "Include" Ordner. Um das zu erreichen, können Sie das Navigator Fenster von MetaEditor verwenden. Im Navigator Festner klicken Sie mit der rechten Maustaste den "Include" Ordner an und wählen "Öffne Ordner".

  2. Um die Bibliothek in Ihrem Code zu verwenden, kopieren Sie die #include... Zeile vom Anfang der Datei und fügen Sie in Ihren Quellcode ein:
    #include <ObjectCreateAndSet.mqh>
    Das angehängte Skript liefert ein Beispiel für das Includen der Bibliothek.

  3. Danach compilieren Sie Ihren Code. Es wird Ihnen ermöglicht, die Tooltips für die eingebundenen Funktionen zu sehen, wenn Sie den Anfang ihrer Namen eingeben:

Der vollständige Name einer Funktion in einem Tooltip nachdem die ersten paar Buchstaben eingegeben wurden

Abb.1. Der vollständige Name einer Funktion in einem Tooltip nachdem die ersten paar Buchstaben eingegeben wurden


Abb.2. Parameter einer Funktion in einem Tooltip

Sie können übrigens den Funktionsliste Button der MetaEditor Toolbar verwenden, um eine schnelle Anzeige der Liste von Funktionen, die in Ihrer aktuellen Datei verwendet wurde, zu erhalten:

Abb.3. Button zur Anzeige der Liste der in einer Datei verwendeten Funktionen

Wenn Sie den Button drücken, erscheint eine Drop-Down-Liste. Um zu einer bestimmten Funktion zu gehen, klicken Sie ihren Namen in der Liste an.

Abb.4. Klicken des Buttons öffnet eine Liste der Funktionen in einer Datei (praktisch, um sich schnell zu einer Funktion zu bewegen)

Aktualisierungen:

  • 2015.09.14: In der ObDelete() Funktion, wird der Objektname im Experts-Tab ausgegeben, wenn ein Fehler beim Löschen des Objektes aufgetreten ist. Das erleichtert die Suche nach Fehlern im Code.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/13374

ColorLinearRegSlope_V2_HTF ColorLinearRegSlope_V2_HTF

Der ColorLinearRegSlope_V2 Indikator mit der Option TimeFrames in den Eingabeparametern auszuwählen.

ColorLeManTrend_HTF ColorLeManTrend_HTF

Der ColorLeManTrend Indikator mit der Option TimeFrames in den Eingabeparametern auszuwählen.

ColorMomentum_AMA_HTF ColorMomentum_AMA_HTF

Der ColorMomentum_AMA Indikator mit der Option TimeFrames in den Eingabeparametern auszuwählen.

ColorMaRsi-Trigger_HTF ColorMaRsi-Trigger_HTF

Der ColorMaRsi-Trigger Indikator mit der Option TimeFrames in den Eingabeparametern auszuwählen.