![MQL5 - Language of trade strategies built-in the MetaTrader 5 client terminal](https://c.mql5.com/i/registerlandings/logo-2.png)
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
No, you can't. Only mql5 Expert Advisors.
Wow nice way to promote MQL5 by stopping MQL4 EA's to partake in the championship......really really LAME actually... these guys don't know squad about sportsmanship. It is clear that they are using this championship to promote only MQL5 nice service to the user.
What difference does it make if it is MQL4 or 5 enters the championship, in the end it is all about if the EA is making money or not, it doesn't matter what language...
Although I feel MQL5 is much cleaner and richer in functionality I still don't see why we have to stop MQL4 for entering the championship.
I'm starting to doubt if this is for the sports, and if I really can take their word on deleting the EA's after the competition.
Sorry Rosh, but I must say this again, this is lame.
Wow nice way to promote MQL5 by stopping MQL4 EA's to partake in the championship......really really LAME actually... these guys don't know squad about sportsmanship. It is clear that they are using this championship to promote only MQL5 nice service to the user.
What difference does it make if it is MQL4 or 5 enters the championship, in the end it is all about if the EA is making money or not, it doesn't matter what language...
Although I feel MQL5 is much cleaner and richer in functionality I still don't see why we have to stop MQL4 for entering the championship.
I'm starting to doubt if this is for the sports, and if I really can take their word on deleting the EA's after the competition.
Sorry Rosh, but I must say this again, this is lame.
yeah, MT5 vs MT4. you must use higher RAM, 4 GB recommended or greater. dual core 3 Ghz recommended or greater, dual GPU, etc . it like we must have gaming spec to run this application ( MT5).
and we can't building special EA here, no hedge, no grid, many requote, different lot order, martingale, etc.
this is not a trading platform and this software only for advance C++ programmer only.
just use MA cross in MT5 then rename all variables then claim as your EA ( if you don't understand what happened with your new meta editor ) and don't forget to spend your time to pray, if you become the winner you can say that this is EA with new high technology of MA cross, faster and profitable.
i will always agree when they go back to MT4 but with new meta editor, so we can protect our EA from decompiler/pure beam corp.
yeah, MT5 vs MT4. you must use higher RAM, 4 GB recommended or greater. dual core 3 Ghz recommended or greater, dual GPU, etc . it like we must have gaming spec to run this application ( MT5).
and we can't building special EA here, no hedge, no grid, many requote, different lot order, martingale, etc.
this is not a trading platform and this software only for advance C++ programmer only.
just use MA cross in MT5 then rename all variables then claim as your EA ( if you don't understand what happened with your new meta editor ) and don't forget to spend your time to pray, if you become the winner you can say that this is EA with new high technology of MA cross, faster and profitable.
i will always agree when they go back to MT4 but with new meta editor, so we can protect our EA from decompiler/pure beam corp.
Agree about the gaming specs of the machine. I'm thinking to get myself a Xeon server for it. However I don't agree about the 'special EA' stuff. Except for the no hedge drawback - don't mention no grids because these can be emulated -, there will be a great advantage coming from the Strategy Tester. Of course, I bolded 'will be' because without it, it is barely nothing - just an IDE with a C++ish language for blind trading. I strongly disagree that the station is for advanced C++ programmers. I make a confession: I don't know C++. I read it, barely understand something from it, I don't have any C++ compilers installed and I don't use any. I didn't even have too much OOP approach in programming until now - with the exception that I attempted to force an OOP approach on MT4, by grouping trades answering to comment or magic number criteria in manageable 'objects'. Thing is, in trading, the object oriented approach has much more meaning than in traditional programming. The OOP programming has quite crossed the line within the .Net framework, and many things are extremely aukward - could you imagine a datetime having methods? But MT5 makes it pretty meaningful. YES, I want to be notified at a new tick on other pairs, I want to be notified when the orderbook changes, I want to be notified when an order has a fill, and I don't wanna look for these blindly by calling loops from start() or having variables to remember market data. Plus, structures and objects come with an encapsulation that was impossible in MT4. Data was pure linear in MQL4 : a bunch of variables that had to have a common part of the name, so you didn't forget which 'structure' they are part of. You can use linear data in MQL5 too : but structures make it easier to understand, as well as objects. Yes, THERE IS SOMETHING I HATE ABOUT STRUCTURES AND OBJECTS. I cannot copy like array1=array2 (unless within a structure wrapper) or object1=object2. Have to do it element by element, property by property (and I don't have any idea if this is valid or not in C++). Even if arrays are defined same way, you get Array access error, or, even if objects are of same type, you get Structure have objects and cannot be copied. You think MQL5 is for advanced C++ programmers ? Check visual programming, sockets, FIX, and then you can see what advanced C++ programming is!
On another hand, it is very important the code securing issue. I quite understand Philipp's fear , because MT4 is a quite antique piece of software with a narrow vision of trading, but if new, MQL5 EAs, with a multiasset approach, involving many forex pairs and probably options in the near time, would be easily decompiled, then a lot of hard, valuable work will go down the toilet. I remember Stringo said there is x86 code in compiled EAs. Perhaps EAs should be converted to exe with an error message like "This program cannot be run outside MetaTrader5", like Windows programs had "This program cannot run in Dos mode". This will make decompilation pretty painful and expensive, although crackers would most likely remove restrictions from them (like they do with games) while the access to program logics will be hidden in the maze of assembly code.
yeah, MT5 vs MT4. you must use higher RAM, 4 GB recommended or greater. dual core 3 Ghz recommended or greater, dual GPU, etc . it like we must have gaming spec to run this application ( MT5).
and we can't building special EA here, no hedge, no grid, many requote, different lot order, martingale, etc.
this is not a trading platform and this software only for advance C++ programmer only.
just use MA cross in MT5 then rename all variables then claim as your EA ( if you don't understand what happened with your new meta editor ) and don't forget to spend your time to pray, if you become the winner you can say that this is EA with new high technology of MA cross, faster and profitable.
i will always agree when they go back to MT4 but with new meta editor, so we can protect our EA from decompiler/pure beam corp.
I don't know why newer version(MT5) is slower than old version(MT4)
the acceptance of order take 1.5 - 5 sec , while mt4 take under 1 seconds~ ~
YES, I want to be notified at a new tick on other pairs, I want to be notified when the orderbook changes, I want to be notified when an order has a fill, and I don't wanna look for these blindly by calling loops from start() or having variables to remember market data. Plus, structures and objects come with an encapsulation that was impossible in MT4. Data was pure linear in MQL4 : a bunch of variables that had to have a common part of the name, so you didn't forget which 'structure' they are part of. You can use linear data in MQL5 too : but structures make it easier to understand, as well as objects. Yes, THERE IS SOMETHING I HATE ABOUT STRUCTURES AND OBJECTS. I cannot copy like array1=array2 (unless within a structure wrapper) or object1=object2. Have to do it element by element, property by property (and I don't have any idea if this is valid or not in C++). Even if arrays are defined same way, you get Array access error, or, even if objects are of same type, you get Structure have objects and cannot be copied. You think MQL5 is for advanced C++ programmers ? Check visual programming, sockets, FIX, and then you can see what advanced C++ programming is!
On another hand, it is very important the code securing issue. I quite understand Philipp's fear , because MT4 is a quite antique piece of software with a narrow vision of trading, but if new, MQL5 EAs, with a multiasset approach, involving many forex pairs and probably options in the near time, would be easily decompiled, then a lot of hard, valuable work will go down the toilet. I remember Stringo said there is x86 code in compiled EAs. Perhaps EAs should be converted to exe with an error message like "This program cannot be run outside MetaTrader5", like Windows programs had "This program cannot run in Dos mode". This will make decompilation pretty painful and expensive, although crackers would most likely remove restrictions from them (like they do with games) while the access to program logics will be hidden in the maze of assembly code.
yes, EA can be decompile eternally, but the key of avoiding decompile is increase the difficulty.
when decompile work takes too painful and expensive, the cracker will stop loss to crack it.
besides checking comment / magic number/ specific open/close time order, what can MQL5 OOP features do for ?
also in mql5 , EA can be trigger by orderbook changes? like an order has be filled
actually , mql4 already had predefined variables to remember market data.
actually, MQL5 should have full predinfied class/ object which help to enumerate a particular feature order, like specific open/close time order .
also , MQL5 should have full predinfied class/ object which help to entry/exit / modify order when a tick / bar generate or break high / low.
chiwing:
I don't know why newer version(MT5) is slower than old version(MT4)
the acceptance of order take 1.5 - 5 sec , while mt4 take under 1 seconds~ ~
Which is very very bad in the current trading context. No way to do business like this. Acceptance should take about 300-500 ms max.
i am question about this.
Do slower acceptance swap with fairer price to traders?
chiwing:
yes, EA can be decompile eternally, but the key of avoiding decompile is increase the difficulty.
when decompile work takes too painful and expensive, the cracker will stop loss to crack it.
besides checking comment / magic number/ specific open/close time order, what can MQL5 OOP features do for ?
also in mql5 , EA can be trigger by orderbook changes? like an order has be filled
actually , mql4 already had predefined variables to remember market data.
actually, MQL5 should have full predinfied class/ object which help to enumerate a particular feature order, like specific open/close time order .
also , MQL5 should have full predinfied class/ object which help to entry/exit / modify order when a tick / bar generate or break high / low.
1. You judge the problem wrong. If you wanna know what was executed in MT4, you have to run that check every time, at every tick. If you wanna know this in MT5, you have to check, but only when signaled by the OnTrade() - so not all the time. Plus, that remembering when it was last OnTrade() run, you can select only a specific history interval and retrieve the order(s) that were filled in the meanwhile. Read my article http://mqlmagazine.com/mql-programming/distinguishing-quasi-simultaneous-fills-class-to-report-last-deals/ . I agree, however, that OnTrade() should have returned the specific order parameters. But if your processing would be slow, you might skip execution events of a HFTish algo, so the current implementation is not so bad after all.
2. You are probably misunderstanding order book events. The orderbook action is the way the market moves. That is, orderbook events are way more extended than tick events or execution events. For instance, if someone removes liquidity from the 3rd level of the bid, it is still an orderbook event. It may not mean anything to you, yet it is. Your own order fills are of course reported by OnTrade(), that will execute every time you have a fill.
3. Yes, mql4 has predefined variables for the current market data. Like bid and ask. But if I run my ea on EURUSD, for instance, and I read also the USDJPY data, I need separate variables for that. At the same time, the ea will run only when EURUSD ticks come, totally disregarding USDJPY. Same is in MT5, with the difference that I you can have fired in the same ea events happening on other currency pairs. Read http://mqlmagazine.com/mql-programming/tick-events-in-mql5-complicated-for-now-but-functional/ .
4. The selection mechanism is not so different from MQL4 to be too hard. Once an order has been selected, there are plenty of OrderGet... functions to retrieve what you need. Probably you would have wanted the OrderSelect() to fill an object and use properties instead of functions.
5. No. That is an attribute of lower-class trading languages that provide an english-like syntax; easy for simple things, yet these languages don't have a support for complicated tasks. If you manage to get an event when a tick comes on several pairs, you can keep in variables some levels that interest you (like highs or lows) and check them with the current ticks received by the event procedure. This is the way to implement what you ask.
chiwing:
i am question about this.
Do slower acceptance swap with fairer price to traders?