Download MetaTrader 5

Cross-program interaction with external UI possible?

To add comments, please log in or register
Apollo_Tesla 2016.09.13 14:20 
Dear all,

I've been searching the web for the last week, but couldn't find a clear answer, or at least not one that encompasses all aspects of my problem, so I made an account specifically to ask it here.

Is it possible to have an external program interact with the MT4 platform from my broker? This means executing scripts/EA's, but also reading data from it and using it for calculations.

I have a strategy that involves setting up several pending orders across several different markets (forex, futures and CFD's), and these pending orders are calculated through a few dynamic parameters (e.g. volatility). Since these parameters change regularly, the pending orders need to be updated quite often. And that's a hassle.

I would like to have a separate user interface running at the same time as my platform, where I can click a button and the pending orders will be (re)set in my MT4 platform, according to the data it reads from it and the calculations it makes. The point of this is ease of execution (I am prone to making errors when typing in numbers) and visual appeal (i.e. a couple of clickable buttons and a minimal amount of clutter). Speed of execution is not so much of a problem, I can live with some extra input lag on top of my MT4 platform.

Is such a thing possible?

Thank you very much in advance.

Fernando Carreiro
Fernando Carreiro 2016.09.13 16:04  

You have just described how MetaTrader works and all the features that it has with its programming language MQL! There is no need for external applications as it already automates and runs scripts/EA's written in MQL. It can also extend functionality via Windows DLL libraries.

So, it seems that you have never used MetaTrader before, so I have to ask - what trading platform are you currently familiar with or what are you currently using for your trading?

PS! You can also use Inter-process communication in order to communicate, synchronize or exchange messages or data with other applications whether on the same machine or via networking. However, that all depends on your software development skills.

Apollo_Tesla 2016.09.13 18:24  
If I sounded like an absolute idiot, I'm sorry about that. I am new to this. Your help and feedback are of course very much appreciated.

Right now, I use the MetaTrader 4 platform as offered by my broker. It works. The only problem is, I have to manually update about 30 pending orders at least twice a day and I'd like a faster way than just:
Delete current pending order (since I also have to change lot size) > F9 to open new order > set 'pending order' > *read calculation from strategy* > set new lot size > set new price > set new S/L > Set Buy/Sell > Place.

I know MQL4 would allow me to write an EA/script that allows me to do so with the push of a button combo (or at least I hope so. It would though, right?).

My programming/software development experience is very limited, but I can find the right people to help me. I was just wondering, could I take this one step further and create an external UI (like a custom program, web page, phone app, ...) that would allow me to run this script with the click of a button? And can that program then also 'read' data from MetaTrader (to display statistics, info, etc. if I should request them)?

Or am I overthinking this? I was just thinking that I'd like a nice, clean interface with just the necessary buttons to run my strategy efficiently. I like a visual interface, as opposed to just pressing a button combination, but I don't want to clutter up my MetaTrader window.

Please tell me what you think. Thanks in advance.
Fernando Carreiro
Fernando Carreiro 2016.09.13 18:49  

Like I have already stated - You do not need an external app!

You can accomplish all that you have described, from within MetaTrader itself, running a standard MQL EA (with a compact UI, with buttons, etc.). The same EA, can also do analysis and publish statistics or anything else that you may desire. MQL is a full pledged compiled programming language and even when there is something that is technically too sophisticated, it can be extended by using DLL library files.

All of this is really dependent on how good the software developer is and not so much about what MetaTrader/MQL is capable of. For a beginner or novice coder, like yourself, it is probably beyond your abilities (even with help).

So, you should really consider hiring someone that is capable of doing it for you and for a cost that is agreeable for you.

EDIT: PS! Obviously, if you insist on an external interface (webpage for remote control, etc.), then that can be accomplish too. It is really not a technical limitation, but it is just a question of how good the developer is.

Apollo_Tesla 2016.09.14 05:23  
That makes sense, thank you for your answer. I guess I underestimated the power of MQL. You are right about me being a beginner coder, so I'll just hire someone then.

Thanks again.
To add comments, please log in or register