感谢您提供的信息......插座如何帮助连接来自不同经纪商的两个 MT5 终端?一个是外汇,另一个是摩根士丹利 - 两个终端的配对交易 可以通过插座实现吗?
我自己也在研究这个话题......如果我的问题有点跑题,请事先见谅....。我仍在阅读文章并寻找解决方案,以实现两个 MT5 的联合交易,并在分析 2-3-4-5 个符号的报价数据后,从不同交易所获取符号报价,并进行联合交易.....。
我将套接字:
-
终端间交换:数据直接在 MT5 A 和 MT5 B 之间传输。
-
事件 : 收到数据时立即 触发 OnSocketEvent()。
-
数据灵活性:可传输 JSON、二进制结构和数组。
-
速度:延迟比变量轮询低一个数量级。
-
可靠性:有重新发送和确认机制。
在这种情况下,我计划制作一个高级 Python 服务器,其中包含传播计算、ACK/NACK、位置状态存储和用于监控的网络接口;
// A 号航站楼 string msg = "{\"cmd\":\"OPEN\", \"symbol\":\"USDRUBF\", \"volume\":1.0}"; SocketSend(socket, msg); // 终端 B string cmd; SocketReceive(socket, cmd); // 获取信号的完整结构
- 2025.10.29
- www.mql5.com
我自己也在研究这个话题......如果我的问题有点跑题,请事先见谅....。我仍在阅读文章并寻找解决方案,以便在一个套接字中进行两个 MT5 交易,并在分析 2-3-4-5 个符号的报价数据后,从不同交易所获取符号报价,然后在套接字中进行交易....。
在这里,我将套接字旋转:
-
终端间交换 :数据直接在 MT5 A 和 MT5 B 之间传输。
-
事件 : 收到数据时立即 触发 OnSocketEvent()。
-
数据灵活性 :可传输 JSON、二进制结构和数组。
-
速度 :延迟比变量轮询低一个数量级。
-
可靠性 :有重新发送和确认机制。
在这种情况下,我计划制作:一个先进的 Python 服务器,包括传播计算、ACK/NACK、位置状态存储和用于监控的网络接口;
您的问题很相关,也很有趣。但我认为您的结论过于草率。让我澄清一下:虽然 MQL5 实现了套接字,但正如我在文章中解释的那样,它不允许您创建服务器。只能创建客户端。因此,您打算做的很多事情都是不可能的。 不可能 在 MQL5 中实现。您需要外部代码。在您的案例中,您提到使用 Python,这本身就是一种解决方案。
事实上,您所需要的大部分内容都可以在 Python 中实现。但是,您要做的事情有一个小问题:直接与代理交互。我为什么这么说呢?出于安全考虑,代理通常不接受通过套接字进行访问。这种交互有一个特殊的协议,专门用来防止中断代理的内部机制。但也不是不可以尝试。他们可以告诉你通信协议,这样你就可以在适合的时候访问它。但不要以为这很容易,除非你在经纪公司有一个非常要好的朋友,可以为你提供所需的信息。
另一个引起我注意的问题是 MetaTrader 5 两个不同实例之间的互动和信息交换。依我之见,您的尝试并不是一个好主意。您不了解并行编程的一些概念和相关问题。如果您不介意,可以尝试研究一下 "生产者-消费者 "任务。它将帮助您了解在不同 MetaTrader 5 实例之间传输信息进行交易时可能遇到的复杂程度和陷阱。
无论如何,祝您的项目好运 🙂👍
你的问题很贴切,也很有趣。但我认为您的结论过于草率。让我澄清一下:虽然 MQL5 实现了套接字,但正如我在文章中解释的那样,它不允许您创建服务器。只能创建客户端。因此,您打算做的很多事情都是不可能的。 不可能 在 MQL5 中实现。您需要外部代码。在您的案例中,您提到使用 Python,这本身就是一种解决方案。
事实上,您需要的大部分功能都可以在 Python 中实现。但是,您要做的事情有一个小问题:直接与代理交互。我为什么这么说呢?出于安全考虑,代理通常不接受通过套接字进行访问。这种交互有一个特殊的协议,专门用来防止中断代理的内部机制。但也不是不可以尝试。他们可以告诉你通信协议,这样你就可以在适合的时候访问它。但不要以为这很容易,除非你在经纪公司有一个非常要好的朋友,可以为你提供所需的信息。
另一个引起我注意的问题是 MetaTrader 5 两个不同实例之间的互动和信息交换。依我之见,您的尝试并不是一个好主意。您不了解并行编程的一些概念和相关问题。如果您不介意,可以尝试研究一下 "生产者-消费者 "任务。这将有助于您了解在不同 MetaTrader 5 实例之间为交易目的传输信息时可能遇到的复杂程度和陷阱。
无论如何,祝您的项目好运 🙂👍
非常感谢您提供的反馈.....在两家不同的经纪公司都有 MT5 终端!需要让它们成为朋友.....。) 这是明年的一个项目!!!
这里 - 尝试...感谢您的文章 - 我正在阅读并研究其中的内容!!如果速度允许 - 也许我会直接通过文件来做...访问 - 就像早期的硬盘一样,在 BIOS 中连接两块:一块主硬盘,一块从硬盘...)
所以...在一台功能强大的计算机上有两个 MT5 终端,一个是主(主要)--另一个是从(次要),一个是证券交易所--另一个是 MT5 外汇交易!也许可以通过文件来实现)读取 - 写入就可以了......但我想在读取 - 接收数据方面实现更快的简便变....通过客户端的全局变量类型(我不使用文件 - 时间长了),但客户端的全局变量只在本终端可见.....。您需要连接外部进程...也许可以在内存中建立表格...比如连接的 dll 库,我会意识到的!..!
祝您愉快
新文章 市场模拟(第 12 部分):套接字(六)已发布:
在上一篇文章“市场模拟(第 11 部分):套接字(五)”中,我们在文中解释了如何创建一个可在 Excel 中使用的 Python 应用程序。这个应用程序的目的是演示如何用 Python 构建回声服务器。其显著特点是,与连接和断开事件相关的数据直接显示在 Excel 中。
事实上,这个服务器对我们来说并没有特别大的用处,主要是因为它只允许一个连接 —— 而设计成只能处理一个连接的服务器,其实际价值是有限的。但是,我不希望你在这个细节上花费太多精力。其目的是展示用 Python 编写的脚本如何在 Excel 中透明地运行。但对于我们的实际需求,服务器必须更先进一些。为了实现这一目标,我们需要实现几个额外的功能。
这里的目标不是创建一个可用于生产环境的应用程序。如前所述,套接字是一个高度复杂的主题,需要大量的时间来研究和探索。不要指望一天之内就能开发出真正强大而完善的产品。处理套接字时,需要深入了解许多细节 —— 有些比较简单,而有些则相当复杂。
本文中,我们将不会直接使用 Excel 或 MQL5。但是,在 MQL5 的情况下,我们将能够使用它。更确切地说,我们将利用本系列早些时候开发的内容。为了全面了解材料,回顾 MQL5 中已经实现的内容也会有所帮助。
作者:Daniel Jose