ChartApplyTemplate

Applique au graphique le modèle indiqué. Отданная команда поступает в очередь сообщений графика и выполняется только после обработки всех предыдущих команд.

bool  ChartApplyTemplate(
   long          chart_id,     // identificateur du graphique
   const string  filename      // nom du fichier avec le modèle
   );

Paramètres

chart_id

[in]  L'identificateur du graphique. 0 signifie le graphique courant.

filename

[in]  Le nom du fichier qui contient le modèle.

La valeur rendue

Возвращает true в случае удачного помещения команды в очередь графика, иначе false. Pour recevoir l'information sur l'erreuril faut appeler la fonction GetLastError().

Note

L'expert sera déchargé et ne pourra pas continuer le travail si un nouveau modèle sera chargé de l'expert sur le graphique à qui il est adjoint au moyen de cette fonction.

В целях безопасности право на торговлю при применении шаблона к графику может ограничиваться:

Права на торговлю не могут быть повышены при запуске советника путем применения шаблона с помощью функции ChartApplyTemplate().

Если у mql5-программы, которая вызывает функцию ChartApplyTemplate(), отсутствуют права на торговлю, то эксперт, загруженный при помощи шаблона, также не будет иметь прав на торговлю вне зависимости от настроек шаблона.

Если у mql5-программы, которая вызывает функцию ChartApplyTemplate(), есть права на торговлю, а в настройках шаблона права отсутствуют, то советник, загруженный при помощи шаблона, не будет иметь прав на торговлю.

Utilisation des modèles

Par les moyens du langage MQL5 on peut spécifier la multitude de propriétés du graphique, ainsi qu'établir les couleurs à l'aide de la fonction ChartSetInteger()  :

  • La couleur du fond du graphique;
  • La couleur des axes, de l'échelle et de la ligne OHLC;
  • La couleur de la grille;
  • La couleur des volumes et des niveaux de l'ouverture des positions;
  • La couleur de la barre en haut, de l'ombre et de l'encadrement du corps de la bougie d'haussier;
  • La couleur de la barre en bas, de l'ombre et de l'encadrement du corps de la bougie de baissier;
  • La couleur de la ligne du graphique et des chandeliers japonais "Doji";
  • La couleur du corps de la bougie d'haussier;
  • La couleur du corps de la bougie de baissier;
  • La couleur de la ligne du prix Bid;
  • La couleur de la ligne du prix Ask;
  • La couleur de la ligne du prix du dernier marché passé (Last);
  • La couleur des niveaux des ordres Stop (Stop Loss et Take Profit).

En outre la multituded'objets graphiques et des indicateurspeut être sur le graphique. Il suffit de configurer une fois l'apparence du graphique avec tous les indicateurs nécessaires et le garder comme un modèle pour appliquer ce modèle à n'importe quel graphique plus tard.

La fonction ChartApplyTemplate () est destinée à être utilisé par le modèle précédemment gardé et peut être utilisée dans n'importe quel programme mql5. Le chemin vers le fichier qui contient le modèle est transmis comme le deuxième paramètre de la fonction ChartApplyTemplate (). est transmis le chemin vers le fichier qui contient le modèle. La recherche du fichier du modèle se réalise selon les règles suivantes:

  • si au début du chemin il y a le séparateur - la barre oblique inversée "\" (est écrit comme "\\"), le modèle est recherché relativement le chemin - le répertoire_des données_du terminal\MQL5,
  • s'il n'y a pas de la barre oblique inversée, alors le modèle est recherché par rapport le fichier EX5 exécutable où passe l'appel de la fonction (ChartApplyTemplate);
  • si le modèle n'est pas trouvé dans les deux premiers variants, la recherche est effectuée dans un dossier le répertoire_du terminal\Profiles\Templates\.

Ici le répertoire_du terminal signifie le dossier à partir duquel a été lancé le terminal de client MetaTrader 5 et le répertoire_des données_du terminal signifie le dossier qui contient les fichiers modifiés et son emplacement peut dépendre du type du système d'exploitation et du nom d'utilisateur et des paramètres de sécurité de l'ordinateur. En général, ce sont les dossiers différents, bien que dans certains cas ils peuvent coïncider.

On peut savoir les emplacements des dossiers le répertoire_des données_du terminal et le répertoire_du terminal à l'aide de la fonction TerminalInfoString().

//--- le répertoire d'où est lancé le terminal
   string terminal_path=TerminalInfoString(TERMINAL_PATH);
   Print("le répertoire du terminal:",terminal_path);
//--- le répertoire des données du terminal, dans lequel se trouve le dossier MQL5 avec les conseillers et les indicateurs
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
   Print("Le répertoire des données du terminal:",terminal_data_path);

Les exemples de l'enregistrement:

//--- cherchons le modèle dans le dossier le répertoire_des données_du terminal\MQL5\
ChartApplyTemplate(0,"\\first_template.tpl"))
//--- cherchons le modèle dans le dossier le répertoire_du fichier_EX5_exécutable\, après dans le dossier le répertoire_des données_du terminal\Profiles\Templates\
ChartApplyTemplate(0,"second_template.tpl"))
//--- cherchons le modèle dans le dossier le répertoire_du fichier_EX5_exécutable\My_templates\, après dans le dossier le répertoire_du terminal\Profiles\Templates\My_templates\
ChartApplyTemplate(0,"My_templates\\third_template.tpl"))

Les modèles ne se rapportent pas aux ressources, on ne peut pas les insérer dans un fichier EX5 exécutable.

Exemple:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- пример применения шаблона, расположенного в каталоге \MQL5\Files
   if(FileIsExist("my_template.tpl"))
     {
      Print("Шаблон my_template.tpl найден в каталоге \Files'");
      //--- применим найденный шаблон
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
        {
         Print("Применили успешно шаблон 'my_template.tpl'");
         //--- принудительно перерисуем график для быстрого показа изменений
         ChartRedraw();
        }
      else
         Print("Не удалось применить шаблон 'my_template.tpl', ошибка ",GetLastError());
     }
   else
     {
      Print("Файл 'my_template.tpl' не найден в папке "
            +TerminalInfoString(TERMINAL_PATH)+"\\MQL5\\Files");
     }
  }

Voir aussi

Ressources