HistoryBase: not enough memory ...

 

Anyone know if migrating to 64bit Vista/Win7 will negate the "not enough memory" issue with MT4 when handling large hst files?

HistoryBase: not enough memory 'GBPJPY1' [4438779 bars]

I've got M1 data for a number of currency pairs going back to circa 1998 and if I try and do much of anything with the data in MT4 (backtest, run a script on offline chart, etc) I inevitably run into the "not enough memory" error.

Current setup is 32bit XP pro w/4GB ram. Task manager shows my max memory usage is around 1.6-1.7GB when the errors start occurring. Right now I can open only one chart, if I close the chart and attempt to open a second one I get this error (or if I try and do anything in history center) unless I close MT4 and reopen.

(Not interested in the "set your chart bar limit to something small like 20k" workaround as I actually want to do something with the mountain of data)

Does migrating to a 64bit OS resolve this memory handicap in MT4 or is it truly a memory management issue within MT4?

 

1005phillip wrote >>

Right now I can open only one chart, if I close the chart and attempt to open a second one I get this error (or if I try and do anything in history center) unless I close MT4 and reopen.

MT4 doesn't free the memory in those cases. These problems are solved in MT5 (it handles chart/history memory differently), but are not likely to change in MT4.


Does migrating to a 64bit OS resolve this memory handicap in MT4 or is it truly a memory management issue within MT4?

I doubt it, unless you put more memory in your computer.

But r u sure loading too much history is your problem? How big are the HST files and how many of them are u trying to load at the same time?

 

Hi Gordon, thanks for your responses.

It would appear to be a limitation of MetaTrader 4, specifically a 1GB limitation. If the memory usage for terminal.exe reaches 1GB in task manager then sure enough MT4 starts generating the "not enough memory" alerts.

This 1GB limit does not appear to be related to the actual quantity of physical memory which is available, nor does it appear to be a 32bit OS limitation (which in WinXP results in a practical limitation of ~2GB of addressable memory per program) so I'm not convinced a 64bit OS like Win7 x64 would solve the issue.

I uploaded a history file for the USDJPY (M1 data for 1978-2010) to rapidshare perchance you felt like downloading and attempting to import it into MT4 on your end so you can see just how unavoidable the memory limitation becomes when dealing with extensive databases of historical data.

01:22:26 FXDD - MetaTrader 4.00 build 225 started (FXDD)
01:22:28 Memory handler: cannot allocate 527286320 bytes of memory
01:22:28 HistoryBase: not enough memory 'USDJPY1' [11983524 bars]

And that is after a fresh windows reboot and opening a terminal window with no charts, etc.

Here is the problematic history file: https://www.mql5.com/go?link=http://rapidshare.com/files/359159227/USDJPY1.rar.html

(68MB rar) MD5: 0C08C9ED14E43DAF510642E390BCEF48

Reason: