- Makrosubstitution (#define)
- Programmeigenschaften (#property)
- Include Dateien (#include)
- Import der Funktionen (#import)
- Bedingte Kompilierung (#ifdef, #ifndef, #else, #endif)
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 |
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 |
Verweis auf die Site der Gesellschaft-Hersteller |
|
copyright |
Name des Autors/Rechteinhabers |
|
version |
Programmversion, nicht mehr als 31 Zeichen |
|
description |
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 |
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 |
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 |
Feste Höhe des Indikator-Unterfensters in Pixel (Eigenschaft INDICATOR_HEIGHT) |
|
indicator_buffers |
Anzahl der Puffer für Indikatorberechnung |
|
indicator_plots |
Anzahl der graphischen Reihen im Indikator |
|
indicator_minimum |
der untere Grenzwert der Skala für ein separates Fenster des Indikators |
|
indicator_maximum |
der obere Grenzwert der Skala für ein separates Fenster des Indikators |
|
indicator_labelN |
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 |
Farbe für Linienausgabe N, wo N - Nummer einer graphischen Serie; Nummerierung fängt mit 1 an |
|
indicator_widthN |
Linienbreite in der graphischen Serie, wo N - Nummer der graphischen Serie; Numerierung mit 1 |
|
indicator_styleN |
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 |
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 |
horizontaler Level N im eigenen Fenster des Indikators |
|
indicator_levelcolor |
Farbe der horizontalen Levels des Indikators |
|
indicator_levelwidth |
Breite der horizontalen Levels des Indikators |
|
indicator_levelstyle |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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:
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
|
Beispiel für die Angabe eines separaten Labels für jeden Indikatorpuffer ("C open;C high;C low;C close")
#property indicator_chart_window
|