用于复制交易和信号的 Web 服务的项目计划
作为我们将在本章中开发的一个端到端的演示项目,我们将采用一个简单但同时技术相当先进的产品:一个客户机-服务器复制交易系统。客户端部分将是 MQL 程序,它使用 套接字 技术。考虑到 MQL5 只允许使用客户机套接字,因此需要为套接字服务器选择一个替代平台(下面将详细介绍)。因此,该项目将需要几种不同技术的共生,并使用我们已经学习过的多个 MQL5 API,包括在它们的基础上开发的应用程序代码。
由于基于套接字的客户端-服务器架构,该系统可用于不同的场景:
- 便于在一台计算机上的终端之间复制交易;
- 在不同计算机上的终端之间建立专用(个人)通信信道,不仅包括在本地网络中,还包括通过互联网;
- 组织需要登记的公开开放或封闭的信号服务;
- 监控交易;
- 远程管理你自己的帐户。
在所有情况下,客户端程序将扮演两个角色:数据的发布者(发布者、发送者)和订阅者(接收者)。
我们不会发明自己的网络协议,而是使用现有的流行的 WebSocket 标准。他们的客户端实现内置于所有浏览器中,我们需要在 MQL5 中重复这一实现(不同程度的完整性)。当然,WebSocket 支持也适用于大多数流行的 Web 服务器。因此,在任何情况下,我们的开发不仅可以适用于其他服务器(如果其他人适合的话),还可以与提供类似 Web 服务的知名网站集成。这里的要点是严格遵循他们的 API 规范(建立在 WebSocket 之上)。
开发比一个独立程序更复杂的软件系统时,重要的是要制定一个行动计划,甚至可能要设计一个技术项目,包括模块的结构、它们的相互作用以及编码的顺序。
因此,我们的计划包括:
- WebSocket 协议的理论分析:
- 使用 WebSocket 服务器的实现来选择和安装 Web 服务器;
- 创建一个简单的回显服务器(将传入消息的副本发送回客户机)来熟悉这项技术;
- 创建一个简单的客户端网页,从浏览器测试回显服务器的功能;
- 创建一个简单的聊天服务器,向所有连接的客户端发送消息,并为其创建一个测试网页;
- 在可识别的提供商和订户之间创建消息服务器,并为其创建测试 Web 客户端;
- MQL5 中 WebSocket 的设计与实现:
- 创建一个简单的脚本作为回显服务器的客户端;
- 创建一个简单的 EA 交易作为聊天服务器客户端;
- 最后,在 MQL5 中创建一个交易复制器,它将根据设置充当信息提供者(监视帐户变化和状态)和信息消费者(复制交易)。
但是在我们开始实施这个计划之前,我们需要安装一个 Web 服务器。