Beta Version of MetaTrader 4 IDE Including New MQL4 Compiler and Editor

 

Continuing the following topics:

The beta version of IDE common to MetaTrader 4/MQL4 and MetaTrader 5/MQL5 is attached below. This is a preliminary version for everyone's information.

Differences from the old MQL4 version:

  • Changed the priority of AND/OR logical operations. Now, everything is similar to the standard C/C++

  • Introduced shortened evaluation of logical expressions. Now, when a logical expression is evaluated before reaching its end, the remaining subsequent expressions are not evaluated, like in C/C++.

  • Only integer values are now used in switch operator. Real values could have been used before

  • A dot symbol cannot be used in variable names any more. Also, '@', '$' and '?' symbols cannot be used in variable names

  • Tightened requirements for start function. Parameters could have been set in start function before. Now, all init, start, deinit, OnInit, OnStart, OnTick, OnTimer and other entry points should exactly match their signatures

  • Due to expansion of keywords, such names as short, long, float, const, virtual, input, delete, new, do, char cannot be used now

  • Now, imported dll functions cannot accept MQL string arrays as a parameter, like in MQL5

  • Introduced predefined _Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed variable names that may come into conflict with simple variables declared under the same names in existing source files

  • datetime type has become an 8-byte one, like in MQL5.

The differences are not critical and can be easily corrected in the code. In return, we access multiple MQL5 features, improved execution speed and much more strict quality control.


We are going to conduct public testing during the next month in order to receive enough feedback and prepare the developers.

Discussion on MQL4 forum: https://www.mql5.com/57476/forum

The attached zip file can be downloaded by the following link: https://c.mql5.com/mql4/forum/2013/08/MetaTrader4.Beta.IDE_1.zip

 

oh, my sky

MQL5 is a monster that difficult to learn

I strongly recommend old EA still work on the new MT4 

 
Thanks, it is a great pleasure to access MQL5 power with the MT4 platform!
 

IMO, this is more-or-less an acknowledgment from Metaquotes that the non-ticket based order system in MT5 will not be accepted en masse by the forex community.  Glad to see the enhancements working their way backward to MT4.

 
when new MQL4 Reference release? Or old document is still worked?
 
not good for me , i dont understand new one
 

Well you put it, except that I consider "nonchalance of power" that changing the rules, there can be a tool for automatic translation to preserve backward compatibility. Anyone who paid for it, and this code will not work, you must have and pay for a change again. So what? MQ request the return on investment? MQ writes in the EULA that you take the program "as is" and you can just whistle. The only chance that brokers are able to extort anything from MQ, because they lose their spring liquidity and probably up to half of current users MT4 off. At least for a while.



I think it is an attempt to replicate Apple's philosophy. Focus on all the above-mentioned one his hand (Apple Store) and to exclude potential competition for money. Monopoly signals, and API, restrictions on the use of external programs, "only right (and full of holes)" the historical database etc.
Only Aplle provide tools, where mainly using them seems money. Meta Trader has the money to make money. Only I have the the impression that not I have this money to earn.

 
kelly:

I strongly recommend old EA still work on the new MT4 

Older written EA will work in the new MetaTrader 4. Although some of robots demand to be fixed according to new requriments as it said in first post

  • Changed the priority of AND/OR logical operations. Now, everything is similar to the standard C/C++

  • Introduced shortened evaluation of logical expressions. Now, when a logical expression is evaluated before reaching its end, the remaining subsequent expressions are not evaluated, like in C/C++.

  • Only integer values are now used in switch operator. Real values could have been used before

  • A dot symbol cannot be used in variable names any more. Also, '@', '$' and '?' symbols cannot be used in variable names

  • Tightened requirements for start function. Parameters could have been set in start function before. Now, all init, start, deinit, OnInit, OnStart, OnTick, OnTimer and other entry points should exactly match their signatures

  • Due to expansion of keywords, such names as short, long, float, const, virtual, input, delete, new, do, char cannot be used now

  • Now, imported dll functions cannot accept MQL string arrays as a parameter, like in MQL5

  • Introduced predefined _Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed variable names that may come into conflict with simple variables declared under the same names in existing source files

  • datetime type has become an 8-byte one, like in MQL5.
It is not difficult, new compiler give you all warnings and errors to fix them.
 
jonssen:
when new MQL4 Reference release? Or old document is still worked?
We are providing new version of MQL4 reference within several weeks. For the present you can use both documentation - MQL4 and MQL5.
 
Suching:
not good for me , i dont understand new one
You can go on with you favorite approach in coding of EA and indicators. Nobody make you use new features from OOP - classes, structires etc.
 
Rosh:

Older written EA will work in the new MetaTrader 4. Although some of robots demand to be fixed according to new requriments as it said in first post

It is not difficult, new compiler give you all warnings and errors to fix them.
And as you do not know anything about programming? Then this is not for me "not difficult".
I have to have someone to adjust to the new rules. And pay.

It seems to me that you should not ignore these users.


Warrnings and errors indicated by the compiler, it shows where he is wrong, but not always describe what is wrong. With a little knowledge of programming language mql5, for a simple user is a big barrier.

Reason: