我使用读取配置文件的指标编写了一个 EA。此配置文件放在文件夹中MQL4\Files
。
当我使用实时图表运行 EA 时,它运行良好。但是当我尝试使用策略测试器测试这个 EA 时,它返回一个4103 error: can not open file.
知道为什么会这样吗?
以及如何解决这个问题?
我使用读取配置文件的指标编写了一个 EA。此配置文件放在文件夹中MQL4\Files
。
当我使用实时图表运行 EA 时,它运行良好。但是当我尝试使用策略测试器测试这个 EA 时,它返回一个4103 error: can not open file.
知道为什么会这样吗?
以及如何解决这个问题?
出于安全原因,对文件的处理在
MQL4
语言中受到严格控制。使用手段进行文件操作的文件MQL4
,不能在文件沙箱之外。
该文件在子文件夹中的客户端文件夹中打开MQL4\files
(或Tester\Files
在测试的情况下)。如果FILE_COMMON
在标志中指定,文件将在所有 MetaTrader 4 客户端的共享文件夹中打开。
简单地说,注意只使用文件路径的“相对”规范(并记住,三种可能的根目录情况中的哪一种被用于哪种方式操作)。
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
用例的两个位置都拥有相同配置文件的副本,或者将单个实例保留在<shared_common_directory>