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

Miguel Angel Vico Alba #:
帖子数量或许表明该问题确实存在且影响了部分用户,但这本身并不能证明该问题普遍存在,也无法证明它影响了大多数Ubuntu用户。
所有 Ubuntu 用户都在向您反映,WebView 在 Wine 环境下运行不畅,导致应用商店和 AI 助手无法流畅无卡顿地运行,且存在 bug 以及键盘布局问题,卡尔!

你们官网上关于下载MT5的教程——那里的教程根本是过时的,而且完全行不通。 正因如此,我们才在寻找在其他模拟器中安装MT5的替代方案和方法。而你却继续坚称这并不影响大多数 Ubuntu用户……就像Mac用户一样 :)) 那里完全存在同样的问题:按照你的说明,无论是在 Mac 平台还是通过经纪商的任何 DMG 文件(Wine 模拟器只是权宜之计)安装 AI 助手,都无法提供完整的 WebView2 功能……太离谱了。真是滑稽。 你接下来是不是还要说这根本不是问题,因为绝大多数人肯定都在用Windows?你的逻辑水平简直让人忍俊不禁

其实是有解决办法的 ——你需要创建一个新帖,或者在这里讨论哪些方案在Ubuntu上确实可行,然后将其打包成一个可用的安装包,其中已包含或将安装好的MT5,并附带经过正确硬编码的Wine + 依赖项 + 组件,而不是提供那些会导致程序无法运行且软件源和损坏的。你们之前为 macOS 制作的 DMG 包就是这样,里面已经预先打包好了 MT5 和 Wine。 但我必须重申,那里同样存在关于 webview2 的类似问题,你们并未解决。就像 myfxbook 曾声称他们的机器人和 DLL 无法在 Wine 上运行一样——尽管我找到了解决方法,当时只缺了 4 个组件:
winetricks remove_mono
winetricks dotnet48 vcrun2015 vcrun2019 corefonts gdiplus

无论在Mac还是Linux上,myfxbookEA都已正常运行
Alain Verleyen #:

如果您使用 Bottles,则需自行承担风险。

我不知道有哪个官方的 mt5ubuntu.sh 安装程序,您是从哪里找到的?Linux 的官方安装程序是这篇文章中提到的 mt5linux.sh:https://www.mql5.com/zh/articles/625

MetaQuotes 不支持 Wine 10.0,您需要使用 11.x 版本(11.0 除外)。

我正在使用 Ubuntu 26.04 和 MT5,我会测试一下 AI Assistant 并向您反馈结果。

wgethttps://download.terminal.free/cdn/web/metaquotes.software.corp/mt5/mt5linux.sh; chmod +x mt5linux.sh ; ./mt5linux.sh ——瞧,这就是 MetaQuotes 的 SH 脚本
Alex FXPIP #:
WebView2/Wine的问题确实存在;这一点无人否认。但你并未证明所有Ubuntu用户都受到影响,甚至连大多数用户都未受影响。几份报告显示有部分用户遇到了这个问题,但这并不能证明普遍存在故障。同样,说官方指南“完全不起作用”也是如此。

你还在曲解我的意思。我从未说过这个问题无关紧要,也从未说过 Linux 用户应该转用 Windows,更没说过 MetaQuotes 应该忽视这个问题。我只是说,本帖中的报告并不能证明大多数 Ubuntu 用户都受到了影响。而且,加上“Karl!”并不能让这种逻辑上的跳跃更有说服力。

至于Alain:他明确指出官方脚本是mt5linux.sh,而不是mt5ubuntu.sh。随后你贴出了mt5linux.sh并说“看,这就是MetaQuotes的脚本”。没错,Karl……这正是Alain刚才告诉你的。
Miguel Angel Vico Alba #:
WebView2/Wine 确实存在问题;这一点无人否认。但你并未证明该问题影响了所有 Ubuntu 用户,甚至未能证明影响了其中大多数用户。 虽然有几条帖子表明部分用户遇到了这个问题,但这并不能证明存在普遍性的故障。关于“官方指南完全不起作用”的说法也是如此。

此外,你把没我说过的话强加给我。我从未说过这个问题不重要,也从未说过Linux用户应该转用Windows,更没说过MetaQuotes应该忽视这个问题。 我只是说,该讨论串中的帖子并不能证明该问题影响了大多数 Ubuntu 用户。而且,加上“卡尔!”这个词,并不能让这种逻辑跳跃显得更有说服力。

至于阿伦:他明确指出,官方脚本是 mt5linux.sh,而不是 mt5ubuntu.sh。随后你贴出了 mt5linux.sh 并说道:“看,这就是 MetaQuotes 提供的脚本。” 是的,卡尔……这正是阿伦刚刚告诉你的。

1) 我觉得你应该录个视频,展示你如何按照MetaQuotes的说明在Ubuntu上安装MT5…… 即使成功了,也请录制一段视频,展示你在 Ubuntu 的 MT5 中如何打开市场和 AI 助手,以及它们如何运行不畅、卡顿甚至死机……

2) 这样你就会有第一手的证据,证明这是一个普遍存在的问题,影响着所有Linux用户。

3) 别再曲解了——我并没有特指你,我指的是该论坛上官方代表的回复,我不知道你是否是其中之一。如果你是其中之一,那么这番话也是对你说

4) 把视频发到论坛,顺便你也能明白问题出在哪里以及如何解决

5) mt5linux.sh 无法正常工作,其中的软件源地址有误,而且在纯净版 Linux 上安装它之前,还需要安装很多其他东西…… 结果它根本无法使用,还得花半小时通过普通的 Wine 自己摸索,研究如何将 MT5 集成到 Linux 系统中

6) Web版在Linux和MacOS上根本无法运行。

7) 附言:既然该平台定位为模拟器平台,为什么一开始就要与Web版绑定呢?

关于macOS 27,我测试了Metaquotes发布的最新PKG包:
1) 如果直接通过MT5中的按钮调用AI助手,其运行效果非常出色

2) 但在MetaEditor中仍会出现错误:2026.09.29 03:17:35.602 WebView2 无法找到WebView2运行时


在Editor中也会出现错误

就连应用商店也能正常运行


我想说的是——也许你们也能在Linux上构建一个包含相同正确依赖关系的包?


补充一点:在 macOS 上,WebView 只能在终端中运行,或者只能在编辑器中运行——这取决于哪个先启动。我正在尝试修复


macOS(MetaTrader 5.app),版本 6230:MetaEditor 中的 AI 助手提示“couldn't find WebView2 Runtime”。我已经找到了原因和解决方法。使用的是 Metaquotes 提供的官方 macOS pkg 包

环境:MetaTrader 5 x64 build 6230、官方 MetaTrader 5.app、Wine 11.1、macOS (Darwin 27.0)、Apple Silicon。终端通过 /portable 启动,MetaEditor 通过 /portable /language:English 启动。

症状: 终端中的助手和市场功能正常运行。但在 MetaEditor 中无法打开助手,日志显示:

WebView2 无法找到 WebView2 运行时


发现的情况。

  1. 安装程序将固定版本的 WebView2 109.0.1518.78 放置在 C :\Program Files\WebView2 目录下,但未将其注册为 Evergreen:注册表中不存在 EdgeUpdate \Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} 注册 表项 不存在。 终端能够找到该运行时,但 MetaEditor 似乎在查找已安装的 Evergreen 却未找到。
  2. 我通过策略 HKLM \SOFTWARE\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder 为 MetaEditor 指定了运行时路径,其值为 metaeditor64 .exe = C :\Program Files\WebView2。 此后,编辑器中的助手开始正常工作,但出现了第二个问题。
  3. 只有最先打开 WebView2 的程序才能正常运行。 如果 最先打开的是 终端,编辑器中会出现错误;如果最先打开的是编辑器,终端中会出现错误。日志记录证实了这一点,该问题可稳定重现。
  4. 原因在于 terminal64 .exe 和 MetaEditor64 .exe 共享 同一个 WebView2 数据文件夹: C :\Program Files\MetaTrader 5\temp\EBWebView。 根据 WebView2 的规则,如果两个进程的参数不同,第二个进程无法在已被占用的文件夹中创建运行环境。它们的差异并非源于运行时路径:我为两者设置了相同的 BrowserExecutableFolder ,但冲突依然存在。 这很可能是由于环境参数不同所致,例如语言设置(编辑器 中为 /language:English)。

以下是一种有效的解决方法: 通过 WEBVIEW2_USER_DATA_FOLDER 变量(Wine 会将其从 macOS 传递到 Windows 进程)以独立的数据文件夹启动 MetaEditor:

export WINEPREFIX="$HOME/Library/Application Support/net.metaquotes.wine.metatrader5" export WEBVIEW2_USER_DATA_FOLDER='C:\Program Files\MetaTrader 5\temp\EBWebView-MetaEditor' "/Applications/MetaTrader 5.app/Contents/SharedSupport/wine/bin/wine" \ "C:\Program Files\MetaTrader 5\MetaEditor64.exe" /portable

这样,助手就能同时 在交易终端和编辑器中运行了。但如果通过交易终端中的“IDE / F4”按钮打开编辑器,冲突就会再次出现。

依我之见,您可以通过以下方式解决此问题:

  • 为 MetaEditor 分配一个专属的 WebView2 数据文件夹,例如 temp \EBWebView-ME,或者在两个进程中创建具有相同参数的运行环境;
  • 让 MetaEditor 像 终端 一样 在 C :\Program Files\WebView2 中查找运行时,或者让安装程序将该运行时注册到注册表中。
Установка в Mac OS - Для продвинутых пользователей - Начало работы - Справка по MetaTrader 5
Установка в Mac OS - Для продвинутых пользователей - Начало работы - Справка по MetaTrader 5
  • www.metatrader5.com
Мы подготовили специальный установщик торговой платформы для macOS. Это полноценный визард, позволяющий установить приложение как нативное. Он...

Linux 总结——webView2 + AI 助手已正常运行,但存在某些卡顿现象,且为修复键盘布局切换问题不得不编写了一个脚本

MT5 build 6231 在 Ubuntu 26.04(Wine 11.18)上的测试:AI 助手已正常运行,存在三个问题及其解决方案

系统:Ubuntu 26.04.1,KDE Plasma 6.6.6(Wayland 和 X11),Wine 11.18 staging(WineHQ),
Windows 11 前缀,MT5/MetaEditor build 6231,WebView2 Evergreen 154.0.4258.37。

1. `mt5linux.sh` 不支持 Ubuntu 26.04

对于任何 Ubuntu >= 25.10,该脚本会连接 WineHQ 的 `questing` 仓库 ,但没有 `resolute`
。此外,它会未经确认地删除 `/etc/apt/sources.list.d/winehq*` 并执行
`apt upgrade -y`。

解决方案: 手动 添加了 `resolute` 软件源 ,安装了 `winehq-staging`,然后从脚本中
仅执行了最后几步: `winecfg -v=win11`、安装 WebView2(`/silent /install`)
以及 `mt5setup.exe`。

请求:请在脚本中添加 `resolute` 分支 ,并且不要删除其他仓库的文件。

2. AI助手呈半透明状态且出现卡顿(在终端和MetaEditor中均如此)

原因:WebView2/Chromium 在 Wine 下的 GPU 合成功能运行异常。

解决方案:通过 WebView2 策略仅针对 MT5 进程禁用 GPU:

```
for K in 'HKLM\SOFTWARE\Policies\Microsoft\Edge\WebView2\AdditionalBrowserArguments' \
'HKCU\Software\Policies\Microsoft\Edge\WebView2\AdditionalBrowserArguments'; do
wine reg add "$K" /v terminal64.exe /t REG_SZ /d '--disable-gpu --disable-gpu-compositing --disable-software-rasterizer' /f
wine reg add "$K" /v metaeditor64.exe /t REG_SZ /d '--disable-gpu --disable-gpu-compositing --disable-software-rasterizer' /f
完成
```

此后,助手即可正常运行。仅剩一个视觉上的小问题:当窗口被最小化时,它
会变为半透明状态,持续1–2秒。

请求:在终端中添加“禁用助手硬件加速”的设置
,或者在 Wine 环境下自动启用此功能。

3. 助手输入框中无法切换 RU/EN 布局

在 MetaEditor 的代码编辑器以及 MT5 的普通输入框中,布局切换功能正常,但在助手中无法切换。

原因(经Wine跟踪日志确认):该输入框由独立进程
`msedgewebview2.exe` 独立处理,而 Wine 会在每个进程中单独保存当前的 XKB 布局。
只有终端会收到键盘布局变更事件,而 WebView2 则保持在
该布局即为其启动时的配置。而整个布局表的变更则会被所有进程感知。

解决方案:一个简短的脚本会捕获 KDE 发出的键盘布局切换信号,并每次在
X 服务器中设置一种当前布局(`setxkbmap us` / `setxkbmap ru`)。此后
切换功能在任何地方都能正常工作。脚本如下。

这是 Wine 方面的错误,我会将其反馈给 WineHQ。不过,或许可以通过将 WebView2 集成到
使输入通过终端进程进行,这样问题就会消失。

无需修改即可正常运行的功能:WebView2的官方安装程序会注册
Evergreen运行时,MetaEditor会自动检测到它(在macOS上使用固定版本109时,曾需要
在注册表中手动设置路径)。 首次启动时 出现的`ACP ai engine executable not found` 错误
会自动消失:LiveUpdate 会补全下载 `mt5onnx64`,之后只需手动重启 MT5 一次
。

键盘布局同步脚本(KDE Plasma)—— `~/.local/bin/xwayland-layout-sync`,
将其添加到 KDE 自动启动项中:

```bash
#!/bin/bash
# 将 Xwayland/X11 键位映射保持为与当前 KDE 布局匹配的单一布局。
# Wine 会按进程缓存 XKB 组,因此 WebView2(作为独立进程)永远不会看到
# 组切换;而完整的键盘映射变更(MappingNotify)会影响所有 Wine 进程。
export DISPLAY="${DISPLAY:-:0}"

apply() {
local idx list layouts variants
idx=$(qdbus6 org.kde.keyboard /Layouts org.kde.KeyboardLayouts.getLayout 2>/dev/null) || return
list=$(qdbus6 --literal org.kde.keyboard /Layouts org.kde.KeyboardLayouts.getLayoutsList 2>/dev/null) || return
mapfile -t layouts < <(grep -oP '\(sss\) "\K[^"]*' <<<"$list")
mapfile -t variants < <(grep -oP '\(sss\) "[^"]*", "\K[^"]*' <<<"$list")
[ -n "${layouts[$idx]}" ] || return
if [ -n "${variants[$idx]}" ]; then
setxkbmap -layout "${layouts[$idx]}" -variant "${variants[$idx]}" 2>/dev/null
else
setxkbmap -layout "${layouts[$idx]}" 2>/dev/null
fi
}

apply
dbus-monitor --session "type='signal',interface='org.kde.KeyboardLayouts',member='layoutChanged'" 2>/dev/null |
while 读取 -r 中的行; do
[[ $line == *member=layoutChanged* ]] && apply
done
```

---

## WineHQ Bugzilla 提交内容(英文,可选)

摘要:跨进程子窗口(WebView2)中未应用键盘布局(XKB组)切换

组件:winex11.drv - 版本:11.18 (staging)

在 WebView2 控件(msedgewebview2.exe,另一个
进程的顶级窗口,如 MetaTrader 5 6231 版本所用)时,始终使用
msedgewebview2.exe 启动时处于活动状态的 XKB 组。切换布局(例如 ru <-> us,使用多个 XKB
组)在宿主进程的原生控件中有效,但在 WebView2 子窗口中无效。

跟踪(`WINEDEBUG=+pid,+keyboard,+imm`):键事件在 msedgewebview2.exe
进程中以 HKL 0x10001000 处理;而 XKB 组的变化仅由拥有该
拥有焦点 X 窗口的进程才能检测到。完整的键位映射变更(`setxkbmap -layout us` / `ru`,MappingNotify)会被
,并作为临时解决方案使用。

环境:Ubuntu 26.04,KDE Plasma 6.6.6(Wayland/Xwayland 24.1.10 和 X11 会话),
WebView2 Evergreen 154.0.4258.37。



附言:真是个烂东西……

Miguel Angel Vico Alba #:
WebView2/Wine 确实存在问题;这一点无人否认。但你并未证明该问题影响了所有 Ubuntu 用户,甚至未证明影响了其中大多数用户。 虽然有几条帖子表明部分用户遇到了这个问题,但这并不能证明存在普遍性的故障。关于“官方指南完全行不通”的说法也是如此。

那么,官方的Linux操作指南到底行不行?还是拍个视频演示一下?是普遍故障还是个别情况?真想知道人们得试多少次才能明白

Miguel Angel Vico Alba#:
关于阿伦:他明确指出,官方脚本是 mt5linux.sh,而不是 mt5ubuntu.sh。随后你发布了 mt5linux.sh 并表示:“看,这是 MetaQuotes 提供的脚本。” 是的,卡尔……这正是阿伦刚才对你说的话。

那这是什么:

Alex FXPIP#:
1. `mt5linux.sh` 不支持 Ubuntu 26.04

对于任何 Ubuntu >= 25.10,该脚本会连接 WineHQ 的 `questing` 软件源 ,以及 `resolute` 的分支
。此外,它会未经询问直接删除 `/etc/apt/sources.list.d/winehq*` 并执行
`apt upgrade -y`。

解决方案: 手动 添加了 `resolute` 软件源 ,安装了 `winehq-staging`,然后从脚本中
中仅执行了最后几步: `winecfg -v=win11`,安装 WebView2(`/silent /install`)
以及 `mt5setup.exe`。

请求:在脚本中添加 `resolute` 分支 ,并且不要删除其他人的仓库文件。

请阅读

Alex FXPIP #:

嘛,至少,这番来回讨论也算让“完全无法运行”这个问题变成了一个有详细记录的具体问题。🙂

我已经基本让它正常运行了。所有功能都能正常使用,我也可以登录 MQL5。唯一令人沮丧的是,我无法从商店的“我的购买”中安装我的“风险计算器”EA,因为点击“安装”按钮后没有任何反应。

我当前使用的是 CachyOS 7.2.9。


下载 Bottles flatpak 并安装。打开它,在左上角创建一个“瓶子”。创建完成后,点击“依赖项”并安装 WebView2。这个过程会异常耗时,请耐心等待。返回后点击“设置”。 将运行器设置为“内置 Wine 11”,向下滚动并启用独立显卡以确保运行流畅。你可以继续向下滚动,在 Windows 10 和 11 之间切换,但我并未察觉到任何差异。下载 MT5 的 Windows 版本,点击“运行可执行文件”,然后找到你刚刚下载的 MT5.exe 文件。


如果有人能成功从应用商店安装EA,请@我。


希望这对无法让它正常运行的朋友们有所帮助。

MetaTrader 5 版本 6274-6283 在 Linux 上的 Wine 环境中会显示“系统中已检测到正在运行的调试器”的提示(版本 6257 正常)


自安装程序开始提供 6274 版本以来,在 Ubuntu 24.04 的 Wine 环境下,终端无法启动。系统会显示“已在您的系统中检测到正在运行的调试器”的提示框,并停止后续操作。而在相同的系统环境下,6257 版本可正常运行。 该进程并未连接任何调试器,因此这似乎是 Wine 环境下调试器检测机制的误报。我们希望 MetaQuotes 能对此进行调查。我们并不要求对保护机制本身进行任何更改,仅希望确认 Wine 是否为新版本构建所支持的环境,以及该检测机制能否对此予以容忍。

运行环境

  • 主机:Ubuntu 24.04 LTS (x86-64)
  • Wine 9.0(Ubuntu 软件包 9.0~repack-4build3)和 Wine 10.0(WineHQ 稳定版):两者结果相同
  • 全新的 64 位 Wine 前缀,通过官方安装程序安装到该前缀中
  • 未连接任何调试器、跟踪器或监控工具(进程 的 TracerPid 为 0)

已测试的构建版本

终端构建 terminal64.exe(SHA-256,前缀) 在 Wine 9.0 下的运行结果
6257(2026年10月11日) 7f5fe5ac... 启动,主窗口显示“MetaTrader 5 - 净额结算 -EURUSD,H1”
6274(2026年10月19日) bf906df6... 消息框“已在您的系统中检测到正在运行的调试器”
6283 ad7fafb2... (126,216,296 字节) 相同的消息框

今天使用官方安装程序安装了构建版本 6274 及更高版本。在真实的 Windows 系统上(使用构建版本 6283 进行的 Windows 容器测试),相同的构建版本启动时不会显示该消息。

我们的观察结果

  • 在启动 terminal64 .exe 后的几秒内,该消息框便会出现。随后从同一安装源启动的 MetaEditor 会卡住,且无法完成编译。
  • 该现象与 Wine 版本(9.0 与 10.0)无关,而是取决于终端的构建版本。
  • 当启用 Wine 自身的调用跟踪功能时,同一构建版本可正常启动。这表明该检查机制是对进程内部状态的反应,而非针对已附加的调试器。

问题

  1. 当前构建版本是否支持在 Linux 上的 Wine 环境?如果是,能否针对 Wine 9/10 版本验证调试器检测机制?如果不是,请告知我们,以便我们做出相应规划。
  2. 是否有其他受支持的方式在 Linux 服务器上运行该终端,供我们替代使用?

许多人都在 Linux/Wine 上运行 MT5(参见关于 MT5 在 Linux 上运行的冗长讨论文章),因此修复此问题也将对他们有所帮助。

先感谢您了,