如何将MetaTrader与Node.JS连接?

时间:2018-02-22 03:21:53

标签: node.js distributed-system algorithmic-trading metatrader4 metatrader5

我正在构建一个基于Node.JS的系统,用于连接MetaTrader并处理所有操作,如链接帐户,开放,关闭交易订单......

但我还没有找到如何在Nodejs中连接MetaTrader的方式。你能给我一个解决方案或包装示例,可以帮助我做到这一点吗? 谢谢!

3 个答案:

答案 0 :(得分:1)

您实际上可以通过 JavaScript/NodeJS 使用 MetaTrader,而无需在本地安装 MetaTrader。让我解释一下:有一个 MetaTrader 的网络版本,一个网站 (https://trade.mql5.com)。您可以使用无头浏览器并围绕此网站创建包装器。这并不复杂,但需要一些时间。通过这种方式,您可以使用您的 MetaTrader 4/5 帐户并在 NodeJS 和网站之间建立一座桥梁。您将仅使用 JavaScript 操作您的 MT 帐户。

这几乎没有限制,例如您不能在网站中使用 MQL EA。但支持下单、收听报价和查看时段等主要功能。此外,您仍然可以将您的 EA 移植到 JavaScript。

我个人正在为此工作,如果我将发布解决方案/项目,我可能会更新此答案。

更新:存储库现已公开,https://github.com/Reiryoku-Technologies/Mida

答案 1 :(得分:0)

观察:

MetaTrader软件套件包含多个部分,其中只有一部分是面向客户的部分 - MetaTrader Terminal 4/5。该终端软件与MT4 / 5服务器通信,还有许多其他的Broker端MetaTrader套件,服务器协作系统。

鉴于您的上述指示,您似乎计划使用MetaTrader Terminal软件进行Node.JS功能集成。

限制:

如上所述,MetaTrader Terminal 4/5软件平台是您感兴趣的主题,在采取技术步骤之前,应进行验证,以确认MT4终端内部支持的可编程功能和服务是否为覆盖你所需要的一切。

鉴于MT4终端具有可自动化处理和半自动化反向测试的可编程生态系统,这两个主要方向无法提供与外部协作逻辑或事件流集成的相同级别的舒适度。 / p>

鉴于内置的本机MQL4 / MQL5代码执行环境无法满足项目需求,您的进一步方法必须与一些GUI操作辅助技术相结合,这可能有助于弥补在功能映射预验证阶段。

方法:

为了使MT4终端代码执行生态系统与外部世界合作, #import 扩展功能的内置功能在本机MQL4 /中不存在5种语言通过DLL-s。

获得这种设计自由后,MQL4 / 5语言中的用户代码可以借用所有可用于此类集成项目的功能和服务。

Node.JS和MetaTrader Terminal 4/5都可以使用 ZeroMQ 和/或 nanomsg 来快速高效地整合异构分布式系统,似乎与您指定的需求相匹配。

随时阅读其他帖子 here here ,关于信号/消息功能平面概念,用于此目的非常类型的系统集成。

答案 2 :(得分:0)

您可以尝试使用此云服务,该服务提供对MetaTrader 4和MetaTrader 5帐户的REST API和websocket API访问,称为MetaApi https://metaapi.cloud

官方API文档:https://metaapi.cloud/docs/client

SDK:https://metaapi.cloud/sdks(提供了node.js SDK)

它支持读取帐户信息,头寸,订单,交易历史记录,接收报价和访问市场数据。