[英]How to send a message in MQL4/5 from MetaTrader Terminal to python using ZeroMQ?
[英]How can someone send data from MetaTrader 4/5 Terminal to external server?
这在某种程度上旨在(可能)成为(来)关于 MetaTrader 4/5 及其相应语言 MQL4 的指南帖子,两者都设置为将数据发送到外部服务器的上下文。
在我的特殊情况下,我正在构建一个基于 Django/Python 的 web 应用程序,它将处理外汇交易数据以供进一步使用。
因此,我正在寻找一种合适的解决方案,以将数据从 MetaTrader 4/5 终端定期(例如每 60 秒)发送到外部服务器,格式为json
或csv
(如果可能)。 特别是,要发送的数据是账户交易历史和运行+待定交易集。
经过研究,我基本上发现了以下方法:
1.) 在智能交易系统中使用 MQL4 中的webrequest()
正如官方 MQL4 文档所建议的那样, webrequest()
function 向指定服务器发送 http:// 请求。
这是一个相关的 SO 线程:
如何从 MetaTrader 终端 5 MQL 5 向我的 nodejs 服务器发送请求,该服务器在我的 MT5 主机上本地运行?
和官方文档:
https://docs.mql4.com/common/webrequest
这可以包装到专家顾问中,以定期对给定的定义事件执行请求。
来自 MT4/5 终端的哪种数据可以填充到数据数组中?
如何格式化这些数据? 是否可以立即将其格式化为json
还是应该在服务器端完成?
2.) 使用ZeroMQ
这是我在此线程中找到的设置: How to send a message in MQL4/5 from MetaTrader Terminal to python using ZeroMQ?
这将如何在 MetaTrader 环境中完成? 这仍然是专家顾问或某种 DLL 解决方案吗? ZeroMQ 在设置中的作用是什么?
和webrequest()
function相比有什么优缺点?
3.) 其他?
是否有任何其他可能的方法来实现这一目标,例如使用 API 或 MQL4 脚本?
由于这是一个罕见的话题,我期待着任何微小的想法和意见。
欢迎加入俱乐部——我上面引用的答案在 1.5 年内收到了 迄今为止的零票
尽管如此,
从 v2.11+ 开始使用 ZeroMQ,感谢 Austen CONRAD 发表的研发工作——感谢他的坚持,我们对他深表敬意。
问: “这将如何在 MetaTrader 环境中实现?”
一个简单的#import
-s DLL 并开始使用 ZeroMQ-API-wrapper 调用。 在 MetaTrader 默默地将string
的内部表示更改为不再是string
(成为“New”中的struct
之后,一些细节变得更复杂了- MQL4.56789
,但您将学习如何以这种“时刻关注”的方式生活,以便在生产中生存)
问: “这仍然是专家顾问还是某种 DLL 解决方案?”
ZeroMQ 可用于以下任一和/或全部:
- EA交易 - 类型的MQL4
- 代码
-自定义指标- 类型的MQL4
- 代码
- MQL4
代码的脚本类型
和
甚至可以提供代理信令/消息传递层,以便在 MT4 终端生态系统内的这些原本独立且不合作的进程之间进行通信。
例子:
我有 MT4-Terminal 进程与外部基于 AI/ML 的市场分析器合作,它自动检测机会窗口加上外部 CLI 控制台,作为 MT4-Terminal 托管控制面板的远程键盘,显示系统运行状况-状态和监听远程键盘,用于远程CLI命令控制(用于整个多方分布式交易系统的配置和维护任务)
问: “ZeroMQ 在设置中的作用是什么?”
ZeroMQ 在任何类型的所需节点(网格计算、GPU 计算、CLI 终端、AI/ML 决策、系统范围整合)之间提供独立、智能和行业标准、智能和低延迟的信号/消息传递层中央日志记录,可能需要的任何东西)
尝试使用任何其他方法设置和使用远程tipc://
-class 用于跨集群计算范例。
尝试设置和使用 M:N-冗余策略交易,在tcp://
+ tipc://
+ norm://
+ vmci://
传输类的混合中运行,用于互连(A x M + N x B )-节点的外系统。
尝试设置一个系统,它要求 MetaTrader 从外部做一些工作,没有这种技术( webrequest()
还没有准备好接受任何“来自外部的问题”,是吗?)
问: “与
webrequest()
function 相比有什么优缺点?”
随时在 StackOverflow 答案中阅读有关此内容的信息。
与 Python 集成,支持 Wine (Linux/MacOS) 中的市场和信号服务以及 MetaTrader 5 build 2085 中高度优化的策略测试器
MetaQuotes Software Corp,2019 年 6 月 14 日
在新的 MetaTrader 5 版本中,我们添加了一个 API,它可以使用 Python 高级编程语言通过应用程序请求 MetaTrader 5 终端数据。 API 包含用于机器学习、过程自动化以及数据分析和可视化的多个库。
MetaTrader 5 与 Python 的集成
MetaTrader package for Python 旨在通过处理器间通信直接从 MetaTrader 5 高效快速地获取交换数据。通过此路径接收的数据可用于统计计算和机器学习。
因此,我正在寻找一种合适的解决方案,以将数据从 MetaTrader 4/5 终端定期(例如每 60 秒)发送到外部服务器,格式为 json 或 csv(如果可能)。
为此, metatrader.live可能会有所帮助。 问题只是附加一个(开源)专家顾问,并通过 JSON 或 WebSockets 或其他方式在线获取数据。 或者您可以仅将其用作您自己的逻辑的传输层。 很容易。 是的,我是作者:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.