MetaTrader 4 Build 600 with Updated MQL4 Language and Market of Applications Released - page 58

Ex Ovo Omnia
2929
Ex Ovo Omnia  
SDC:

i looked in my profile wheres my 11 bucks ? Ovo must be special. I'm going to complain to the service desk about favoritism ;)


It seems they award 1 buck for 50 popularity points, so for $11, 550 points is satisfactory :)
euclid
37
euclid  
euclid:

"Terminal: Added display of subfolders and the structure of Expert Advisors, scripts and indicators in Navigator window"

I have found a problem with this feature (on build 604). If you have indicators in a subfolder, sometimes MT4 looks for them in the main folder.

e.g.

loading from the navigator window: 2014.02.09 13:36:42.347 Custom indicator b509\NewsCal-v107 EURUSD,M5: loaded successfully

loading via Insert>Indicators>Custom: 2014.02.09 13:50:33.851 Cannot open file 'C:\Program Files\MT4 Exchange\MQL4\indicators\NewsCal-v107.ex4' [2]

I've also seen indicators fail to load from a subfolder occasionally at start up.

The Insert>Indicator>Custom menu is fixed in 610 (although I'm not sure how it works if you have two different indicators with the same name). But I'm still getting failures when starting the terminal.

If there are any changes since I last saved my template, I get the same error and have to load my indicator manually.

Error at start:

2014.02.26 15:42:38.942 Cannot open file 'C:\Program Files\MT4 Exchange\MQL4\indicators\Measure.ex4' [2]

Manually load indicator OK:

2014.02.26 15:42:57.662 Custom indicator b509\Measure EURUSD.lmx,M5: loaded successfully


Edit:- Never mind. I've found the cause. It only happens when I do stuff with old format ex4 files that definitely isn't supported any more.


William Roeder
20845
William Roeder  
euclid: The Insert>Indicator>Custom menu is fixed in 610

2014.02.26 15:42:38.942 Cannot open file 'C:\Program Files\MT4 Exchange\MQL4\indicators\Measure.ex4' [2]

Move the files to the proper location Data Structure in MetaTrader 4 Build 600 and Higher - MQL4 Articles
Dennis
24
Dennis  
Want know where i can find a liveupdate history of the mt4? I am not so fit in the liveupdate but this can't turn off?
Ian Venner
2397
Ian Venner  

I hope MQ is looking at memory usage there seems to be a problem. Sometimes I come back to my computer after it has been sitting idle for a few hours and it very sluggish to wake back up so I open task manager and terminal.exe is holding half a gig of RAM plus a similar amount of virtual memory. While I'm looking at it in task manager I see it start to release the RAM, it will gradually drop several hundred MB of working RAM over a period of a few minutes but it doesnt release the virtual memory. I can see how people who run multiple instances could quickly run out of RAM and large amounts of disk space. So the question is, if it is not using that memory now, why did it accumulate so much while PC was idle ? This happens sometimes but not every time.

Ben Letto
13
Ben Letto  
MetaQuotes:


All custom executable EX4 files created by old MQL4 compiler will be automatically moved to the new Navigator directory and will work in the new terminal the same way as before.



I've upgraded to Build 610...but now, I cannot get "AccountNumber()", which is present throughout my old Build 509 code, to return anything but a zero in Build 610.


I dug a bit into some recent example code posts, looking for an answer, and found this page:

https://docs.mql4.com/en/constants/environment_state/accountinformation#enum_account_info_double


However, after implementing all of the code on that link, I cannot get any that code to work in Build 610. It compiles ok (as long as I strip-out the ENUM types)...but when I run the indicator, none of the new account functions are returning anything but null strings and zeros.


Here's the code I have in Build 610, it compiles ok but results are nothing but null strings and zeros:

//--- Name of the company
string company=AccountInfoString(ACCOUNT_COMPANY);
//--- Name of the client
string name=AccountInfoString(ACCOUNT_NAME);
//--- Account number
long login=AccountInfoInteger(ACCOUNT_LOGIN);
//--- Name of the server
string server=AccountInfoString(ACCOUNT_SERVER);
//--- Account currency
string currency=AccountInfoString(ACCOUNT_CURRENCY);
//--- Now transform the value of the enumeration into an understandable form
string trade_mode;
//--- Get the value of the levels when Margin Call and Stop Out occur
double margin_call=AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
double stop_out=AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);
//--- Show brief account information
PrintFormat("The account of the client '%s' #%d opened in '%s' on the server '%s'", name,login,company,server);
PrintFormat("MarginCall=%G, StopOut=%G",margin_call,stop_out);

How do I get account info out of Build 610?

Ex Ovo Omnia
2929
Ex Ovo Omnia  
sbgtrading:

I've upgraded to Build 610...but now, I cannot get "AccountNumber()", which is present throughout my old Build 509 code, to return anything but a zero in Build 610.


I dug a bit into some recent example code posts, looking for an answer, and found this page:

https://docs.mql4.com/en/constants/environment_state/accountinformation#enum_account_info_double


However, after implementing all of the code on that link, I cannot get any that code to work in Build 610. It compiles ok (as long as I strip-out the ENUM types)...but when I run the indicator, none of the new account functions are returning anything but null strings and zeros.


Here's the code I have in Build 610, it compiles ok but results are nothing but null strings and zeros:

//--- Name of the company
string company=AccountInfoString(ACCOUNT_COMPANY);
//--- Name of the client
string name=AccountInfoString(ACCOUNT_NAME);
//--- Account number
long login=AccountInfoInteger(ACCOUNT_LOGIN);
//--- Name of the server
string server=AccountInfoString(ACCOUNT_SERVER);
//--- Account currency
string currency=AccountInfoString(ACCOUNT_CURRENCY);
//--- Now transform the value of the enumeration into an understandable form
string trade_mode;
//--- Get the value of the levels when Margin Call and Stop Out occur
double margin_call=AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
double stop_out=AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);
//--- Show brief account information
PrintFormat("The account of the client '%s' #%d opened in '%s' on the server '%s'", name,login,company,server);
PrintFormat("MarginCall=%G, StopOut=%G",margin_call,stop_out);


How do I get account info out of Build 610?

I did not try them all, but I use a few of them in my code, and I have no problem.

Are you sure you are logged in the account and connected to the server?

Alain Verleyen
39569
Alain Verleyen  
investor89:
Want know where i can find a liveupdate history of the mt4? I am not so fit in the liveupdate but this can't turn off?
You can't, it's now done automatically.
Alain Verleyen
39569
Alain Verleyen  
sbgtrading:

I've upgraded to Build 610...but now, I cannot get "AccountNumber()", which is present throughout my old Build 509 code, to return anything but a zero in Build 610.

...

Hello,

Please use the SRC button when you post code. Thank you.


This time, I edited it for you.

Your code run just fine and print the requested information. "old" AccountNumber() is still working too.

As Ovo said, you are probably not connected to a broker server.

Folex
14
Folex  

Installed Build 613 and encountering some issues reading csv files which are separated by semicolons. Comma versions do not have this issue.

I use the below code as example. For the comma version i just replace the semicolon with a comma within the FileOpen function.

The problem with the semicolon version is that the pointer moves straight to the file end after the second FileReadString. Thus the delimeter/seperator appears not to be recognized. Is there a new way of declaration?

All worked fine on 509, 604, 610. Only Build 613 is having issues / compiled versions on 509/604/610 which worked prior do not work on Build 613

 int handle = FileOpen(filename,FILE_CSV|FILE_READ,';'); 

 int i=0;
   while (!FileIsEnding(handle)) 
   {
     s1[i]=FileReadString(handle);        
     s2[i]=FileReadString(handle);
     i++;
   }