首页 > 解决方案 > 获取在 MT4 中使用 ChartApplyTemplate 的路径

问题描述

在阅读了我能找到的材料并尝试了各种解决方案后,我仍然无法ChartApplyTemplate正常工作。模板不适用于正在打开的图表,我收到的错误是 5002 - 找不到文件。

这是我的代码:

int iChartID = ChartOpen(sChartNameL,5);  ChartApplyTemplate(iChartID,"C:\\Users\\Jean\\AppData\\Roaming\\MetaQuotes\\Terminal\\DA3C92B1779898CC0CACD726A655BECB\\Files\\ADX.tpl");
Print(GetLastError());

我也试过:

  int iChartID = ChartOpen(sChartNameL,5);
  string sTerminalDataPath = TerminalInfoString(TERMINAL_DATA_PATH);
  ChartApplyTemplate(iChartID, sTerminalDataPath + "\\MQL4\\Files\\ADX.tpl");

我试图将模板放在各种目录中。文件如上所述,但我也尝试在 mql4\experts 子目录中插入 files 子目录,并且还尝试使用 MQL4 子目录下的 files 子目录。我还将模板留在了默认模板目录中。我已经尝试了这些不同的位置,因为我相信 Metatrader 有一个可以访问文件的沙箱环境。

请你帮帮我。

标签: pathmql4

解决方案


您为图表 ID 使用了错误的变量类型,它应该是 type long。该代码应作为示例阅读。

long iChartID = ChartOpen("EURUSD",5);  ChartApplyTemplate(iChartID,"Popular.tpl");

对于模板文件的位置,来自文档:

  • 如果反斜杠“”分隔符(写为“\”)放在路径的开头,则相对于路径_terminal_data_directory\MQL4搜索模板,
  • 如果没有反斜杠,则相对于可执行 EX4 文件搜索模板,其中调用 ChartApplyTemplate();
  • 如果在前两个变体中未找到模板,则在文件夹 terminal_directory\Profiles\Templates 中执行搜索。

推荐阅读