我使用一个读取配置文件的指标编写了一个EA。此配置文件放在 MQL4\Files
文件夹中。
当我使用实时图表运行EA时,它运行良好。但是当我尝试使用策略测试程序测试此EA时,它会返回 4103 error: can not open file.
知道为什么会这样吗?
如何解决这个问题?
答案 0 :(得分:3)
出于安全原因,使用
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}中保留单个实例}}