Programmeigenschaften (#property)

Bei jedem mql5-Programm können zusätzliche spezifische Parameter #property angegeben werden, die dem Client-Terminal helfen, Programme richtig zu bedienen. In erster Linie betrifft es Außeneinstellungen der Identifikatoren. Eigenschaften, beschrieben in Schaltdateien, werden völlig ignoriert. Eigenschaften müssen in der Haupt mql5-Datei vorbestimmt werden.  

#property Identifikator Wert

Compiler schreibt in Einstellungen des ausführenden Moduls erklärte Werte.
 

Konstante

Typ

Beschreibung

icon

string

Pfad zur Datei mit dem Bild, das als ein Icon des EX5-Programms verwendet werden soll. Pfadangaberegel sind die gleichen wie für die Ressourcen. Die Eigenschaft muss in dem Hauptmodul mit dem MQL5 Quellcode angegeben werden. Die Icondatei muss im ICO-Format sein.

link

string

Verweis auf die Site der Gesellschaft-Hersteller

copyright

string

Name des Autors/Rechteinhabers

version

string

Programmversion, nicht mehr als 31 Zeichen

description

string

Kurze Textbeschreibung des mql5-Programms. Sie kann mehrere Textzeilen umfassen. Allerdings darf die gesamte Länge, einschließlich der Zeilenumbrüche, nicht  511 Zeichen überschreiten.

stacksize

int

Die Stack Größe eines MQL5 Programms. Ein Stack ausreichender Größe wird benötigt, wenn Funktionen rekursiv aufgerufen werden.

Beim Start eines Skripts oder Expert Advisors wird ein Stack in Höhe von 8Mb reserviert, für Indikatoren gilt diese Eigenschaft nicht - das Stack ist immer gleich 1Mb.

Beim Start im Strategietester wird immer ein Stack von 16 MB reserviert.

library

 

Bibliothek; wird von keiner Startfunktion zugeordnet, Funktionen mit dem Modifikator export können in andere  mql5-Programme importiert werden

indicator_applied_price

int

gibt Default-Wert für Feld "Apply to" vor. Kann einer der Enumerationswerte ENUM_APPLIED_PRICEvorgegeben werden. Wenn die Eigenschaft nicht vorgegeben wird, wird PRICE_CLOSE als Default-Wert verwendet

indicator_chart_window

 

Indikator im Chartfenster ausgeben

indicator_separate_window

 

Indikator in einem separaten Fenster ausgeben

indicator_height

int

Feste Höhe des Indikator-Unterfensters in Pixel (Eigenschaft INDICATOR_HEIGHT)

indicator_buffers

int

Anzahl der Puffer für Indikatorberechnung

indicator_plots

int

Anzahl der graphischen Reihen im Indikator

indicator_minimum

double

der untere Grenzwert der Skala für ein separates Fenster des Indikators

indicator_maximum

double

der obere Grenzwert der Skala für ein separates Fenster des Indikators

indicator_labelN

string

gibt Marke für N- graphische Serie vor, die im Fenster DataWindow dargestellt wird. Für graphische Serien, die mehrere Indikatorpuffer erfordern (DRAW_CANDLES, DRAW_FILLING und andere), werden die Markennamen durch Begrenzer vorgegeben ';'.

indicator_colorN

color

Farbe für Linienausgabe  N, wo N - Nummer einer graphischen Serie; Nummerierung fängt mit  1 an

indicator_widthN

int

Linienbreite in der graphischen Serie, wo N - Nummer der graphischen Serie; Numerierung mit  1

indicator_styleN

int

Linienstil in der graphischen Serie, der mittels des Werte aus ENUM_LINE_STYLE angegeben wird. N - Nummer einer graphischen Serie, Nummerierung fängt mit 1 an

indicator_typeN

int

Typ der graphischen Darstellung, der durch den Wert aus ENUM_DRAW_TYPE angegeben wird . N -  Nummer einer graphischen Serie, Nummerierung fängt mit 1 an

indicator_levelN

double

horizontaler Level N im eigenen Fenster des Indikators

indicator_levelcolor

color

Farbe der horizontalen Levels des Indikators

indicator_levelwidth

int

Breite der horizontalen Levels des Indikators

indicator_levelstyle

int

Stil der horizontalen Niveaus des Indikators

script_show_confirm

 

Ausgabe des Bestätigungsfensters vor dem Scriptablauf

script_show_inputs

 

Ausgabe des Fensters mit Eigenschaften vor dem Scriptablauf und Verbot, Bestätigungsfenster auszugeben

tester_indicator

string

Name des Benutzerindikators im Format "Name_des Indikators.ex5". Die für Testenerforderliche Indikatoren werden automatisch aus Aufruf der Funktionen iCustom() bestimmt, wenn der entsprechende Parameter von der Konstantzeile vorgegeben ist. Für andere Fälle (Verwendung der Funktion IndicatorCreate() oder Verwendung einer nicht Konstantzeile im Parameter, der den Namen des Indikator vorgibt) ist diese Eigenschaft erforderlich.

tester_file

string

Dateiname für Tester mit Angabe der Erweiterung, in Doppelanführungszeichen (als Konstantzeile). Die angegebene Datei wird dem Tester für Arbeit übertragen. Eingabeparameter für Testen müssen immer angegeben werden (wenn sie erforderlich sind)  

tester_library

string

Name der Bibliothek mit Erweiterung in doppelten Anführungszeichen. Eine Bibliothek kann sowohl die Erweiterung dll, als auch die Erweiterung ex5 haben. Die für das Testen erforderlichen Bibliotheken werden automatisch definiert. Aber wenn eine der Bibliotheken von einem benutzerdefinierten Indikator verwendet wird, muss man diese Eigenschaft verwenden.

tester_set

string

Der Name der Set-Datei mit den Werten und der Schrittweite der Input-Parameter. Die Datei wird dem Tester vor dem Testen oder der Optimierung übergeben. Die Dateiname muss samt einer Erweiterung und in doppelten Anführungszeichen als ein Constant-String angegeben werden.

 

Wenn Sie den Namen des Expert Advisors und die Nummer der Version im Namen einer Set-Datei als "<expert_name>_<number>.set" angeben, wird diese dem Download-Menü der Versionen der Parameter unter der Nummer der Version <number> automatisch hinzugefügt. Der Name "MACD Sample_4.set" bedeutet zum Beispiel, dass dies eine Set-Datei für den Expert Advisor "MACD Sample.mq5" mit der Versionsnummer 4 ist.

 

Um das Format zu untersuchen, ist es empfehlenswert, Einstellungen des Testens/der Optimierung im Strategietester zu speichern, und dann die auf solche Weise erstellte Set-Datei zu öffnen.

tester_no_cache

string

Während einer Optimierung speichert der Strategietester alle Ergebnisse der ausgeführten Durchläufe im Optimierungs-Cache, in dem das Testergebnis für jeden Satz von Eingangsparameter gespeichert wird. Dies ermöglicht es, die bereits erzielten Ergebnisse bei einer erneuten Optimierung mit den gleichen Parametern zu verwenden, ohne Zeit durch eine erneute Berechnung zu verschwenden.

 

Bei einigen Aufgaben (z.B. bei mathematischen Berechnungen) kann es jedoch notwendig sein, Berechnungen unabhängig von der Verfügbarkeit bereits erzielter Ergebnisse im Optimierungs-Cache durchzuführen. In diesem Fall sollte die Datei die Eigenschaft tester_no_cache enthalten. Die Testergebnisse werden weiterhin im Cache gespeichert, so dass Sie im Strategietester alle Daten zu den durchgeführten Durchläufen sehen können.

tester_everytick_calculate

string

Im Strategietester werden Indikatoren erst beim Zugriff auf ihre Daten berechnet, d.h. wenn die Werte von Indikatorpuffern angefordert werden. Dies ermöglicht eine deutlich schnellere Test- und Optimierungsgeschwindigkeit, da nicht bei jedem Tick Indikatorwerte bereitgestellt werden müssen.

 

Durch die Angabe der Eigenschaft tester_everytick_calculate können Sie die erzwungene Berechnung des Indikators bei jedem Tick aktivieren.

 

Die Indikatoren im Strategietester werden auch in den folgenden Fällen für jeden Tick zwingend berechnet:

 

Diese Funktion gilt nur für den Strategietester, während in den Terminals die Indikatoren immer bei jedem empfangenen Tick berechnet werden.

optimization_chart_mode

string

Gibt den Diagrammtyp und die Namen von zwei Eingabeparameter an, die für die Visualisierung von Optimierungsergebnissen verwendet werden. Beispielsweise bedeutet "3d, InpX, InpY", dass die Ergebnisse in einem 3D-Diagramm mit den Koordinatenachsen basierend auf den getesteten InpX- und InpY-Parameterwerten dargestellt werden. Somit ermöglicht die Eigenschaft die Angabe von Parametern, die zur Anzeige des Optimierungsdiagramms und des Diagrammtyps verwendet werden, direkt im Programmcode.

Mögliche Optionen:

  • "3d, input_parameter_name1, input_parameter_name2" means a 3D Visualizierungsdiagramm, das rotiert, vergrößert und verkleinert werden kann. Das Diagramm wird mit zwei Parametern erstellt.
  • "2d, input_parameter_name1, input_parameter_name2" bedeutet ein 2D-Gitterdiagramm, in dem jede Zelle je nach Ergebnis in einer bestimmten Farbe dargestellt wird. Das Diagramm wird mit zwei Parametern erstellt.
  • "1d, input_parameter_name1, input_parameter_name2" bedeutet ein lineares Diagramm, in dem die Ergebnisse nach dem angegebenen Parameter gereiht werden. Jeder Durchlauf wird als Punkt angezeigt. Das Diagramm wird auf Basis eines Parameters erstellt.
  • "0d, input_parameter_name1, input_parameter_name2" bedeutet ein reguläres Diagramm aus Ergebnissen, in der Reihenfolge der Entstehungszeit der Durchlaufergebnisse. Jeder Durchlauf wird als Punkt im Diagramm angezeigt. Eine Parameteranzeige ist nicht erforderlich, aber die angegebenen Parameter können für die manuelle Umschaltung auf andere Diagrammtypen verwendet werden.

Optional können Sie nur den Diagrammtyp angeben, ohne einen oder beide Eingabeparameter anzugeben. In diesem Fall wählt das Terminal die erforderlichen Parameter aus, um das Optimierungsdiagramm anzuzeigen.

Beispiel für die Angabe der Beschreibung und Nummer einer Version

#property version     "3.70"      // aktuelle Expertversion
#property description "ZigZag universell mit Pesavento Patterns"
#property description "Zum jetzigen Zeitpunkt werden in Indikator mehrere ZigZag mit verschiedenen Algorithmen eingebaut"
#property description "Es ist möglich, eine große Anzahl anderer Indikatoren einzubauen, die Maxima und "
#property description "Minima zeigen und aus diesen Minima und Maxima verschiedene graphische Instrumente automatisch zu erzeugen"

Beispiel für die Angabe der Beschreibung und Nummer einer Version

 

Beispiel für die Angabe eines separaten Labels für jeden Indikatorpuffer ("C open;C high;C low;C close")

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots   1
#property indicator_type1   DRAW_CANDLES
#property indicator_width1  3
#property indicator_label1  "C open;C high;C low;C close"

Beispiel für die Angabe eines separaten Labels für jeden Indikatorpuffer