有人如何将数据从 MetaTrader 4/5 终端发送到外部服务器?
How can someone send data from MetaTrader 4/5 Terminal to external server?
这在某种程度上旨在(可能)成为(成为)指南 post 就 MetaTrader 4/5 及其相应的语言 MQL4 而言,两者都设置为将数据发送到外部服务器的上下文。
在我的特殊情况下,我正在构建一个基于 Django/Python 的 Web 应用程序,它将处理外汇交易数据以供进一步使用。
因此,我正在寻找合适的解决方案,以便 定期(例如,每 60 秒)将数据从 MetaTrader 4/5 终端发送到外部服务器,格式为 json
或 csv
(如果可能)。 特别是,要发送的数据是账户交易历史和 运行 + 未决交易集。
经过研究,我基本上找到了以下方法:
1.) 在包裹在智能交易系统中的 MQL4 中使用 webrequest()
正如官方 MQL4 文档所建议的那样,webrequest()
函数向指定的服务器发送一个 http:// 请求。
这是一个相关的 SO 线程:
和官方文档:
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()
函数相比,优缺点是什么?
3.) 其他?
是否有任何其他可能的方法来实现这一目标,例如使用 API 或 MQL4 脚本?
由于这是一个罕见的话题,我期待着任何微小的想法和意见。
欢迎加入俱乐部 - 我上面引用的答案在 1.5 年内收到了零票
尽管如此,自 v2.11+ 以来一直使用 ZeroMQ,感谢 Austen CONRAD 发布的研发工作 - 感谢并深深尊重他的坚持。
Q : "How would this be accomplished within the MetaTrader environment?"
只需 #import
-s DLL 并开始使用 ZeroMQ-API-wrapper 调用。在 MetaTrader 默默地改变了 string
的内部表示不再是 string
(成为 struct
之后,一些细节变得有点复杂在 “新”-MQL4.56789
,但您将学习如何适应这种“始终守望”的风格,以便在生产中生存)
Q : "Will this still be an expert advisor or some kind of DLL solution?"
ZeroMQ 可用于 and/or 全部:
- Expert Advisor-
MQL4
-代码类型
- 自定义指标-
MQL4
-代码类型
- 脚本-类型
MQL4
-代码
甚至可以提供 proxy-signaling/messaging-layer,以便在 MT4 终端生态系统内的这些独立且不合作的进程之间进行通信。
示例:
我有 MT4-Terminal 流程与外部 AI/ML-based 市场分析器合作,它自动检测 windows-机会加上外部 CLI 控制台,作为 MT4-Terminal 托管控制面板的远程键盘, 显示系统健康状态和监听远程键盘,用于远程CLI命令控制(用于整个多方分布式交易系统的配置和维护任务)
Q : "What is the ZeroMQ's role within the setup?"
ZeroMQ 在任何类型的所需节点(网格计算、GPU 计算、CLI-treminal、AI/ML-decision 制作全系统统一的中央日志记录,任何人可能需要的东西)
尝试设置和使用远程 tipc://
-transport-class 与任何其他方法的跨集群计算范式。
尝试设置和使用 M:N-冗余策略交易,在 tcp://
+ [=18 的组合中操作=] + norm://
+ vmci://
transport-classes,这样用关于互连 ( A x M + N x B )-节点的外部系统。
尝试设置一个系统,要求 MetaTrader 在没有此技术的情况下从外部做一些工作(webrequest()
还没有准备好应对任何“来自外部的问题”,是吗?)
Q : "What are the pros and cons compared to the webrequest()
function?"
请随时在 Stack Overflow 答案中阅读相关内容。
与 Python 集成,支持 Wine 中的市场和信号服务 (Linux/MacOS) 以及 MetaTrader 5 build 2085 中高度优化的策略测试器
MetaQuotes 软件公司,2019 年 6 月 14 日
在新的 MetaTrader 5 版本中,我们添加了一个 API,它可以使用 Python high-level 编程语言通过应用程序请求 MetaTrader 5 终端数据。 API 包含多个用于机器学习、过程自动化以及数据分析和可视化的库。
MetaTrader 5 与 Python
集成
Python 的 MetaTrader 软件包旨在通过处理器间通信直接从 MetaTrader 5 高效快速地获取交换数据。通过此途径接收的数据可用于统计计算和机器学习。
Thus, I am in search for a proper solution to send data from the
MetaTrader 4/5 Terminal to an external server periodically (e.g. every
60 seconds) formatted as json or csv (if possible).
为此,metatrader.live 可能会有所帮助。问题只是附加一个 (open-sourced) 专家顾问,并通过 JSON 或 WebSockets 或其他方式在线获取数据。或者您可以仅将其用作您自己的逻辑的传输层。很容易。是的,我是作者 :)
这在某种程度上旨在(可能)成为(成为)指南 post 就 MetaTrader 4/5 及其相应的语言 MQL4 而言,两者都设置为将数据发送到外部服务器的上下文。
在我的特殊情况下,我正在构建一个基于 Django/Python 的 Web 应用程序,它将处理外汇交易数据以供进一步使用。
因此,我正在寻找合适的解决方案,以便 定期(例如,每 60 秒)将数据从 MetaTrader 4/5 终端发送到外部服务器,格式为 json
或 csv
(如果可能)。 特别是,要发送的数据是账户交易历史和 运行 + 未决交易集。
经过研究,我基本上找到了以下方法:
1.) 在包裹在智能交易系统中的 MQL4 中使用 webrequest()
正如官方 MQL4 文档所建议的那样,webrequest()
函数向指定的服务器发送一个 http:// 请求。
这是一个相关的 SO 线程:
和官方文档:
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()
函数相比,优缺点是什么?
3.) 其他?
是否有任何其他可能的方法来实现这一目标,例如使用 API 或 MQL4 脚本?
由于这是一个罕见的话题,我期待着任何微小的想法和意见。
欢迎加入俱乐部 - 我上面引用的答案在 1.5 年内收到了零票
尽管如此,自 v2.11+ 以来一直使用 ZeroMQ,感谢 Austen CONRAD 发布的研发工作 - 感谢并深深尊重他的坚持。
Q : "How would this be accomplished within the MetaTrader environment?"
只需 #import
-s DLL 并开始使用 ZeroMQ-API-wrapper 调用。在 MetaTrader 默默地改变了 string
的内部表示不再是 string
(成为 struct
之后,一些细节变得有点复杂在 “新”-MQL4.56789
,但您将学习如何适应这种“始终守望”的风格,以便在生产中生存)
Q : "Will this still be an expert advisor or some kind of DLL solution?"
ZeroMQ 可用于 and/or 全部:
- Expert Advisor-
MQL4
-代码类型 - 自定义指标-
MQL4
-代码类型 - 脚本-类型
MQL4
-代码
甚至可以提供 proxy-signaling/messaging-layer,以便在 MT4 终端生态系统内的这些独立且不合作的进程之间进行通信。
示例:
我有 MT4-Terminal 流程与外部 AI/ML-based 市场分析器合作,它自动检测 windows-机会加上外部 CLI 控制台,作为 MT4-Terminal 托管控制面板的远程键盘, 显示系统健康状态和监听远程键盘,用于远程CLI命令控制(用于整个多方分布式交易系统的配置和维护任务)
Q : "What is the ZeroMQ's role within the setup?"
ZeroMQ 在任何类型的所需节点(网格计算、GPU 计算、CLI-treminal、AI/ML-decision 制作全系统统一的中央日志记录,任何人可能需要的东西)
尝试设置和使用远程 tipc://
-transport-class 与任何其他方法的跨集群计算范式。
尝试设置和使用 M:N-冗余策略交易,在 tcp://
+ [=18 的组合中操作=] + norm://
+ vmci://
transport-classes,这样用关于互连 ( A x M + N x B )-节点的外部系统。
尝试设置一个系统,要求 MetaTrader 在没有此技术的情况下从外部做一些工作(webrequest()
还没有准备好应对任何“来自外部的问题”,是吗?)
Q : "What are the pros and cons compared to the
webrequest()
function?"
请随时在 Stack Overflow 答案中阅读相关内容。
与 Python 集成,支持 Wine 中的市场和信号服务 (Linux/MacOS) 以及 MetaTrader 5 build 2085 中高度优化的策略测试器
MetaQuotes 软件公司,2019 年 6 月 14 日
在新的 MetaTrader 5 版本中,我们添加了一个 API,它可以使用 Python high-level 编程语言通过应用程序请求 MetaTrader 5 终端数据。 API 包含多个用于机器学习、过程自动化以及数据分析和可视化的库。
MetaTrader 5 与 Python
集成Python 的 MetaTrader 软件包旨在通过处理器间通信直接从 MetaTrader 5 高效快速地获取交换数据。通过此途径接收的数据可用于统计计算和机器学习。
Thus, I am in search for a proper solution to send data from the MetaTrader 4/5 Terminal to an external server periodically (e.g. every 60 seconds) formatted as json or csv (if possible).
为此,metatrader.live 可能会有所帮助。问题只是附加一个 (open-sourced) 专家顾问,并通过 JSON 或 WebSockets 或其他方式在线获取数据。或者您可以仅将其用作您自己的逻辑的传输层。很容易。是的,我是作者 :)