MQL4 历史数据内存不足

MQL4 Not enough memory for history data

我在获取较高时间范围内柱线的时间值时遇到问题。我正在测试器中测试我的专家顾问,当我尝试使用带有 PERIOD_D1 参数的函数 iTime() 时,我总是收到 1970.01.01 00:00:00.

的值

GetLastError()函数returns一个“not enough memory for history data”消息。即使测试人员 运行ning 了几天的数据,它也会一直重复。下面是我尝试 运行:

的代码
datetime t = iTime( Symbol(), PERIOD_D1, 0 );

Print( "Trend tick time: " + t );

int check1 = GetLastError();

if (  check1 != ERR_NO_ERROR ) Print( "Error: ", ErrorDescription( check1 ) );

我得到这样的输出:

0 22:33:24 2016.06.29 08:00 HLR FDE30,M1: Trend tick time: 1970.01.01 00:00:00

0 22:33:24 2016.06.29 08:00 HLR FDE30,M1: Error: not enough memory for history data

0 22:33:25 2016.06.30 08:00 HLR FDE30,M1: Trend tick time: 1970.01.01 00:00:00

0 22:33:25 2016.06.30 08:00 HLR FDE30,M1: Error: not enough memory for history data

0 22:33:26 2016.07.01 08:00 HLR FDE30,M1: Trend tick time: 1970.01.01 00:00:00

0 22:33:26 2016.07.01 08:00 HLR FDE30,M1: Error: not enough memory for history data

[...]

当我调用其他采用时间范围参数的内置函数时,同样的事情也会发生。比如 iMA(), iCCI(), iRSI() .

文档表明上述函数可以接受任何时间范围值:https://docs.mql4.com/series/itime

我要补充一点,我的 MetaTrader 终端图表设置是:

Max bars in history: 1250000
Max bars in chart:   1250000

你对我如何解决这个问题有什么建议吗?

不知道是不是有其他设置或环境限制?

可能您的磁盘上没有 space 或没有数据。

为了运行 MetaTrader终端策略测试器,您需要数据,您可以按F2[查看=27=] 和 select 一个交易品种和一个时间框架。

如果没有数据(即在 D1 处)- 按 Download 按钮获取该数据,然后再次 运行 策略测试器。

希望对您有所帮助。

这基本上意味着 MT4 占用了您所有的 RAM 内存。 (您可以在“任务管理器”中按 CTR+ALT+DEL 查看)

解决方法 转到工具 -> 选项 -> “图表中的最大柱数”并设置为 5000

...你那里可能有很多。

..现在重启 MT4,一切正常。