Learning programming for the MT platform: Start now or wait until v5 is out ?

 

Hi,

I'm a new comer to ForEx but have been around and used computers for quite some time including a little bit of programming.

I'm interested in programming some EAs for the MT platform, but being overloaded at the moment, including working at learning the how’s, ins and outs and the dos and don’ts of the ForEx, with v5 due out very soon, considering these factors, I'm tending to wait for v5. If there are any programmers out there that have been doing MQL for quite a while now, I am interested in their thoughts and opinions on this.

Thanks and Prosperous Trading (< 8)

DougRH

 
ForExDRH wrote >>

Hi,

I'm a new comer to ForEx but have been around and used computers for quite some time including a little bit of programming.

I'm interested in programming some EAs for the MT platform, but being overloaded at the moment, including working at learning the how’s, ins and outs and the dos and don’ts of the ForEx, with v5 due out very soon, considering these factors, I'm tending to wait for v5. If there are any programmers out there that have been doing MQL for quite a while now, I am interested in their thoughts and opinions on this.

Thanks and Prosperous Trading (< 8)

DougRH

MT5 should have real debugger and few other things, so programming will be much easier. The problem is we don't know when MT5 will be available...

 
You can start learning the MQL4, as I think lots of functions will remain untouched under MQL5. However MT5 will be done with respect order/position system, it will at least support events, so trading functions will be way different. It's not bad to train after all on MQL4.
 

Don't even think of waiting. As TheEconimist says, the framework will largely remain unchanged. Don't be planning your life around a version upgrade to a programming language.

Debugger? Never needed one and I've only ever had one problem that I haven't been able to solve immediately*. Use Print() statements.


CB


* Posted twice with no replies, so nobody else seems to be able to solve it either!

'Occasional incorrect return from AccountFreeMarginCheck()'

'Occasional incorrect return from AccountFreeMarginCheck()'

 
cloudbreaker:

Don't even think of waiting. As TheEconimist says, the framework will largely remain unchanged. Don't be planning your life around a version upgrade to a programming language.

I absolutely agree with you about not waiting, but... define "framework". It sounds as though most if not all of the commands for order handling will change substantially; it sounds as though order placement may become asynchronous with events, which completely changes the structure of EAs; and it's possible that things like OrderTicket(), OrderLots() etc will be replaced with a single function which returns an object. Handling of s/l and t/p may well also become completely different. If you already know how to write in MQ4 then you'll have a good, transferrable understanding of the basic language syntax, and of the sort of general issues which can occur when placing trades in a market. But the transition to MQ5 will still be a very big one.

 

By framework, I mean the entire MQL language suite. Not just the built-ins.

Regarding the trading functions, yes I agree - the point is well made. Not just syntax changes there, but a paradigm shift in terms of handling orders and positions.

And agree strongly - learn MQL4, then learn MQL5. And end up being a more rounded programmer.


CB

 
cloudbreaker:

And agree strongly - learn MQL4, then learn MQL5. And end up being a more rounded programmer.

Oh, and one other thing, since no-one else has explicitly said this already in response to ForExDRH: MT4 will continue to exist and be supported by brokers after MT5 is released. If you learn MT4 now, it's not the case that your knowledge will become obsolete once MT5 comes out. You can continue using MT4 pretty much indefinitely if you want to. For many people that may well make sense, because the learning curve will be flatter than in MT5.


(All this reminds me a lot of the VB6 programmers who leapt on VB.NET when it came out, and proceeded to write very, very bad code in it. I did some work with a firm back in 2003ish where both code quality and speed of development had fallen off the edge of a cliff because the VB6 developers had wanted to play with all the shiny new toys without having any good reason for doing so - other than bolstering their own CVs. Ditto for ASP vs ASP.NET - I still occasionally come across some ****ing horrible code which does things like posting hundreds of kilobytes to the server every time the user changes a combobox in the middle of a form.)

 
jjc wrote >>

...code which does things like posting hundreds of kilobytes to the server every time the user changes a combobox in the middle of a form.)

Bit OT, but you can always tell a system 'designed' by UI guys - it looks great but wont scale :(

Zillions of round trips, no correct use of middle layer, loads of ad hoc SQL, use of #temp tables, badly constructed SQL, etc, etc, etc grrrrr

-BB-

PS

To ForExDRH

Start with MT4 :)

 
Each trading platform has it's own language for writing automated trading programs. And depending on platforms they differs. So start leaning coding dude not just mql4 or mql5 or others
 

Thanks EveryOne for all the input!

My life is in chaotic overload at the moment, but I posted another topic about writing a 'Root program' that would call and open up a commercial EA, then return back to the 'Root Program' which would either place trailing stop losses on the opened positions when they occur; or call another complied EA to do it. Perhaps I'll have a go at this simple task and utilize a couple of suggestions on how to do it: https://www.mql5.com/en/forum/119354 As I say there, I have a little bit of programming experience. But enough to know that trying these 'simple' things will be much more complicated and involve more of a Learning Curve regardless of which version I utilize. It will take more than just learning the few basic commands that I need in order to do this.

When I do start to learn MQL any suggestions one where to start and a route/path to follow to become a good programer as opposed to the opposite and building poor programs that has all sorts of pitfalls with cumbersome code and structural errors which will end up making ineffective programs that I keep having to try and fix the errors, which usually ends up having to 'fix the fixes' etc ad nosi um )< 8)

Regards and Propserous trading, (< 8)

DougRH

 
Start now.
Reason: