在策略测试程序中运行EA时,MT4无法打开文件错误4103

时间:2015-12-23 15:53:23

标签: file algorithmic-trading metatrader4 mt4

我使用一个读取配置文件的指标编写了一个EA。此配置文件放在 MQL4\Files 文件夹中。

当我使用实时图表运行EA时,它运行良好。但是当我尝试使用策略测试程序测试此EA时,它会返回 4103 error: can not open file.

知道为什么会这样吗?

如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

发生的事情是MQL4生态系统的一个特征:

  

出于安全原因,使用 MQL4 语言严格控制使用文件。使用MQL4进行文件操作的文件表示不能在文件 sandbox 之外。

  该文件在子文件夹 MQL4\files (或测试时为 Tester\Files )的客户端终端文件夹中打开。如果在flags中指定 FILE_COMMON ,则会在所有MetaTrader 4客户端终端的共享文件夹中打开该文件。

如何解决这个问题?

简单地说,只需要使用文件路径的“ relative ”规范(并记住,三种可能的根目录案例中的哪一种正在使用哪种运作方式) )。

aFH = FileOpen( "aFileInsideDefaultDirectoryRoot.txt", ... );
// 
// USED:
// in Strategy Tester---+
//    plain EA-mode-----|------------+
//    FILE_COMMON-mode--|------------|----------------+
//                      |            |                |
// RESULTS:             v            v                v
// in a file in { tester\files | MQL4\Files | <shared_common_directory> }

对于读取文件的情况,您可以强制在非FILE_COMMON用例的两个位置都拥有相同配置文件的副本,或者在{{1}中保留单个实例}}