ChartApplyTemplate

Wendet zum Chart die angegebene Schablone zu. Der Befehl wird in die Warteschlange der Chartnachrichten gestellt und wird nach der Prozessirrung aller vorherigen Befehle abgearbeitet werden.

bool  ChartApplyTemplate(
   long          chart_id,     // Identifikator des Charts
   const string  filename      // Dateiname mit der Schablone 
   );

Parameter

chart_id

[in]  Identifikator des Charts. 0 bedeutet den laufenden Chart.

filename

[in]  Dateiname mit dem Symbol.

Rückgabewert

Gibt true zurück, wenn der Befehl in die Warteschlange des Charts gestellt wurde, andernfalls gibt false zurück. Um die Information über den Fehler zu erhalten, muss man die Funktion GetLastError() aufrufen.

Hinweis

Wenn durch diese Funktion eine neue Schablone in den Chart geladen wird, zu der die Schablone angehängt ist, wird Expert ausgeladen und seine Arbeit nicht fortsetzen kann.

Aus Sicherheitsgründen kann die Erlaubnis zum Handeln unter Anwendung einer Vorlage begrenzt werden:

Die Erlaubnis zum Handeln kann nicht beim Start des Expert Advisors mithilfe der Vorlage anhand der ChartApplyTemplate() Funktion erweitert werden.

Wenn das mql5-Programm, das die ChartApplyTemplate() Funktion aufruft, über keine Erlaubnis zum Handeln verfügt, wird der Expert Advisor, der über die Vorlage gestartet wurde, auch keine Rechte auf Handel haben unabhängig von den Einstellungen der Vorlage.

Wenn das mql5-Programm, das die ChartApplyTemplate() Funktion aufruft, die Erlaubnis zum Handeln hat, und in den Einstellungen der Vorlage gibt es die Erlaubnis nicht, wird der Expert Advisor, der mit der Vorlage gestartet wurde, auch keine Erlaubnis zum Handel haben.

Verwendung von Vorlagen

Mit Hilfe der Mittel der MQL5-Sprache können Sie viele Eigenschaften des Charts definieren, einschließlich der Farben mit der ChartSetInteger()-Funktion:

  • Hintergrundfarbe des Charts;
  • Farbe der Achsen, Skalen und OHLC-Reihen;
  • Grid-Farbe;
  • Farbe der Volumen und Position offen Ebenen;
  • Farbe des up-Bars, Schatten und Rand eines bullish Candlestick;
  • Farbe des unten-Bars, Schatten und Rand eines bullish Candlestick;
  • Farbe der Chartslinien und Doji Candlesticks;
  • Farbe der bullishen Candlestick Körper;
  • Farbe der bearishen Candlestick Körper;
  • Farbe der Bid-Preis Linie;
  • Farbe der Ask-Preis Linie;
  • Farbe der Linie der letzten Transaktion (Last);
  • Farbe der Stop-Order Ebenen (Stop Loss und Take Profit).

Außerdem kann es mehrere grafische Objekte und Indikatoren in einem Chart werden. Sie können ein Chart mit allen notwendigen Indikatoren einmal abstimmen und speichern es als Schablone. Eine solche Schablone kann auf jeden Chart aufgebracht werden.

Die Funktion ChartApplyTemplate() ist für die Verwendung einer zuvor gespeicherten Schablone bestimmt, und es kann in jeder MQL5 Programm verwendet werden. Der Pfad zu der Datei, in der die Schablone liegt, wird als zweiter Parameter zu ChartApplyTemplate() übergeben. Die Schablone-Datei wird nach folgenden Regeln gesucht:

  • wenn der Backslash "\" Separator (wie geschrieben "\\") wird am Anfang des Pfads platziert, wird die Schablone relativ zum Pfad _Terminaldaten_Verzeichnis\MQL5 gesucht,
  • wenn es kein Backslash gibt, wird die Schablone relativ zur ausführbaren EX5-Datei, in denen ChartApplyTemplate() aufgerufen wird, gesucht;
  • wenn die Schablone nicht in den ersten beiden Varianten gefunden ist, wird die Suche in dem Ordner Terminal_Verzeichnis\Profiles\Templates\ durchgeführt.

Hier Terminal_Verzeichnis ist der Ordner, aus dem MetaTrader 5 Client Terminal läuft, und Terminal_Verzeichnis ist der Ordner, in denen editierbare Dateien gespeichert sind, sein Lage ist auf dem Betriebssystem, den Benutzernamen und Computer-Security-Einstellungen abhängig. Normalerweise werden sie verschiedenen Ordnern, sondern in einigen Fällen können sie zusammenfallen.

Der Speicherort der Ordner Terminaldaten_Verzeichnis und Terminal_Verzeichnis kann mit der Funktion TerminalInfoString() erfährt werden.

//--- Verzeichnis, aus dem das Terminal gestartet war
   string terminal_path=TerminalInfoString(TERMINAL_PATH);
   Print("Terminal_Verzeichnis:",terminal_path);
//--- Terminaldaten-Verzeichnis, in dem der MQL5-Ordner mit EAs und Indikatoren liegt
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
   Print("Terminaldaten_Verzeichnis:",terminal_data_path);

Beispiele:

//--- Suche nach einer Schablone in Terminaldaten_Verzeichnis\MQL5\
ChartApplyTemplate(0,"\\first_template.tpl"))
//--- Suche nach einer Schablone in EX5-Datei_Verzeichnis\, dann in Terminaldaten_Verzeichnis\Profiles\Templates\
ChartApplyTemplate(0,"second_template.tpl"))
//--- Suche in EX5-Datei_Verzeichnis\My_templates\, dann in Terminaldaten_Verzeichnis\Profiles\Templates\My_templates\
ChartApplyTemplate(0,"My_templates\\third_template.tpl"))

Schablonen sind nicht Ressourcen, können sie nicht in eine ausführbare EX5-Datei einbezogen werden.

Beispiel:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- ein Beispiel für die Anwendung der Vorlage, die im Verzeichnis \MQL5\Files gespeichert ist
   if(FileIsExist("my_template.tpl"))
     {
      Print("Die Vorlage my_template.tpl wurde im Verzeichnis \Files' gefunden");
      //--- die gefundene Vorlage anwenden
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
        {
         Print("Die Vorlage 'my_template.tpl' erfolgreich angewandt");
         //--- den Chart neu zeichnen
         ChartRedraw();
        }
      else
         Print("Die Vorlage 'my_template.tpl' konnte nicht angewandt werden, Fehler ",GetLastError());
     }
   else
     {
      Print("Die Datei 'my_template.tpl' konnte im Ordner nicht gefunden werden "
            +TerminalInfoString(TERMINAL_PATH)+"\\MQL5\\Files");
     }
  }

Sehen Sie auch

Ressourcen