繁体   English   中英

有人如何将数据从 MetaTrader 4/5 终端发送到外部服务器?

[英]How can someone send data from MetaTrader 4/5 Terminal to external server?

这在某种程度上旨在(可能)成为(来)关于 MetaTrader 4/5 及其相应语言 MQL4 的指南帖子,两者都设置为将数据发送到外部服务器的上下文。

在我的特殊情况下,我正在构建一个基于 Django/Python 的 web 应用程序,它将处理外汇交易数据以供进一步使用。

因此,我正在寻找一种合适的解决方案,以将数据从 MetaTrader 4/5 终端定期(例如每 60 秒)发送到外部服务器,格式为jsoncsv (如果可能)。 特别是,要发送的数据是账户交易历史和运行+待定交易集。

经过研究,我基本上发现了以下方法:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM