Skip to content
Open Trading edited this page Jun 25, 2015 · 13 revisions

OTMql4Zmq - MQL4 bindings for ZeroMQ, the high-speed messaging protocol for asynchronous communications between financial and trading applications.

https://github.com/OpenTrading/OTMql4Zmq/

With ZeroMQ http://zeromq.org/ you can:

  • Connect your code in any language, on any platform.
  • Carries messages across inproc, IPC, TCP, TIPC, multicast.
  • Smart patterns like pub-sub, push-pull, and router-dealer.
  • High-speed asynchronous I/O engines, in a tiny library.
  • Backed by a large and active open source community.
  • Supports every modern language and platform.
  • Build any architecture: centralized, distributed, small, or large.

There are now two ways of using ZeroMq via in this package:

1. Directly using compiled DLL. We are having problems with the compiled DLL, but these may now be fixed, as we have dropped back to ZeroMQ v2.2.0. See CompiledDllOTMql4Zmq.

2. Through PyZmq in Python under Metatrader using OTMql4Py. OTMql4Zmq is working fine in both directions.

You may also want to look at our RabbitMQ solution, which is a pure Python solution using OTMql4Py and also works without issues: https://github.com/OpenTrading/OTMql4AMQP/

You may want to also look at: https://github.com/OpenTrading/OpenTrader which provides a command-line interpreter to speak to the OTMql4AMQP enabled Metatrader.

Pre-Release

This is a work in progress - a developers' pre-release version.

OTMql4Zmq works with Metatrader on builds > 6xx, but the test suite and documentation still need writing, as well as testing on different versions of Windows and Mt4.

ZeroMQ 4.x is not yet supported. The source code for the Compiled DLL has been moved to https://github.com/OpenTrading/mql4zmq/ to better document the changes we made in it from the original source. As a convenience, we have checked in the binaries from that project to the src/mql4zmq directory. In theory the files in this project will always mirror that project, but that project is always master.

mql4zmq is being compiled against a v2.2.0 release of ZeroMQ. If anyone is good at MSVC and ZeroMQ, if you could look at the code in that project and help us with ZeroMQ 4.x version improvements, we'd be grateful. In general, you can use any version of ZeroMQ later than v2.2.0 to communicate with the mql4zmq libraries, so for example you can use the latest PyZmq for client scripts: see Scripts.

The project wiki should be open for editing by anyone logged into GitHub: Please report any system it works or doesn't work on in the wiki: include the Metatrader build number, the origin of the metatrader exe, the Windows version, and the ZeroMq version and version of the Python pyzmq. This code in known to run under Linux Wine (1.7.x), so this project bridges Metatrader to ZeroMq under Linux.

Installation

For the moment there is no installer: just "git clone" or download the zip from github.com and unzip into an empty directory. Then recursively copy the folder MQL4 over the MQL4 folder of your Metatrader installation. It will not overwrite any system files, and keeps its files in subdirectories called OTMql4.

See PyZmq for instructions for installing into your Python; you wil need this either to run th

Project

Please file any bugs in the issue tracker: https://github.com/OpenTrading/OTMql4Zmq/issues

Use the Wiki to start topics for discussion: https://github.com/OpenTrading/OTMql4Zmq/wiki/Home It's good to use the wiki for knowledge capture, and then we can pull the important pages back into the documentation in the share/doc directory. You may need to be signed into github.com to see or edit in the wiki.

Clone this wiki locally