API on MT5

 

Hi,

After reading https://www.mql5.com/en/forum/218890 and the

update https://www.metatrader5.com/en/news/2187  as I understand

regarding APIs for MT5 offers:

1) Python Integration

2) Server API (for brokers, not end users)

3) Web Api ( some third parties).


1) Am I missing some other as this seems to be evolving fast?

I mean other APis for Java, C# etc that would allow

similar access as currently Python does.

2) Is there a Web Api from Metaquotes already?


Thanks for any clarification.

Metatrader API
Metatrader API
  • 2017.11.06
  • www.mql5.com
Is Metatrader API service free or paid? how to get API service...
 
cmarconetti:

Hi,

After reading https://www.mql5.com/en/forum/218890 and the

update https://www.metatrader5.com/en/news/2187  as I understand

regarding APIs for MT5 offers:

1) Python Integration

2) Server API (for brokers, not end users)

3) Web Api ( some third parties).


1) Am I missing some other as this seems to be evolving fast?

I mean other APis for Java, C# etc that would allow

similar access as currently Python does.

2) Is there a Web Api from Metaquotes already?


Thanks for any clarification.

You are missing the MQL API... This is the only official API available to us end users, next to the python API
 
Dominik Christian Egert #:
You are missing the MQL API... This is the only official API available to us end users, next to the python API

Sorry but I do not see any MQL API under reference on mql5, hence my question

as there is only the python there that is doing the job.

So could you please point me via a link to the official MQL API you are referring to? 

Thank you

 
cmarconetti #:

Sorry but I do not see any MQL API under reference on mql5, hence my question

as there is only the python there that is doing the job.

So could you please point me via a link to the official MQL API you are referring to? 

Thank you

Sure.



https://docs.mql4.com
 

MQL is a scripting language native to MT, it is not an API or interface to interact externally

with the terminal.

So my conclusion is that only Python is the only official  available API.

Otherwise needs to be developed if not already somewhere on github.

 
There is no MQL API.

MetaQuotes Language 5 (MQL5) is a high-level language designed for developing technical indicators, trading robots and utility applications, which automate financial trading. MQL5 has been developed by MetaQuotes for their trading platform.
 
cmarconetti #:

MQL is a scripting language native to MT, it is not an API or interface to interact externally

with the terminal.

So my conclusion is that only Python is the only official  available API.

Otherwise needs to be developed if not already somewhere on github.

Well, MQL is a programming language, not a scripting language.

Google it. But in short:

"A scripting language, by comparison, is a type of interpreted programming language (executed line by line, not translated into machine code)"

An API is per definition:

"It is a type of software interface, offering a service to other pieces of software.[1] A document or standard that describes how to build or use such a connection or interface is called an API specification. A computer system that meets this standard is said to implement or expose an API. The term API may refer either to the specification or to the implementation. "

So, yes MT4 and MT5 have both an API, one you use to control/alter/receive data from/to MetaTerminal.

You use the API from within the programming language MQL. And it is called MQL- API.

It is a programming language and MT has an MQL-API.


 
Samuel Manoel De Souza #:
There is no MQL API.

MetaQuotes Language 5 (MQL5) is a high-level language designed for developing technical indicators, trading robots and utility applications, which automate financial trading. MQL5 has been developed by MetaQuotes for their trading platform.
Wrong. see my previous post.
 

OK, let me rephrase the question to avoid a semantics dicussion as to what API means:


Is there a way to submit orders or query data from to MT4/MT5 using any other language

than MQL4 or MQL5 and sending/receiving it from another application (not the terminal).

Clearly it is possible with Python but  I cannot see any other "Official" languages (ie Java, C#, etc) available.

Probably using pipes or other communication/messages technologies from outside

apps but that would be far more advanced stuff.

And from the discussion I think I know the anwser: No

 
cmarconetti #:

OK, let me rephrase the question to avoid a semantics dicussion as to what API means:


Is there a way to submit orders or query data from to MT4/MT5 using any other language

than MQL4 or MQL5 and sending/receiving it from another application (not the terminal).

Clearly it is possible with Python but  I cannot see any other "Official" languages (ie Java, C#, etc) available.

Probably using pipes or other communication/messages technologies from outside

apps but that would be far more advanced stuff.

And from the discussion I think I know the anwser: No

You have the option to expose the MQL API via a service, coded in MQL, running on the terminal.

You can use DLLs in MQL to import whatever you like on functions, you can export any data you like via File, Sockets, DLLs, whatever you can imagine and code.

There are no limits to your request.

But, you will have to code it yourself. You could build a full API Proxy and expose the full MQL API to whatever you feel convenient.

If you do it properly, it be one to one an exposure of the MQL API, with very little limitations. Even less limitations than the python integration has to offer.

But, it is your job to create that proxy app...

So, no there is no API ready available outside of MQL language, except for the limited version you get by using python.


EDIT:

Please note, for python to work, it is necessary to run the terminal application. This is mandatory in all cases. Because the protocol between the MT and the server is closed and unknown, undocumented. So you need the MT as a hub for whatever you want to do.

EDIT2:

Thank you for rephrasing your question is such way that I can give you an answer that satisfied your needs.
 

Good answer/s with many options to explore.

Thanks so much Dominik.

Reason: