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,一切正常。
我在获取较高时间范围内柱线的时间值时遇到问题。我正在测试器中测试我的专家顾问,当我尝试使用带有 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,一切正常。