在阅读了我能找到的材料并尝试了各种解决方案后,我仍然无法使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有一个可以访问文件的沙箱环境。
你能帮我吗?
您的图表ID使用了错误的变量类型,它的类型应该是long
。代码应作为示例阅读。
long iChartID = ChartOpen("EURUSD",5); ChartApplyTemplate(iChartID,"Popular.tpl");
关于模板文件的位置,请参阅文档:
- 如果反斜杠"分隔符(写为"\"(放置在路径的开头,相对于路径_terminal_data_directory\MQL4搜索模板
- 如果没有反斜杠,则搜索相对于可执行EX4文件的模板,其中调用ChartApplyTemplate((
- 如果在前两个变体中找不到模板,则在文件夹terminal_directory\Profiles\Templates中执行搜索