文章 "Linux 上的 MetaTrader 5" - 页 39

Oleksandr Hoffman #:
Wine 10.0(WineHQ 稳定版)
Oleksandr Hoffman#:
Ubuntu 24.04 LTS

直到不久前,它还能正常运行。但在倒数第二次更新后,就无法运行了。

安装 wine-11.20(Staging)后恢复正常。在今天的更新后,目前仍能正常运行。

目前尚不确定是否应禁止 Wine 更新。

尽管人工智能和整体技术都取得了长足进步,但MQL仍然迫使我们通过Wine运行MT5/MT4。现在早就该推出一个适用于Linux的原生软件包了。
Oleksandr Hoffman #:
在版本号为6274–6283的MetaTrader 5构建版本中,若在Linux系统上通过Wine运行,会出现“在您的系统中检测到正在运行的调试器”的提示
MetaTrader 5 x64 版本 6283 由 MetaQuotes Ltd. 开发
在 Wine 11.11 环境下运行于 Linux 6.18.45-1-MANJARO 系统,搭载 Windows 11 版本 22000,配置为 4 核 Intel N150 处理器, AVX2,10 / 15 Gb 内存,221 / 343 Gb 磁盘空间,GMT+3

运行毫无问题,未显示任何多余信息。
MetaTrader 工程团队在跨平台执行标准方面已明显落后于当前水平。考虑到 Linux 桌面易用性和高性能游戏领域的飞速发展——这主要得益于 Valve 的 Proton 翻译层和原生 Vulkan 集成——依赖于 MT4 和 MT5 的初级 Wine 封装脚本,是一种过时的架构选择。 游戏中的高频执行和复杂图形渲染所面临的延迟和并发限制远比交易终端更为严格,这证明类 Unix 内核完全有能力处理高强度的客户端工作负载。 为 MT4/MT5 提供原生 Linux 二进制文件或高度优化的第一方运行时环境早已刻不容缓,以此才能确保算法交易 所需的低延迟、内存效率和运行稳定性。

对于那些纠结于“为什么MetaQuotes不做出满足我需求的决定?!”的人,我请DeepSeek估算了开发一款针对各操作系统原生支持的新终端所需的成本。

Below is a rough, order-of-magnitude estimate based on the scale of the MT5 codebase, MetaQuotes’ own engineering costs, and typical porting benchmarks for large desktop applications.


1. “原生”实际上需要满足哪些条件

MT5 是一个庞大的 C++ Windows 应用程序,对 Windows 系统存在深度依赖:Win32 API、注册表、DLL 加载、COM、Windows 原生 UI 工具,以及数百万行代码的代码库。 MetaQuotes 自身报告称 ,截至 2021 年,MT5 的代码行数已达 700 万行 ,而 2010 年发布时仅为 110 万行。 其中并非全部都属于桌面终端——很大一部分是服务器基础设施、MQL5 标准库以及开发工具——但仅终端本身仍是一个规模庞大且与 Windows 紧密耦合的代码库。

真正的原生移植至少需要:

  • 用于文件 I/O、线程、网络和进程间通信的平台抽象层 。

  • 针对 Linux(X11/Wayland,可能通过 Qt 或 GTK 实现)和 macOS(Cocoa)的新用户界面层 。

  • 替换或隔离 Windows 特有的组件,例如 MQL5 编译器/调试器、DLL 导入机制以及图形/渲染路径。

  • 长期 的三平台功能一致性测试 与维护。


2. 工作量估算基准

移植一款复杂的大型 Windows 桌面应用程序绝非易事。行业数据可说明其工作量范围:

  • 一款大型 CAD 应用程序(BricsCAD)最初估计需要 50 开发者 年才能转换为跨平台的 Qt 架构。

  • 较简单的 Win32 C/C++ 迁移有时被估算为“Linux 需 4 个月,Mac 需 6 周”,但这些例子假设的是代码量小、结构清晰且 Windows 特定逻辑有限的代码库——而非数百万行代码的金融终端。

  • 即使是 WPF 到跨平台的重写(相比原生 Windows C++,这是一种更高层次、更具可移植性的技术栈) ,单个应用程序的估算工时也需 250–625 工程师日。

对于 MT5 ,若由一支专职团队负责,该团队可复用共享的跨平台核心并构建两个前端(Linux 和 macOS),那么在 Linux 和 macOS 上实现首个生产级原生版本的 现实规划范围为 15–40 人年 。 这相当于大约 5–12名高级C++工程师工作2–3年,具体取决于现有代码中可重构的部分与需重写的部分所占比例。


3. 成本核算

MetaQuotes 在塞浦路斯发布的资深 C++ 开发人员职位招聘信息显示 ,月薪(税前)为 5,500–7,000 欧元。加上雇主税费、福利、办公管理费和设备费用, 每人每月 8,000–12,000 欧元的全包成本 是一个合理的规划假设。

根据上述工作量范围:

情景 人月 每人月全包成本 总开发成本
精益/高度可重用核心 180(15人年) 8,000 欧元 约140万欧元
中等规模 300(25人年) 10,000欧元 ~300万欧元
保守估计 / 需更多重写 480(40人年) 12,000欧元 约580万欧元

对于最初的原生 Linux 和 macOS 版本, 一个有依据的 、粗略但切合实际的范围是 150 万欧元至 600 万欧元 ,其中中央估计值在 300 万欧元至 400 万欧元之间。 此外,需预留30–40%的应急预算,以应对范围蔓延、意外的Windows依赖项,以及在Windows版本持续演进过程中维持功能对等所需的成本;这将使上限 在最坏但可能发生的情况下推高至 400万–700万欧元 。


4. 持续成本

原生跨平台软件并非一次性支出。MetaQuotes 需要维护三个原生桌面代码库(或一个共享核心及三个平台前端)。 通常经验法则是 ,每年 用于维护和平台功能同步的工作 成本约为初始开发成本的 15–20% 。以 300 万欧元的初始开发成本计算,这意味着 每年 需额外承担45 万至 60 万欧元的工程开销——这还不包括质量保证、发布工程以及针对特定平台的 bug 修复成本。


5. 为何 MetaQuotes 可能尚未实施

MetaQuotes 拥有足够的工程能力(200 多名员工)和资金实力来支持一个 300 万至 600 万欧元的项目。 但该公司选择发布基于 Wine 的安装程序这一事实,则表明其进行了简单的投资回报率(ROI)计算:与 Windows 和移动端相比,Linux/macOS 桌面交易用户群体较小,而 Wine 对大多数用户来说“已经足够好”。原生移植将是对 Linux/macOS 桌面端增长的战略性押注,而非短期内的收入来源。

归根结底: MetaQuotes 为 Linux 和 macOS 开发并发布真正原生的 MT5 终端 , 粗略而现实的 初期 成本 约为 150 万至 600 万欧元, 最可能集中在300 万至 400 万欧元之间,此外每年 还需50 万至 100 万欧元的 跨平台维护费用。 这对 MetaQuotes 而言并非关乎生存的巨额资金,但金额足够大——且目标市场的不确定性足够高——因此基于 Wine 的打包方案目前仍是经济上最理性的选择。