7

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

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

4

2 回答 2

7

您可以尝试 MetaApi https://metaapi.cloud云服务,它提供对 MetaTrader 4 和 MetaTrader 5 账户的 REST API 和 WebSocket API 访问。

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

SDK:https ://metaapi.cloud/sdks (javascript、python 和 Java SDK 于 2021 年 4 月提供)

它支持读取账户信息、仓位、订单、交易历史、接收报价和访问市场数据。

该服务还提供复制交易 API https://metaapi.cloud/docs/copyfactory和 API 来计算 MetaTrader 账户上的外汇交易指标https://metaapi.cloud/docs/metastats

更新:截至 2021 年 3 月中旬,MetaApi 允许在不添加支付方式的情况下进行有限的 API 测试

于 2020-06-29T00:03:52.777 回答
1

观察:

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

鉴于上述指示,您似乎计划将 Node.JS 功能集成到 MetaTrader 终端软件。

限制:

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

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

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

方法:

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

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

Node.JS 和 MetaTrader 终端 4/5 都可以使用ZeroMQ和/或nanomsg快速高效地集成异构分布式系统,这似乎可以满足您的指定需求。

随意阅读这里这里的其他帖子,关于信号/消息传递功能平面概念,用于这种非常系统的集成。

于 2018-02-25T10:06:56.630 回答