MetaTrader 5新功能

桌面版,移动版和网页平台的更新历史

31 七月 2025
新版 MetaTrader 5 平台 Build 5200:在 MQL5 中扩展的 OpenBLAS 支持和增强的控制

客户端

  1. 增加了根据 Windows 设置自动应用浅色或深色主题的功能。要启用此功能,请选择新选项:查看 \ 颜色主题 \ 系统。每次平台启动时,它都会检测到您的系统主题并相应地进行调整。


    已添加根据 Windows 设置自动应用浅色或深色主题的功能


  2. 修正了工具栏从主窗口分离时的显示问题。
  3. 修正了资产部分的投资组合清算价值计算。在某些情况下,某些工具的头寸没有被考虑在内。
  4. 修正了市场深度中显示负数价格的问题。现在已正确处理。
  5. 修正了价格历史导入到自定义交易品种中的问题。对于位于根文件夹中的工具,以前可能无法使用相应的命令。
  6. 更新用户界面翻译。

MQL5

  1. 添加了新的 OpenBLAS 方法:

    矩阵简化

    • ReduceToHessenberg —— 通过正交相似变换将实数或复数一般 n 乘 n 矩阵 A 还原为上海森堡形式 B:Q**T * A * Q = H。LAPACK 函数为 GEHRD.
    • 生成正交矩阵 Q,其定义为 n 阶 n-1 个基本反射器的乘积,由 ReduceToHessenberg 返回:Q = H(1) H(2) .. .H(n-1)。 LAPACK 函数为 ORGHR.

    特征值和特征向量

    • EigenHessenbergSchurQ —— 从舒尔分解 H = Z T Z**T 计算海森堡矩阵 H 的特征值以及矩阵 T 和 Z,其中 T 是上准三角形矩阵(舒尔形式),Z 是舒尔向量的正交矩阵。LAPACK 函数为 HSEQR.

    线性方程

    • SylvesterEquationTriangular —— 求解实数准三角形或复三角形矩阵的 Sylvester 方程:op(A)*X + X*op(B) = scale*C 或 op(A)*X - X*op(B) = scale*C 其中 op(A) = A 或 A**T 或 A**H,且 A 和 B 均为上三角形。LAPACK 函数为 TRSYL.
    • SylvesterEquationTriangularBlocked —— 求解实数准三角形或复三角形矩阵的 Sylvester 方程:op(A)*X + X*op(B) = scale*C 或 op(A)*X - X*op(B) = scale*C 其中 op(A) = A 或 A**T 或 A**H,且 A 和 B 均为上三角形。LAPACK 函数为 TRSYL3.这是 TRSYL 的块(BLAS 级别 3)版本。速度快达 5 倍,但不太精确。

    因子计算

    • SylvesterEquationSchur —— 求解实拟三角形或复三角形矩阵的西尔维斯特方程:A*X + X*B = C,其中 A 和 B 都是上三角。A 是 m 乘 m,B 是 n 乘 n;右边 C 和解 X 都是 m 乘 n。LAPACK 函数为 TRSYL.
    • SylvesterEEquationSchurBlocked —— 求解实拟三角形或复三角形矩阵的西尔维斯特方程:A*X + X*B = C,其中 A 和 B 都是上三角。A 是 m 乘 m,B 是 n 乘 n;右边 C 和解 X 都是 m 乘 n。LAPACK 函数为 TRSYL3.这是 TRSYL 的块(BLAS 级别 3)版本。速度快达 5 倍,但不太精确。

    矩阵范数计算

    • MatrixNorm —— 返回一般矩形矩阵中 1-范数、无穷范数、弗罗贝尼斯范数的值或任何元素的最大绝对值。LAPACK 函数为 LANGE。
    • MatrixNormGeTrid —— 返回一般三对角矩阵中任意元素的 1-范数、无穷范数、弗罗贝尼斯范数或最大绝对值。LAPACK 函数为 LANGT。
    • MatrixNormHessenberg —— 返回上海森堡矩阵中任何元素的 1-范数、无穷范数、弗罗贝尼斯范数或最大绝对值。LAPACK 函数为 LANHS。
    • MatrixNormSy —— 返回实对称矩阵或复赫米提矩阵中任何元素的 1-范数、无穷范数、弗罗贝尼斯范数或最大绝对值。LAPACK 函数为 LANSY,LANHE。
    • MatrixNormComplexSy —— 返回复对称(非赫米特)矩阵中任何元素的 1-范数、无穷范数、弗罗贝尼斯范数或最大绝对值。LAPACK 函数为 LANSY。
    • MatrixNormSyTrid —— 返回实对称或复赫米特三对角矩阵中任何元素的 1-范数、无穷范数、弗罗贝尼斯范数或最大绝对值。LAPACK 函数为 LANST、LANHT。
    • MatrixNormTriangular —— 返回梯形 m 乘 n 矩阵或三角形矩阵中任意元素的 1-范数、无穷范数、弗罗贝尼斯范数或最大绝对值。LAPACK 函数为 LANTR。

    矩阵分类

    • IsSymmetric —— 检查方块矩阵是否对称。
    • IsHermitian —— 检查方块复矩阵是否为赫米特矩阵。
    • IsUpperTriangular —— 检查方块矩阵是否为上三角矩阵。
    • IsLowerTriangular —— 检查方块矩阵是否为下三角矩阵。
    • IsTrapezoidal —— 检查 m 乘 n 矩形(非方块)矩阵是上梯形还是下梯形矩阵。
    • IsUpperHessenberg —— 检查方块矩阵是否为上海森堡矩阵。
    • IsLowerHessenberg —— 检查方块矩阵是否为下海森伯矩阵。
    • IsTridiagonal —— 检查方块矩阵是否为三对角矩阵。
    • IsUpperBidiagonal —— 检查方块形矩阵是否为上对角线矩阵。
    • IsLowerBidiagonal —— 检查方块矩阵是否为下对角线矩阵。
    • IsDiagonal —— 检查方块矩阵是否对角矩阵。
    • IsScalar —— 检查方块矩阵是否为标量矩阵。

  2. 添加了复数矩阵和向量的共轭方法。此方法更改复数虚部的符号,并返回修改后的矩阵或向量。
  3. 强化方法隐藏规则。当派生类包含与基类中同名的方法时,默认情况下会调用派生类版本。要显式调用基类方法,现在需要一个限定符:
    struct A
      {
       int y;
      
       string func(double x)
         {
          return(__FUNCSIG__);
         }
      };
      
    struct B : public A
      {
       string func(int x)   // the method hides A::func
         {
          return(__FUNCSIG__);
         }
      };
      
    void OnStart(void)
      {
       B b;
       b.func(M_PI);          // according to new rules, it is a call to B::func
       b.A::func(M_PI);       // call the hidden method A::func
      }
    此更改简化了代码的可读性,消除了以前只伴随编译器警告的歧义。

    以前,编译程序会发出警告:
    不推荐的行为,隐藏方法调用将在未来的 MQL 编译器版本中禁用
    这一变更现已生效。

    对于许多版本,如果根据参数有更合适的隐藏方法可用,日志中仍会出现警告:
    由于方法隐藏的新规则,调用解析为 "string B::func(int)",而不是 "string A::func(double)"。
       参见函数 "B::func "的声明
       参见函数 "A::func "的声明
    将常量值从 "double(3.141592653589793) "截断为 "int(3)
  4. 现在禁止在同一范围内使用重复名称。例如,以前可以在单个文件中声明具有相同名称的输入参数和函数。这种重复已不再允许:
    input int somename=42;
    
    int somename(int x)
      {
       return(42);
      }
  5. 为枚举中的默认值添加了严格的类型检查。对于接受枚举的函数参数,现在不仅值必须匹配,确切类型也必须匹配:
    int somename(ENUM_TIMEFRAMES TF=PERIOD_CURRENT);
    
    int somename(ENUM_TIMEFRAMES TF=0)   // error, type mismatch for the default parameter value, despite having the same value
      {
       return(42);
      }
  6. 现在禁止在不同的枚举中使用相同的标识符。在一个枚举中声明的标识符不能再在同一作用域内的另一个中重用:
    enum A
      {
       Value
      };
      
    enum B
      {
       Value  // error, name 'Value' is already used in enumeration A
      };
      
    void OnStart(void)
      {
       enum C
         {
          Value // OK, 'Value' is not used within the OnStart scope
         };
      }
    匹配的名称可在不同的作用域中使用。

  7. 对模板初始化器函数引入了更严格的要求。使用初始化器函数创建矩阵/向量时,以下功能现已禁用:

    • 模板函数中的自动类型推断
    • 默认参数值

    现在必须明确指定所有模板参数和自变量: 
    template<typename T>
    void Initializer(matrix<T>& mat,int method=0);
    
    matrix<double> A(10,10,Initializer,42);          // error, Initializer must be explicitly typed
    matrix<double> A(10,10,Initializer<double>);     // error, missing 'method' parameter (default values no longer supported)
    matrix<double> A(10,10,Initializer<double>,42);  // OK
  8. 改进了 ONNX 支持。将 ulong 数组传递给函数时,添加了有符号类型的隐式转换,从而简化了 MQL5 与 ONNX 模型的集成。
    OnnxSetInputShape( ... , ulong_array );
    OnnxSetOutputShape( ... , ulong_array );
  9. 修正了编译器警告中与隐式字符串转换相关的类型显示问题。
  10. 更新了 Python 集成包。要安装更新,请运行以下命令:
    pip install --upgrade MetaTrader5

MetaEditor

  1. 修正了与 MQL5 Storage 一起使用的 "恢复到修订版" 命令。现在,在还原操作开始之前,会执行还原操作期间可能发生的版本之间的冲突评估。如果无法恢复,则取消操作。
  2. 更新用户界面翻译。

Tester

  1. 修正了采用交易所计算模式的账户的 OrderCalcMargin 函数。
  2. 修复了多币种 EA 交易系统可视化测试期间的图表切换问题。

网页端

  1. 修正了模拟和初始账户注册时的电子邮件验证问题。在某些情况下,确认码的输入字段未显示。
  2. 修正了在华为设备上使用浏览器时的账户连接问题。
  3. 修正了使用一次性密码时与账户的连接问题。在某些情况下,OTP 的输入字段在第一次登录尝试时丢失。
27 六月 2025
适用于 iPhone/iPad 的新版 MetaTrader 5:交易报告和额外的指标

最新版本的 MetaTrader 5 iOS 移动应用程序推出了一系列新功能,旨在帮助交易者随时随地了解金融市场。

  1. 添加了以方便的可视化格式表示交易结果的报告。它有助于评估交易表现,优化投资组合,找到降低风险和提高交易稳定性的方法。要分析您的策略,请转到历史记录部分并点击时段选择图标。接下来,选择时间段并点击“创建交易报告”。


    新的交易报告


    报告分为多个选项卡,每个选项卡都提供汇总信息:

    • 摘要 — 一段时间的交易概况:总体盈亏指标、出入金金额、结余、增长和红利图表以及其他交易结果。
    • 盈利/亏损 — 有关盈利和亏损交易的数据。参数按交易类型(手动交易、算法交易和复制交易)划分。结果可以从交易或资金的角度,按月份和年份进行分析。
    • 买入持仓/卖出持仓 - 指定时间段的动态买卖比率,以及买入和卖出的盈利能力。
    • 交易品种 - 按交易品种分析交易。在这里,您可以看到您在哪些交易品种上盈利或亏损、交易频率、交易图表以及货币量。
    • 风险 — 策略的主要风险特征:回撤和资金负载图表,以及盈利和亏损交易的比例。

  2. 添加了 ZigZag市场概况指标,以及新图表类型 — 平均 K 线图(Heikin-Ashi)。这些工具将增强市场分析和趋势识别。

    要添加新指标,请打开图表菜单,点击主窗口,然后从列表中选择它们。ZigZag 属于趋势指标,而市场概况属于成交量指标。


    市场概况和 ZigZag 指标


    要查看平均 K 线图,请点击图表并访问设置。


    平均 K 线图


  3. 已将交易信息添加到数据窗口。当将十字线悬停在包含交易的柱形上时,数据窗口将显示有关交易的一般信息:方向、编号、交易量、价格和财务结果,以及价格和指标值。


    增强的数据窗口


  4. 添加了在图表上显示数据窗口的快速模式。点击并按住主图表一秒钟以上,即可启用十字线模式以及数据窗口。一旦松开手指,图表就会返回正常模式。这样就可以快速查看柱形、指标和交易的确切值,而无需通过顶部面板切换到十字准线模式。
  5. 添加了一个单独的命令,用于调整其他指标窗口的大小和重新排序。长按图表上的指标子窗口可以执行相同的操作。此外,为了清晰起见,改进了子窗口编辑模式本身,增加了图标。


    用于调整指标子窗口大小和重新排序的新命令


  6. 优化了图表上的交易历史显示。应用程序现在可以显示数千笔交易,而不会显著降低性能。


安装最新版本的应用程序,解锁更多交易功能:



12 六月 2025
MetaTrader 5 平台更新 build 5120:改进和修复

程序端

  1. 修复了在 LinuxmacOS 上运行时的图形界面显示问题。
  2. 改进了平台更新机制。在更新过程中,MQL5 标准库将不再被完全覆盖,只有实际更改的文件才会被替换。
  3. 添加了应用程序重启时全屏视图模式的自动重置。现在,每次启动时都会显示完整的界面。

MQL5

  1. 在以下函数中启用了有符号/无符号类型转换的数组传递:

    • ArraySwap
    • WebRequest
    • CryptEncode
    • CryptDecode
    • StringToCharArray
    • CharArrayToString
    • StringToShortArray
    • ShortArrayToString
    • StructToCharArray
    • CharArrayToStruct

  2. 修复了使用 TerminalInfoInteger 函数获取活动图表上 MQL 程序按键状态的问题。
  3. 修复了针对枚举数组的 ArrayInitialize 函数操作。

MetaEditor

  1. 更新了 AI Assistant 编码助手的可用模型。现在支持所有 GPT-4.1 和 04-mini 模型。
  2. MQL5 存储中启用严格的文件状态验证。现在会检查文件哈希值,以防止错误提示。以前,与存储库版本相比没有实际本地更改的文件可能会被错误地标记为红色图标。
  3. 更新了用户界面的翻译。

5 六月 2025
新版 MetaTrader 5 平台 Build 5100:过渡到 Git 和 MQL5 Algo Forge 开发者中心、深色主题和界面改进

MetaEditor

  • 我们全面修订了 MQL5 Storage,用 Git 取代了 Subversion 作为版本控制系统。Git 是开发人员的全球标准,在代码管理方面提供了增强的可靠性和灵活性。

    • 灵活的分支和合并 — 为新功能或实验创建单独的分支,并将其轻松合并到主项目版本中。
    • 更快的存储库操作 — 与 Subversion 不同,Git 将所有数据存储在本地,大大加快了提交、版本切换和更改比较的速度。
    • 离线工作能力 — 无需持续的服务器连接:在本地提交更改,并在方便的时候将其推送到在线存储库。
    • 高级更改跟踪 — 轻松查看版本历史记录,跟踪带有时间戳和作者的修改,并恢复到以前的版本,而不会出现任何问题。
    • 卓越的合并功能 — 先进的比较和合并工具有助于最大限度地减少冲突,简化协作开发。

    协作开发迈上新台阶
    随着向 Git 的过渡,我们将推出 MQL5 Algo Forge,这是一个新的在线项目管理门户。它不仅仅是一个项目列表,它是一个面向开发人员的成熟社交网络 — 本质上,它是面向算法交易者的 GitHub。关注有兴趣的开发者,创建团队,轻松地在项目上进行协作。




    查看项目详细信息:结构、文件、提交、分支等。跟踪个人贡献、创建文档和在线共享项目。




    监控所有代码更改:检测新的、修改的和删除的代码行。如果出现问题,直接在项目中向开发人员分配任务。




    为了提高 Git 的可用性,我们重新设计了导航器和活动代码编辑窗口。我们还在 MetaEditor 工具栏上引入了一个专用的 Git 菜单:




    全面的 Git 文档即将发布。

程序端

  1. 为所有组件添加了对深色方案的支持,包括交易终端、MetaEditor 和可视化测试器。深色主题可在夜间提供更舒适的开发体验。使用 "查看" 菜单进行切换:




    在调整界面以支持不同主题的同时,我们还对对话框、菜单、面板和按钮的显示方式进行了大量改进,以提供更舒适的用户体验。在 MetaEditor 中,光标位置信息和文本输入模式指示器(INS/OVR)现在显示在右上角。取消了底部状态栏,以节省工作空间。

  2. 新增 12 个月 VPS 租赁选项。通过提前购买长期托管服务,您可以节省三分之一的总成本。




  3. 优化了内存使用。终端现在消耗更少的系统资源,从而提高了性能。
  4. 优化了账户交易历史的显示。平台现在可以正确显示数百万条记录。
  5. 在 "窗口" 菜单中添加了 "重置为默认" 命令。它可将所有界面元素,包括图表、导航器、策略测试器等,重置到原来的位置。
  6. 修正了导致仓位修改对话框在某些情况下冻结的错误。
  7. 修正了含有负价格未平仓位的数值计算。
  8. 修正了保证金率计算在交易品种规格为负价格时的问题。
  9. 修正了当前 MFE 和 MAE 值的计算,并在交易报告中显示其图表。
  10. 修正了图表子窗口中振荡器的缩放比例。振荡器的垂直缩放现在显示正确。
  11. 修正了全屏模式切换时订单簿和选项板的可见性问题。
  12. 账户交易历史中增加了仓位编号显示。使用快捷菜单启用相关列。
  13. 修正了期货和期权 "风险 "选项卡上的清算值计算。
  14. 修正了将新建账户数据复制到剪贴板的问题。在模拟或初步账户注册的最后一步,用户将获得账户详细信息:登录名、密码等。这些内容可以复制到剪贴板,保存到单独的文件中。相应的命令现在可以在 macOS 上正常运行。
  15. 修正了 VPS 日志部分的显示。在某些情况下,页面可能会显示错误。
  16. 修正了 Linux 上 HiDPI 显示器支持的问题。
  17. 更新用户界面的翻译。

MQL5

  1. 添加了矩阵乘法运算符 @。它遵循线性代数规则,允许矩阵和向量的乘法,以及向量的标量(点)积。

    矩阵乘法(矩阵 × 矩阵)
    matrix A(2, 3);
    matrix B(3, 2);
    matrix C = A @ B; // Result: Matrix C of size [2,2]
    矩阵乘法(矩阵 × 向量)
    matrix M(2, 3);
    vector V(3);
    vector R = M @ V; // Result: Vector R of 2 elements
    矩阵乘法(向量 x 矩阵)
    matrix M(2, 3);
    vector V(1, 2);
    vector R = V @ M; // Result: Vector R of 3 elements
    标量乘法(向量 × 向量)
    vector V1(1, 3), V2(1, 3);
    double r = V1 @ V2; // Result: Scalar
  2. StdVarCov 方法中添加了 "ddof" 参数。此参数定义了计算标准偏差时从分母中减去的自由度数。对于 Std 和 Var,默认参数是 0,对于 Cov,默认参数为 1。

    ddof 如何影响计算:

    • 默认情况下,ddof=0,表示计算总体标准偏差。
    • 如果 ddof=1,则该函数计算样本标准偏差,该偏差根据有限样本大小进行调整,这在分析数据子集时通常用于统计学。

  3. 添加了新的 OpenBLAS 方法:

    特征值和特征向量

    • EigenTridiagonal DC — 使用分治算法(LAPACK 函数为 STEVD)计算对称三对角矩阵的特征值和特征向量。
    • EigenTridiagonalQR — 使用 QR 算法(LAPACK 函数为 STEV)计算对称三对角矩阵的特征值和特征向量。
    • EigenTridiagonalRobust — 使用MRRR(多相对鲁棒表示)算法(LAPACK 函数为 STEVR)计算对称三对角矩阵的特征值和特征向量。
    • EigenTridiagonalBisect — 使用二分法(LAPACK 函数为 STEVX)计算对称三对角矩阵的特征值和特征向量。
    • ReduceToBidiagonal — 通过正交变换将一般实数或复数 m 乘 n 矩阵 A 简化为上或下双对角形式 B:Q**T * A * P = B。如果 m≥n,则 B 为上双对角矩阵;否则,B 为下双对角矩阵。(LAPACK 函数为 GEBRD)。
    • ReflectBidiagonalToQP — 将实数或复数矩阵 A 还原为对角线形式时,生成由 ReduceToBidiagonal 方法确定的正交矩阵 Q 和 P**T(或复数类型的 P**H):A = Q * B * P**T. Q 和 P**T 分别定义为基本反射器 H(i) 或 G(i) 的乘积。(LAPACK 函数为 ORGBR、UNGBR)。
    • ReduceSymmetricToTridiagonal — 通过正交相似变换将实对称或复厄米矩阵 A 简化为三对角形式 B:Q**T * A * Q = B。(LAPACK 函数为 SYTRD、HETRD)。
    • ReflectTridiagonalToQ — 生成正交矩阵 Q,该矩阵被定义为 n 阶 n-1 个基本反射器的乘积,由 ReduceSymmetricToTridiagonal 返回。

    • LinearEquationsSolution — 计算具有平方系数矩阵 A 和多个右手系线性方程组的解。
    • LinearEquationsSolutionTriangular — 计算具有正三角形系数矩阵 A 和多个右手系线性方程组的解。
    • LinearEquationsSolutionSy — 计算具有对称或赫米梯共轭矩阵 A 和多个右手系线性方程组的解。
    • LinearEquationsSolutionComplexSy — 计算具有复对称矩阵 A 和多个右手系线性方程组的解。
    • LinearEquationsSolutionGeTrid — 计算具有对称或赫米特共轭正定矩阵 A 和多个右手系线性方程组的解。
    • LinearEquationsSolutionSyPD — 计算具有一般(非对称)三对角系数矩阵 A 和多个右手系线性方程组的解。
    • LinearEquationsSolutionSyTridPD — 计算具有对称三对角正定系数矩阵 A 和多个右手系线性方程组的解。
    • FactorizationQR — 计算一般 m×n 矩阵的 QR 分解:A = Q * R(LAPACK 函数为 GEQRF)。
    • FactorizationQRNonNeg — 计算 m×n 矩阵的 QR 分解:A = Q * R,其中 R 是对角线项为非负的上三角矩阵(LAPACK 函数为 GEQRFP)。
    • FactorizationQRPivot - 计算一般 m-by-n 矩阵的 QR 分解,并进行列透视:A * P = Q * R(LAPACK 函数为 GEQP3)。
    • FactorizationLQ — 计算一般 m×n 矩阵的 LQ 分解:A = L * Q(LAPACK 函数为 GELQF)。
    • FactorizationQL — 计算一般 m×n 矩阵的 QL 分解:A = Q * L(LAPACK 函数为 GEQLF)。
    • FactorizationRQ — 计算一般 m×n 矩阵的 RQ 分解:A = R * Q(LAPACK 函数为 GERQF)。
    • FactorizationPLU — 对 M 乘 N 的普通矩阵 A 进行 LU 因式分解,计算时使用部分透视和行间交换(LAPACK 函数为 GETRF)。
    • FactorizationPLUGeTrid — 使用带部分透视和行交换的消元法(LAPACK 函数为 GTTRF)计算一般(非对称)N 乘 N 三对角矩阵 A 的 LU 因式分解。
    • FactorizationLDL — 使用 Bunch-Kaufman 对角透视法(LAPACK 函数为 SYTRF 和 HETRF)计算实对称或复赫米特矩阵 A 的因式分解。
    • FactorizationLDLSyTridPD — 计算对称正定三对角矩阵 A 的因式分解(LAPACK 函数为 PTTRF)。
    • FactorizationCholesky — 计算实对称或复赫米特正定矩阵 A 的因式分解(LAPACK 函数为 POTRF)。
    • FactorizationCholeskySyPS — 计算实对称(复赫米特)正半定 n-by-n 矩阵(LAPACK 函数为 PSTRF)的带完全透视的 Cholesky 因式分解。

  4. 添加了 Random 函数和方法,用于用随机值填充向量和矩阵。随机值在指定范围内均匀生成。
    static vector vector::Random(
      const ulong   size,       // vector length
      const double  min=0.0,    // min value
      const double  max=1.0     // max value
       );
    
    static matrix matrix::Random(
      const ulong   rows,       // number of rows
      const ulong   cols        // number of columns
      const float   min=0.0,    // min value
      const float   max=1.0     // max value
       );
  5. 添加了对整数类型其它别名的支持。这将简化从 C 和 C++ 等其他语言的代码移植。

    这些别名不会引入新类型,而是为 MQL5 中的现有类型提供替代名称。它们可以在基础类型适用的所有环境中使用。

    • int8_t
    • uint8_t
    • int16_t
    • uint16_t
    • int32_t
    • uint32_t
    • int64_t
    • uint64_t

  6. 添加了用于检测终端配色方案的新函数:


    要检测配色方案的变化,请使用 OnChartEvent 处理函数。当主题改变时,CHARTEVENT_CHART_CHANGE 事件会被触发两次。

  7. 修正了编译包含 Array::Reserve 方法的代码时导致 MetaEditor 崩溃的错误。"Reserve" 方法不会改变数组大小,但会为指定数量的元素保留空间,以防止在添加新元素时重新分配内存。
  8. 修正了 Array::Push 方法的行为,该方法用于在数组末尾添加新元素。该问题出现在具有预分配缓冲区空间的数组中。
  9. 解决了与 OpenCL 协同工作的函数问题。

MetaTester

  1. 加速了交易策略的优化
  2. 修正了一个 Bug,在某些情况下,该 Bug 会导致测试器代理在执行来自 MQL5 云网络的任务时占用过多内存。

网页端

  1. 修正了账户连接对话框中的密码保存选项。
  2. 修正了图表移动按钮。在某些情况下,使用这些按钮会导致图表消失。
  3. 更正了真实账户注册表中 “中间名” 字段的验证。现在它是可选的。
  4. 修复开设模拟账户的问题。在某些情况下,用户被错误地重定向到经纪商的网站。
  5. 修正了开设模拟账户和真实账户按钮的可见性。如果经纪商禁用了相应功能,这些按钮现在将被隐藏。
  6. 修正了模拟账户开户表单中 "存款" 字段的行为。
  7. 修正了合同规范中 "交易" 字段的显示问题。
  8. 修正了 "市场报价" 窗口中的交易品质搜索栏。现在,"X" 按钮会正确显示,用于退出搜索模式。
  9. 修正了账户开设表单中电子邮件确认代码字段的工具提示显示问题。
18 三月 2025
MetaTrader 5 iPhone/iPad:标尺、图表的文本对象和柱形计时器

MetaTrader 5 iOS 移动应用程序的最新版本引入了一系列便捷的图表功能,并进行了重要的稳定性改进,以获得更流畅的用户体验。

  1. 添加了用于在图表上创建自定义标签的文本对象。打开图表对象菜单,点击“添加文本”。接下来,输入所需的文本,并在图表上选择一个点来放置标签。一个对象有两个点:一个用于移动,另一个用于调整方向。



    用于在图表上创建自定义标签的文本对象



    我们还添加了一个小的图表对象菜单,它在创建对象后立即出现在屏幕底部。现在,您可以修改关键属性,而无需导航到完整对象菜单。

  2. 添加了倒计时器,显示当前柱关闭前的剩余时间。它适用于所有时间框架,从分钟图到每日图。对于那些策略依赖于柱形开启和关闭的交易者来说,这一功能尤其有用。

    要启用计时器,请转到图表设置。倒计时显示在当前价格下方的垂直刻度上。


    倒计时器显示当前柱关闭前的剩余时间



  3. 增强的十字准线模式 - 现在可以用作标尺。激活十字准线并将其放置在所需的起点,然后点击端点以测量距离。工具提示将显示价格、百分比和柱数的差异。


    增强型十字准线模式 - 现在可以用作标尺



  4. 增加了交易历史中持仓编号的显示。


    交易历史中增加持仓编号显示



  5. 如果交易工具使用了延迟,则改进报价延迟指示。此信息现在显示在图表上,同时“市场报价”部分的图标变得更加突出。



    改进了报价延迟的显示



  6. 集成支付系统中增加了对新提供商的支持。
  7. 增加了开设模拟账户时输入出生日期的字段。
  8. 改进了聊天:修复了头像显示问题,添加了文档查看器,启用了对 *.webp 图像的支持,并改进了搜索功能。

下载最新版本的应用程序,增强您的交易体验:

App Store 中的 MetaTrader 5

13 十二月 2024
MetaTrader 5 平台 Build 4755:总体改进
此更新修复了策略测试器中计算三倍库存费时出现的错误,该错误会在某些测试条件组合下发生。此外,还实现了一些小的改进和修复,以进一步提高平台的稳定性。
6 十二月 2024
MetaTrader 5 平台 Build 4730:扩展 OpenBLAS 支持和总体性能优化

程序端

  1. 更改了仓位、订单和交易值的计算方法。该值现在以账户存款货币而不是交易品种的基准货币显示:


    仓位、订单和交易的价值现在以账户存款货币显示

  2. 添加了在开设模拟账户时输入出生日期的字段。


    添加了在开设模拟账户时输入出生日期的字段


  3. 修复了图表子窗口中显示的指标缩放比例。对于某些振荡指标,以前可能会错误地选择最小和最大缩放值。
  4. 优化并加快了分时报价数据和历史价格的解包,这将提高图表加载速度。
  5. 修复了内部电子邮件撰写窗口中的文本颜色编辑功能。
  6. 更新了用户界面翻译。

MQL5

  1. 添加了新的 OpenBLAS 方法:

    • EigenSolver2 - 计算一对普通方阵的广义特征值和特征向量(lapack 函数为 GGEV)。
    • EigenSolverX - 在专家模式下计算正方形矩阵的特征值和特征向量,即能够影响计算算法并获取相应的计算数据(lapack 函数为 GEEVX)。
    • EigenSolver2X - 在专家模式下计算一对正方形矩阵的特征值和特征向量,即能够影响计算算法并获取相应的计算数据(lapack 函数为 GGEVX)。
    • EigenSolverShur - 计算特征值、舒尔形式的上三角矩阵和舒尔向量矩阵(lapack 函数为 GEES)。
    • EigenSolver2Shur - 计算一对正方形矩阵的特征值、广义特征向量、广义舒尔形式以及左右舒尔向量(lapack 函数为 GGES)。
    • EigenSolver2Blocked - 使用分块算法(lapack 函数为 GGEV3)计算一对正方形矩阵的广义特征值和特征向量。
    • EigenSolver2ShurBlocked - 对于一对正方形矩阵,使用分块算法计算特征值、广义特征向量、广义舒尔形式以及左右舒尔向量(lapack 函数为 GGES3)。
    • EigenSymmetricRobust - 使用多重相对稳健表示、MRRR 算法计算对称或厄米特(复共轭)矩阵的特征值和特征向量(lapack 函数为 SYEVR、HEEVR)。
    • EigenSymmetricBisect - 使用分段算法计算对称或厄米特(复共轭)矩阵的特征值和特征向量(lapack 函数 SYEVX、HEEVX)。

  2. 复数矩阵添加了新方法:

    • TransposeConjugate - 创建共轭变换矩阵。
      matrix<complex<T>> matrix<complex<T>>::TransposeConjugate(void) const;
      该方法返回一个新的共轭变换矩阵,其中原始矩阵的元素被转置并转换为它们的复共轭。

      如果出现错误,则返回空矩阵。使用 GetLastError 函数获取错误代码。

    • CompareEqual - 两个矩阵的绝对比较。
      int matrix<T>::CompareEqual(const matrix<T>& mat) const
      返回值为:

      • -1 - 如果矩阵 A 的元素小于矩阵 B 的对应元素。
      • 0 - 如果矩阵 A 和 B 的所有元素都相同。
      • 1 - 如果矩阵 A 的元素大于矩阵 B 的对应元素。

      如果输入数据无效,该方法也会返回错误。要获取错误代码,请使用 GetLastError 函数。

  3. 为相应的集成包添加了 Python 支持(最高版本 3.13)。要更新软件包,请运行以下命令:

    pip install --upgrade MetaTrader5

  4. 修复了跳过第一个计时器事件的问题。如果在OnTimer处理函数中启动了计时器,则发生错误。

MetaEditor

  • 修正了调试器模式下输入变量值的计算。在某些情况下,显示的不是值,而是 "未知标识符" 的信息。

Tester

  • 修正了在使用汇率工具测试应用程序时搜索货币转换所需交叉汇率的问题。

网页端

  1. 添加了对大额订单请求执行类型的支持。
  2. 添加了对经纪商拒绝请求原因的扩展描述支持。
  3. 修复了账户开户表格。现在会根据经纪商设置要求提供信息。
  4. 修复了注册模拟账户时的国家检测问题。
  5. 修正了显示一键交易警告的对话框中的对齐方式。
11 十月 2024
MetaTrader 5 build 4620:MQL5 错误修复和新的 OpenBLAS 方法

程序端

  1. 修正了一个错误,在某些情况下,该错误会导致返回不完整的分时报价历史记录
  2. 修正了用英语以外的语言选择交易品种时的自动完成功能。在搜索栏中输入交易品种名称时,系统会根据输入的字符自动推荐相关选项。现在,搜索功能可在所有本地语言中正确运行,且不区分大小写。

MQL5

  1. MQL5 文档中新增了 OpenBLAS 方法的说明。目前,已有 15 种矩阵和向量的新方法,不久还将增加更多方法。
    OpenBLAS 是一种高效的高性能计算开源解决方案,尤其是在处理数据集时。

    函数

    操作

    SingularValueDecompositionDC

    奇异值分解(SVD),分而治之算法;被认为是其他 SVD 算法中最快的算法(lapack 函数为 GESDD)。

    SingularValueDecompositionQR

    奇异值分解,QR 算法;被认为是经典的 SVD 算法(lapack 函数为 GESVD)。

    SingularValueDecompositionQRPivot

    奇异值分解、带枢轴算法的 QR(lapack 函数为 GESVDQ)。

    SingularValueDecompositionBisect

    奇异值分解,分段算法(lapack 函数为 GESVDX)。

    SingularValueDecompositionJacobiHigh

    奇异值分解,Jacobi 高级算法(lapack 函数为 GEJSV)。

    SingularValueDecompositionJacobiLow

    奇异值分解,Jacobi 低级算法(lapack 函数为 GESVJ)。在某些情况下,该方法计算小奇异值及其奇异向量的精确度远远高于其他 SVD 程序。

    SingularValueDecompositionBidiagDC

    奇异值分解,双对角矩阵的分而治之算法(lapack 函数为 BDSVDX)。

    SingularValueDecompositionBidiagBisect

    奇异值分解,双对角矩阵的分段算法(lapack 函数为 BDSVDX)。

    EigenSolver

    使用经典算法计算正方形矩阵的特征值和特征向量(lapack 函数为 GEEV)。

    EigenSymmetricDC

    使用分而治之算法计算对称或 Hermitian(复共轭)矩阵的特征值和特征向量(lapack 函数为 SYEVD、HEEVD)。

    SingularSpectrumAnalysisSpectrum

    基于特征值计算光谱成分相对贡献的方法函数

    SingularSpectrumAnalysisForecast

    利用输入时间序列的频谱成分计算重建和预测数据的方法函数。

    SingularSpectrumAnalysisReconstructComponents

    用于计算输入时间序列的重构成分及其贡献的方法函数。

    SingularSpectrumAnalysisReconstructSeries

    利用第一个 component_count 组件计算重建时间序列的方法函数。

  2. 修正了运行使用 matrix::CopyRates方法的旧版本可执行 MQL5 程序文件 (.ex5) 时出现的错误。在新版本下编译的文件不会出现这些错误。
  3. 修正了 union 中允许的订单类型检查。

MetaTester

  • 修正了在某些情况下,自定义指标去初始化时可能发生的崩溃。

4 十月 2024
MetaTrader 5 平台 build 4585:性能改进

程序端

  • 修复了停止 MQL5 程序 分析 时在某些条件下可能发生的崩溃。

MetaEditor

MetaTester

  • 修复了重新运行单次测试时在某些条件下发生的崩溃。
27 九月 2024
新版 MetaTrader 5 平台 build 4570:网页端版本的增强以及在 MQL5 中集成 OpenBLAS

客户端

  1. 如果账户订阅了信号,则限制访问 MQL5 交易和历史函数。

    在账户中检测到信号订阅时(无论当前终端是否启用复制),禁止调用任何MQL5 交易函数,包括接收开启订单和仓位、接收历史记录以及执行交易操作。日志中会记录相应的警告:
    'XXX':检测到信号订阅,禁用 MQL5 和 Python 中的交易和历史访问函数
    这些限制也适用于Python 交易函数:positions_total, positions_get, orders_total, orders_get, history_orders_total, history_orders_get, history_deals_total, history_deals_get, order_check, 和 order_send。

    如果取消了账户上的信号订阅,或连接到另一个没有订阅信号的账户,则会解除限制并记录以下信息:
    'XXX':未检测到信号订阅,已启用 MQL5 和 Python 中的交易和历史访问功能
    如果账户上的限制处于活动状态,MQL5 函数将返回以下响应代码:

    • OrderSend 和 OrderSendAsync 返回 RET_REQUEST_AT_DISABLED_CLIENT
    • OrdersTotal 和 PositionsTotal 返回 0
    • PositionGetSymbol、PositionSelect、PositionSelectByTicket 和 PositionGetTicket 返回 ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
    • OrderGetTicket 和 OrderSelect 返回 ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
    • HistorySelect 返回 ERR_MQLAPI_TRADE_DEAL_NOT_FOUND

  2. 修正、优化并加速了分时报价历史请求,并可导出为 CSV/HTML 文件。
  3. 添加了Microsoft Edge WebView2 支持,以便在 macOS 上的交易平台中显示 HTML 内容。与之前的MSHTML相比,新组件通过提供对现代技术的访问进一步扩展了内容显示功能。向 WebView2 的过渡改善了市场、信号、VPS 和其他部分的外观,提高了它们的性能,并创建了更具响应性的界面。

  4. 修复了内部邮件发送窗口中的上下文菜单。
  5. 修复了交易工具选择对话框中的过滤问题。 不再需要先输入工具名称来隐藏过期的资产工具。
  6. 修复了在合同规格窗口中计算保证金要求的问题。交易所股票和债券工具以前可能会发生计算错误。
  7. 改进了先进先出账户的批量平仓功能。此类账户不再显示不兼容的操作类型,包括关闭所有盈利/亏损仓位、同向仓位和反向仓位。
  8. 修复了用户无法在遵循先进先出规则平仓的账户中下达反向挂单的问题。
  9. 修复了计算持有交易所期货工具仓位账户的清算价值问题。
  10. 修复了交易所债券和交易所 MOEX 债券工具仓位的浮动利润计算问题。
  11. 当平台在没有先前添加帐户的情况下启动时,禁用了自动模拟帐户创建。
  12. 改进注册账户时的姓名和电子邮件验证。
  13. 修复了锁仓持仓保证金计算的问题。在某些情况下,使用账户浮动保证金(根据当前仓位的交易量/价值计算)时可能会出现错误。
  14. 修复了模拟账户开设对话框中 "下一步" 按钮状态的更新。输入电话或电子邮件确认码后,在某些情况下,该按钮可能会保持不活动状态。
  15. 更新了用户界面翻译。

MQL5

  1. 添加了与 OpenBLAS 矩阵计算库的本地集成。

    OpenBLAS 是一个高性能的开源线性代数库,它实现了 BLAS(基本线性代数子程序)和一些 LAPACK 函数。OpenBLAS 旨在提高计算性能,尤其是矩阵和矢量运算性能,这些运算通常用于机器学习、数值方法和模拟等科学和工程任务。

    OpenBLAS 的主要功能:

    • 多线程支持:OpenBLAS 可以有效地利用多个处理器内核进行并行计算,大大加快了多处理器系统的运行速度。
    • 优化处理器架构:OpenBLAS 包括针对各种处理器(如 Intel、AMD、ARM 等)的优化版本。程序库可自动检测处理器特性(支持的指令集,如 AVX/AVX2/AVX512),并选择最合适的函数实现。
    • 广泛的 BLAS 操作支持:OpenBLAS 实现了核心 BLAS 函数,包括矢量运算(如矢量加法和点积)、矩阵运算(乘法)以及矢量-矩阵运算。
    • LAPACK 兼容性:该库支持LAPACK(线性代数包)函数,用于更复杂的线性代数操作,如求解线性方程组、计算矩阵特征值等。
    • 高性能:与其他 BLAS 库相比,由于针对特定处理器架构进行了手工优化,OpenBLAS 通常能取得更好的效果。

    OpenBLAS 广泛应用于涉及数值计算的应用程序中:

    • 训练神经网络和其他机器学习任务。
    • 科学计算(如物理过程建模)。
    • 处理和分析大量数据。

    MQL5 目前提供以下方法:

    奇异值分解(SVD):

    • SingularValueDecompositionDC - 分而治之算法;被认为是其他 SVD 算法中最快的算法(lapack 函数 GESDD)。
    • SingularValueDecompositionQR - QR 算法;被认为是经典的 SVD 算法(lapack 函数 GESVD)。
    • SingularValueDecompositionQRPivot - 带枢轴的 QR 算法(lapack 函数 GESVDQ)。
    • SingularValueDecompositionBisect - 平分算法(lapack 函数 GESVDX)。
    • SingularValueDecompositionJacobiHigh - Jacobi 高级算法(lapack 函数 GEJSV)。
    • SingularValueDecompositionJacobiLow - Jacobi 低级算法(lapack 函数 GESVJ)。在某些情况下,该方法计算小奇异值及其奇异向量的精确度远远高于其他 SVD 程序。
    • SingularValueDecompositionBidiagDC - 对角矩阵的分而治之算法(lapack 函数 BDSVDX)。
    • SingularValueDecompositionBidiagBisect - 对角矩阵的分段算法(lapack 函数 BDSVDX)。

    Eigen 方法:

    • EigenSolver - 使用经典算法(lapack 函数 GEEV)计算正方形矩阵的特征值和特征向量。
    • EigenSymmetricDC - 使用分而治之算法(lapack 函数 SYEVD、HEEVD)计算对称或 Hermitian(复共轭)矩阵的特征值和特征向量。

    详细文档将会很快提供。

  2. ENUM_SYMBOL_SWAP_MODE 枚举中添加了 SYMBOL_SWAP_MODE_CURRENCY_PROFIT 值。如果 SymbolInfoInteger 函数返回此值,账户上的库存费将以利润计算货币计费。
  3. 扩展了 ONNX Runtime 支持。添加了新类型的机器学习操作,使您可以运行更高级的神经模型。
  4. 我们继续过渡到更高效的MQL5编译器,该编译器已经用于某些功能。这一转变将有助于进一步优化和加快程序执行速度。
  5. 添加了新的数据类型,以支持 OpenBLAS 库:

    • complexf - 用浮点数表示的复数
    • vectorcf - 包含 complexf 类型元素的向量
    • matrixcf - 包含 complexf 类型元素的矩阵

  6. 在处理违反 URL 格式规则、包含重定向错误或有长长的 DNS 备选名称列表的网站时,改进了 WebRequest 操作。
  7. 修复了同时为多个变量分配矩阵或向量类型的问题。

MetaEditor

  1. 更新了人工智能助理(AI Assistant)的可用模型。现在,更先进的 GPT-4o mini 取代了 GPT-3.5 Turbo。还增加了 01-mini 模型。
  2. 修正了调试器错误,由于该错误,变量值可能无法在观察窗口中更新。
  3. 更新了用户界面翻译。

MetaTester

  1. 修复了保存自定义交易品种设置中的保证金系数。
  2. 修复了在某些条件下测试通过之间可能出现的内存泄漏。


网页端

  1. 添加了十字光标模式,可在图表上查看精确数值和测量距离。

    点击左侧面板上的相关按钮,启用该模式。将十字准线移至图表上的任意一点,即可在相应的坐标轴上看到日期和价格。要测量距离,请单击图表上的任意一点,然后按住鼠标键将光标拖到另一点。


    添加了用于在图表上查看精确数值和测量距离的十字准线模式


    您还可以使用快捷键:按下鼠标中键启用十字准线,使用 Esc 键或单击鼠标右键禁用十字准线。

  2. 添加了根据柱形收盘价绘制的简单折线图:


    添加了根据柱形收盘价绘制的简单折线图


  3. 在移动版视图中,增加了在 "市场观察" 部分显示附加列的功能。要进行配置,请切换到表格模式并单击"...":


    移动版视图中 "市场观察" 的附加列


  4. 已添加热键:

    • Home - 滚动到图表开头(最早日期)
    • End - 滚动到图表末尾(最新日期)
    • Page Up - 将图表向后滚动一个屏幕
    • Page Down - 将图表向前滚动一个屏幕

  5. 增强账户连接存储的数据安全性。
  6. 改进了图表的滚动、拖动和缩放功能。
  7. 加快了网页端平台在网页上的初始加载速度。
  8. 优化了柱形的加载。
  9. 修复了交易所债券和交易所 MOEX 债券工具仓位的浮动利润计算问题。
  10. 修正了图表上一键式交易面板的交易量输入。
  11. 修复了更新市场深度中订单交易量的错误。在某些情况下,数值可能会延迟更新。
  12. 修复了下订单时检查最低允许交易量的问题。
  13. 修复了锁仓持仓保证金计算的问题。在某些情况下,使用账户浮动保证金(根据当前仓位的交易量/价值计算)时可能会出现错误。
  14. 修复了一键式交易面板上的买入和卖出按钮在改变交易量之前可能无法使用的错误。

21 六月 2024
MetaTrader 5平台build 4410:性能改进
MetaTrader 5平台build 4410:性能改进

客户端

  • 修正程序端崩溃问题,在某些情况下,启动测试时可能会发生程序端崩溃。

MQL5

网页端

  1. 修正浏览器与网页端兼容性的验证问题。在某些情况下,用户可能会错误地收到一条显示其浏览器不支持的信息。
  2. 修复开设模拟账户的问题。
  3. 其他小问题的修正和改进。

更新将通过实时更新系统提供。

MetaTrader 5 Android

  1. 完全重新设计了平板电脑版本的界面。现在,新界面采用了更现代设计,这已经在平台的iOS移动版和网页端上得到验证。现在主要版块位于屏幕底部,图表操作命令位于屏幕左侧。




  2. 持仓历史部分添加快捷菜单,可快速访问相应交易品种的交易对话框或图表。
  3. 隐藏切换到交易品种(不可交易)的对话框的命令。
  4. 修复MetaQuotes-Demo服务器的运行问题。

通过Google Play华为 AppGallery或下载APK文件更新手机应用程序。

7 六月 2024
MetaTrader 5平台build 4380:性能改进

程序端

  1. 修正在某些情况下可能导致实时更新系统无法正常运行的错误。
  2. 添加新热键Alt+X,用于打开EA交易列表。
  3. 修正崩溃日志中的错误报告。

MetaTester

  1. 修正设置位图图形对象的某些属性时出现的错误。
  2. 当在虚拟环境中操作且处理器不支持AVX指令集时,现在禁止测试代理连接到MQL5云网络

网页端

  1. 修正图表上一键交易面板的操作错误。
  2. 修正在图表上启用一键交易面板时打开的警告对话框。
31 五月 2024
MetaTrader 5 Build 4350:网络平台中的更多分析对象和MetaEditor中的欢迎页

MetaEditor

  1. 添加欢迎页来帮助用户开始算法交易和应用程序开发之旅。



    新手交易者资料
    “简介”部分介绍了MQL5.com上提供的学习资料:语言文档、书籍、文章、开发者论坛和代码库。它还推出了您可以应用知识并将知识货币化的服务:应用程序市场、自由职业者服务和交易信号。

    在文档和书籍部分,您可以找到可用学习资料更详细的描述。

    适用于开发人员的功能
    “新功能”部分提供了一系列重要信息,以帮助开发人员了解最新情况:


    此外,在这里您还可以找到最近打开的文件列表,以便快速访问。



    对于在市场上积极销售其应用程序的用户,“我的销售”报告为评估其表现提供了有价值的工具。它提供对以下内容的访问权限:

    • 一段时间内的综合销售和下载统计数据。
    • 销售地理位置,深入了解您的产品最受欢迎的地区。这可以为进一步的项目扩展提供想法,例如本地化为特定语言或针对特定地区的有针对性的广告活动。
    • 根据销售量和营业收入得出的畅销产品数据。可以根据许可证类型过滤图表:完整许可证或特定期限的租赁许可证。此外,在这里您还可以看到产品价格变化的图表。所有这些都将帮助您了解您的客户。
    • 每个产品的详细下载和销售统计数据。


  2. 改进内置搜索。顶部搜索栏现在专门用于搜索当前文档或本地文件中的文本。对于学习资料和代码的全局搜索,请使用工具箱中的单独部分。


  3. AI Assistant中添加对最新ChatGPT模型 - GPT-4o的支持。这可用于自动完成代码并获取提示。您可以在MetaEditor设置中选择新模型。


  4. 更新用户界面翻译。

程序端

  1. 提高在交易品种规格中显示计算价格的精度。
  2. 修正交易报告中的MFE和MAE计算。
  3. 修正按国家和货币保存和恢复 经济日历过滤设置的问题。
  4. 修正模板在图表中的应用问题。现在,如果图表启用交易历史的显示 ,则应用模板后相应的对象不会消失。
  5. 修正期权看板中的错误。在某些情况下,在看板上添加交易品种可能会导致平台冻结。
  6. 修正持仓编辑对话框中的错误。在某些情况下,可能会输入错误的水平而不是当前的止损和止盈值。
  7. 更新用户界面翻译。

MQL5

  1. 优化并加速ArrayResize函数。在某些条件下,该函数执行速度可提高40%。
  2. 更新对ONNX的支持。
  3. 修正服务应用程序中MessageBox函数调用的问题。无论用户在对话框中按下哪个按键,该函数都会返回空值。
  4. 修正在某些情况下导致MQL5程序初始化不完整的错误。
  5. 修正解析一些的错误。使用大量常量时发生错误。

MetaTrader 5网页端

  1. 扩展可用分析对象的列表。现在,您可以利用标尺来测量时间和价格,绘制图形(矩形、椭圆形、三角形和圆形),并向图表添加标签。所有对象都可以在左侧面板中找到:


  2. 添加重命名对象的功能。
  3. 改进与经济日历的整合。优化并加速数据请求。
  4. 加速图表操作。
  5. 加快应用程序启动和与交易账户连接的速度。
  6. 修正管理图表上交易操作显示的设置。
  7. 修正合约规格中预付款要求的显示。
  8. 修正在历史记录部分账户状态的显示。窄屏设备上可能会出现问题。
  9. 修正市场深度变化的显示。
22 三月 2024
MetaTrader 5 build 4260:其他改进

程序端

  1. 修正订阅服务中订阅免费产品时出现的错误。在某些情况下,对话框中可能不显示相关按键。
  2. 更新用户界面的翻译。

MQL5

  1. 扩展对键盘事件的支持:

    • OnChartEvent处理程序添加CHARTEVENT_KEYUP事件。它可以追踪与键释放相关的事件。
    • 添加无效键处理功能。这些键可以修改最后按下的键所生成的字符的外观。例如,在希腊语的布局中,重读元音ά、έ、ύ等可以通过先按";"再按元音来生成。使用TranslateKey函数可以追踪这类键的按下情况。
    • 改进TranslateKeyTerminalInfoInteger函数。现在,在OnChartEvent中接收CHARTEVENT_KEYUP或CHARTEVENT_KEYDOWN事件时,可以获得事件发生时的完整键盘状态。例如,如果用户按下Z键,就能确定当时按的是Ctrl键还是Shift键。对于其他事件,函数运行如从前一样,返回当前时刻的键盘状态。

  2. 更新Alglib库。更新后,将修改CMatrixDouble和CMatrixComplex类中的以下方法:
    vector<double/complex> operator[](const int i) const;
    vector<double/complex> operator[](const ulong i) const;
    取而代之的是一个具有恒定返回值的方法:
    const vector<double/complex> operator[](const ulong i) const;
    在新版Alglib中,mat[row][col]=x的代码运行方式与旧版不同,因此此次修改将有助于在适当的位置捕捉结果的错误使用。以前,这表示写入一个矩阵。现在,该值被写入一个临时对象向量<double/complex>,记录后会立即销毁。

    在返回值中添加const可以使用mat[row][col]=x。由于mat[row]现在返回的是常量向量,因此尝试用mat[row][col]覆盖其元素将导致编译错误。

  3. 修正在某些条件下可能导致错误操作ChartGet*函数的错误。

MetaEditor

  1. 添加对MQL5算法交易的神经网络一书内容的搜索。新选项与之前出版的交易者MQL5编程一书出现在同一部分。



Tester

  1. 修正使用大量远程代理时的优化问题。在某些情况下,该错误可能会导致CPU占用率过高。

MetaTrader 5网页端

  1. 修正在交易所执行模式下交易品种限价单的设置。现在,当所下订单的价格相对于当前价格发生变化(变高或变低)时,订单类型将不会像其他类型的交易品种那样,从买入限价(Buy Limit)切换到卖出限价(Sell Limit),反之亦然。因此,用户可以发出高于市场的买入限价(Buy Limit)订单和低于市场的卖出限价(Sell Limit)订单,从而确保交易价格得到限制。
  2. 修正市场报价中选定交易品种计数器的显示问题。
7 三月 2024
MetaTrader 5 build 4230:更多内置应用程序和扩展ONNX支持

程序端

  1. 在标准平台包中添加28个新EA交易和12个新指标。这些应用程序可在导航器的EA交易\Free Robots和指标\Free Indicators部分获得。每个程序均以源代码形式提供,并附有详细注释,可帮助您学习MQL5语言。

    EA交易根据技术指标和蜡烛图形态实施交易策略,例如 3 Black Crows – 3 White Soldiers,Bullish Engulfing – Bearish Engulfing,Bullish Harami – Bearish Harami等。新指标是流行渠道的实施情况:Camarilla、DeMark、Donchian、Fibonacci和Keltner等。



  2. 推出纳斯达克市场数据订阅的准备工作正在进行中。通过该平台,交易者将能够访问来自最大交易所之一的数百种交易品种的实时报价和深入价格历史记录。任何在MetaQuotes-Demo服务器上拥有模拟账户和拥有MQL5.community账户的用户都可以订阅。



    首先,您只需购买订阅并将相关交易品种添加到您的市场报价中。您可以将这些交易品种用作常规交易品种:打开图表,使用对象和指标对其进行分析,并在策略测试器中运行EA交易。访问所有信息的方式与您与交易商合作的普通交易品种一样。

  3. 改进交易品种规格中的预付款部分。该部分现在提供每个交易品种的预付款率和计算值。



    修正某些交易品种类型的预付款显示错误。

  4. 在“帮助”菜单中添加MQL5 Telegram频道的链接。该频道定期分享开发人员感兴趣的内容,包括对新编程文章的评论以及来自 代码库的免费EA和指标。订阅该频道以时刻关注更新消息,确保您不会错过重要信息。



  5. 自定义配置文件的[StartUp]部分添加对ShutdownTerminal参数的支持。使用此参数启动平台以使用脚本执行一次性任务。例如,您有一个用于截图图表屏幕的脚本。您可以创建一个配置文件,与平台一起启动该脚本。如果将ShutdownTerminal设置为“是”添加到该文件中,平台将在脚本完成后立即自动关闭。
  6. 加强对网络协议和市场产品的保护。
  7. 禁用对模拟账户信号服务的支持。要获取有关练习账户的更多统计信息,请使用新交易报告。它提供了大量的指标来描述您的策略盈利能力和风险,包括增长图、平衡图和权益图,以及按方向和交易品种划分的交易分布图等。
  8. 修正“帮助”菜单中交易商协议链接的显示。
  9. 改进租用VPS时最佳服务器的选择。
  10. 修正在导航器中切换版块时刷新订阅页面的问题。
  11. 修正在开设初始账户时更新协议列表的问题。
  12. 更新用户界面翻译。

MQL5

  1. ENUM_MQL_INFO_INTEGER枚举中添加MQL_STARTED_FROM_CONFIG属性。如果脚本/EA交易从配置文件的StartUp部分启动,则返回true。这意味着脚本/EA交易已在启动程序端的配置文件中指定。
  2. 我们继续扩大对ONNX模型的支持。

    机器学习任务并不会一直需要更高的计算精度。为了加快计算速度,一些模型使用较低精度的数据类型,例如Float16甚至Float8。为了允许用户将相关数据输入到模型中,MQL5中添加了以下函数:
    bool ArrayToFP16(ushort &dst_array[],const float &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP16(ushort &dst_array[],const double &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const float &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const double &src_array[],ENUM_FLOAT8_FORMAT fmt);
    
    bool ArrayFromFP16(float &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayFromFP16(double &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayFromFP8(float &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayFromFP8(double &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    由于16位和8位的实数格式可能不同,因此转换函数中的“fmt”参数必须指示需要处理哪种数字格式。对于16位版本,使用新的枚举NUM_FLOAT16_FORMAT,当前具有以下值:

    • FLOAT_FP16 – 标准16位格式也称为 half
    • FLOAT_BFP16 – 特殊的脑浮点格式。

    对于8位版本,使用新的ENUM_FLOAT8_FORMAT枚举,当前具有以下值:

    • FLOAT_FP8_E4M3FN – 8位浮点数,4位表示指数,3位表示尾数。通常用作系数。
    • FLOAT_FP8_E4M3FNUZ — 8位浮点数,4位表示指数,3位表示尾数。支持NaN,不支持负零和Inf。通常用作系数。
    • FLOAT_FP8_E5M2FN – 8位浮点数,5位表示指数,2位表示尾数。支持NaN和Inf。通常用于渐变
    • FLOAT_FP8_E5M2FNUZ — 8位浮点数,5位表示指数,2位表示尾数。支持NaN,不支持负零和Inf。也用于渐变。


  3. 添加机器学习中使用的新矩阵和向量方法:


  4. ONNX Runtime已更新至1.17版本。有关发布说明的详细信息,请参阅GitHub
  5. Python集成包更新至5.0.4200版本,添加对Python 3.12的支持。使用“pip install -- pgrade MetaTrader5”命令更新您的软件包以获取最新更改。
  6. 修正某些情况下的OrderCalcMargin函数操作的问题。
  7. ENUM_DEAL_REASON枚举中添加了DEAL_REASON_CORPORATE_ACTION属性。它表示由于公司行动而执行的交易:合并或重新命名证券、将客户转移到另一个账户等。
  8. 比较方法添加对复向量和矩阵比较的支持。比较涉及到复数之间距离的估算。距离的计算公式为sqrt(pow(r1-r2, 2) + pow(i1-i2, 2),是一个已经可以与epsilon进行比较的实数。
  9. 修正将颜色类型变量转换为RGB格式文本的问题。
  10. 修正在复特征值的情况下,返回Eig方法获取特征向量的结果。为复杂评估添加方法重载。

MetaEditor

  1. 在帮助\MQL5.community菜单中添加最近发布的书籍“MQL5交易者编程”的链接。该书也已添加到搜索系统,因此您可以直接从MetaEditor找到所需的信息:




  2. 内置搜索改进:

    • 工具箱窗口中的搜索结果部分分为两个选项卡:“搜索”用于在线搜索结果(文档、文章、书籍等),“在文件中搜索”用于本地结果。
    • 单独的搜索字符串已添加到结果部分。您可以使用它来代替MetaEditor主工具栏中的搜索栏。

  3. 命令行编译命令时添加对AVX、AVX2和AVX512模式的支持。要进行编译,请在下列键中选择一个添加到命令中:/avx、/avx2或/avx512。
  4. 用于数据库操作的SQLite引擎更新至版本3.45。
  5. 禁用对Internet Explorer的支持。现在仅使用Microsoft Edge WebView2来显示HTML页面。与之前的MSHTML相比,新组件通过提供对最新技术的访问,进一步扩展了内容显示功能。WebView2的使用改善了某些MetaEditor部分的外观,提高了性能,并创建了一个响应速度更快的界面。
  6. 修正在极少数情况下函数自动完成时发生的冻结问题。
  7. 修正崩溃日志中的错误报告。
  8. 修正在极少数情况下函数自动完成时发生的冻结问题。

Tester

  1. 如果测试开始日期恰好是三倍库存费日,则修正三倍库存费的计算。

MetaTrader 5网页端

改进合约规格中预付款要求的显示。现在,除了用于计算比率和初始参数之外,规格还显示最终预付款值。如果预付款数额取决于持仓量,则对话框中将显示相应的水平。



预付款的计算依据是规格窗口打开时的交易品种价格,而不是实时更新。因此,这些数值应被视为具有指示性。要根据当前价格重新计算数值,请重新打开交易品种规格。
18 一月 2024
MetaTrader 5 build 4150:交易报告导出和MQL5新机器学习方法

程序端

  1. 程序端:添加将交易报告导出为HTML和PDF文件的功能。通过这个选项,您可以轻松地与同事和投资者分享您的交易成果。新导出命令可在文件菜单和报告菜单中获得。




  2. 程序端:添加将当前"市场报价"窗口的状态保存到CSV文件的功能。为此,请在快捷菜单中选择"导出"。文件将保存导出时选择的指标。要保存更多数据,可通过快捷菜单启用其他列。




  3. 程序端:改进合约规格中预付款要求的显示。现在,规格不再显示计算的比率和初始参数,而是显示最终预付款值。如果预付款数额取决于持仓量,则对话框中将显示相应的水平。



    预付款的计算依据是规格窗口打开时的交易品种价格,而不是实时更新。因此,这些数值应被视为具有指示性。要根据当前价格重新计算数值,请重新打开交易品种规格。

  4. 程序端:禁用对模拟账户信号服务的支持。要获取有关练习账户的更多统计信息,请使用新交易报告。它提供了大量的指标来描述您的策略盈利能力和风险,包括增长图、平衡图和权益图,以及按方向和交易品种划分的交易分布图等。
  5. 程序端:修正在编辑Stop Limit订单的止盈和止损时显示潜在盈/亏值的问题。
  6. 程序端:修正和改进支付系统的操作。
  7. 程序端:修正在市场报价中从*.set文件加载一组交易品种时的重复检查。
  8. 程序端:修正Parallels的网络安装程序。现在,在装有M1/M2/M3的macOS上使用该虚拟化系统时,平台将被正确安装。
  9. 程序端:更新用户界面翻译。
  10. 修正崩溃日志中的错误报告。

MQL5

  1. 添加机器学习中使用的矩阵和向量操作新方法。

    • ConfusionMatrix:计算误差矩阵。该方法适用于预测值的向量。
    • ConfusionMatrixMultilabel:计算每个标签的误差矩阵。该方法适用于预测值的向量。
    • ClassificationMetric:计算分类指标,以评估预测数据与真实数据相比的质量。该方法适用于预测值的向量。
    • ClassificationScore:计算分类指标,以评估预测数据与真实数据相比的质量。该方法适用于真实值的向量。
     
  2. 修正使用FileWrite函数将数据以UTF-8格式保存到文本文件。
  3. 禁用和弃用的Signal*函数。现在它们将返回空信号集。

MetaEditor

  1. 提高分析采样率。现在,分析器每秒可捕捉10,000次应用程序状态,从而更准确地测量函数执行率。
  2. 更新AI Assistant自动编码助手的可用模型。添加ChatGPT-4 Turbo模型,删除过时的模型。
  3. 修正替换所选文本片段中的单词时出现的错误。

Tester

  1. 修正在通用优化模式下可能出现的前测冻结问题。
  2. 利用MQL5程序的交易历史记录优化和加速操作。
  3. 修正Close By操作的利润计算。与主测试交易品种不匹配的交易品种可能会出错。

网页端

  1. 修正交易商相关属性发生变化时更新交易品种属性的问题。
  2. 修正图表上蜡烛图显示的问题。图表可能无法显示小蜡烛图。
  3. 修正开户表格中国家字段的操作。
20 十月 2023
MetaTrader 5 build 4040:其他改进和修复

程序端

  1. 新交易报告改进。修正增长图表和缩减计算中第一个值的显示。



  2. 开户时,交易者会通过内部电子邮件系统收到几条信息。这些信息中会提供有关平台功能和内置服务的凭证和可用信息。我们对这些电子邮件进行了更新和改进,将其翻译成50种语言,并整体更新设计。
  3. 优化账户入金和出金页面。
  4. 修正下新订单时交易量变化的错误。在某些交易品种设置组合中,该字段无法进行编辑。
  5. 修正模拟账户开户对话框中交易商协议链接的显示问题。
  6. 更新用户界面翻译。

MQL5

  1. 修正在某些条件下可能导致MQL5程序启动时崩溃的错误。

MetaTrader 5网页端

  1. 修正在交易历史中止损和止盈值的显示问题。
  2. 增强日志记录功能。新日志信息可显示连接成功和连接失败的信息。
  3. 修正市场报价中的快捷菜单操作。
  4. 修正从市场深度进行交易时有关操作结果的通知显示。
  5. 修正在调用交易对话框时导致指标子窗口从图表中移除的错误。
  6. 修正在图表上拖动显示在分析对象顶部的交易水平的问题。
29 九月 2023
MetaTrader 5 build 4000 :改进交易报告和网页端

程序端

  1. 新交易报告中添加每月资金增长的显示。要查看该指标,请进入汇总报告并选择"结余"模式。



  2. 修正并改进新交易报告的显示。
  3. ONNX Runtime已更新至1.16版本。有关发布说明的详细信息,请参阅GitHub
  4. 更新用户界面翻译。

MetaTrader 5网页端

  1. 修正密码更改和开设账户对话框的显示问题。
  2. 修正历史记录中止损值和止盈值的显示问题。修改相关级别后可能会出现错误。
  3. 在风险预警对话框中添加滚动条。
  4. 更新用户界面翻译。
  5. 其他改进和修复。
21 九月 2023
MetaTrader 5 build 3980:其他改进和修复

程序端

  1. 新交易报告的改进。修正总库存费值和交易品种利润图表的显示问题。
  2. 优化出入金页面。有关新平台与支付系统集成的更多详细信息,请参阅build 3950发布说明
  3. 优化整个平台(包括策略测试)财务运营的重新计算。现在,利润、预付款和许多其他参数的计算速度更快。
  4. 更新用户界面翻译。

MQL5

  1. 添加复数、向量<复数>和矩阵<复数>类型共轭方法。实现复杂的共轭运算。
    //+------------------------------------------------------------------+
    //| 脚本程序起始函数                          |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       complex a=1+1i;
       complex b=a.Conjugate();
       Print(a, "  ", b);
       /*
       (1,1)  (1,-1)
       */
    
       vectorc va= {0.1+0.1i, 0.2+0.2i, 0.3+0.3i};
       vectorc vb=va.Conjugate();
       Print(va, "  ", vb);
       /*
       [(0.1,0.1),(0.2,0.2),(0.3,0.3)]  [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
       */
    
       matrixc ma(2, 3);
       ma.Row(va, 0);
       ma.Row(vb, 1);
       matrixc mb=ma.Conjugate();
       Print(ma);
       Print(mb);
       /*
       [[(0.1,0.1),(0.2,0.2),(0.3,0.3)]
        [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]]
    
       [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
        [(0.1,0.1),(0.2,0.2),(0.3,0.3)]]
       */
       
       ma=mb.Transpose().Conjugate();
       Print(ma);
       /*
       [[(0.1,0.1),(0.1,-0.1)]
        [(0.2,0.2),(0.2,-0.2)]
        [(0.3,0.3),(0.3,-0.3)]]
       */
      }
  2. 添加处理“Sequence of maps”类型的ONNX模型输出。

    对于在输出层提供Map序列(ONNX_TYPE_MAP的ONNX_TYPE_SEQUENCE)的ONNX模型,应将动态或固定的结构数组作为输出参数传递。此结构的前两个字段必须与ONNX_TYPE_MAP键和值类型匹配,并且是固定数组或动态数组。

    考虑由以下Python脚本创建的iris.onnx模型:
     sys 导入 argv
    data_path=argv[0]
    last_index=data_path.rfind("\\")+1
    data_path=data_path[0:last_index]
    
     sklearn.datasets 导入 load_iris
    iris_dataset = load_iris()
     sklearn.model_selection 导入 train_test_split
    X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
     sklearn.neighbors 导入 KNeighborsClassifier
    knn = KNeighborsClassifier(n_neighbors=1)
    knn.fit(X_train, y_train)
    
    # 转换  ONNX格式
     skl2onnx 导入 convert_sklearn
     skl2onnx.common.data_types 导入 FloatTensorType
    initial_type = [('float_input', FloatTensorType([None, 4]))]
    onx = convert_sklearn(knn, initial_types=initial_type)
    path = data_path+"iris.onnx"
    with open(path, "wb") as f:
        f.write(onx.SerializeToString())
    在MetaEditor中打开创建的onnx文件:

    在MetaEditor中查看ONNX模型


    Map序列作为“output_probability”传递。它有一个INT64类型键(对应于MQL5中的long)和float类型值。要从此输出接收数据,请声明以下结构:
    struct MyMap
      {
       long              key[];
       float             value[];
      };
    这里我们使用具有适当类型的动态数组。在这种情况下,我们可以使用固定数组,因为这个模型的Map始终包含3个键+值对。

    由于返回Map序列,因此应将此类结构的数组作为参数传递,以接收来自output_probability输出的数据。根据特定模型的属性,该数组可以是动态数组可以是固定数组。示例:
    //--- 声明一个数组来接收来自输出层output_probability的数据
    MyMap output_probability[];
    
    ...
    
    //--- 模型运行
    OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);

MetaEditor

  1. 修正ONNX模型查看器中输出类型的显示问题。
14 九月 2023
MetaTrader 5 build 3950:在程序端出入金,更新的交易报告

程序端

  1. 添加对直接在客户端中进行交易账户出入金的结余操作的支持。

    我们将最常用的支付系统直接集成到MetaTrader 5平台中,使得交易商能够为交易者提供更高水平的服务。在入金或充值时,只需选择最适合您的付款方式即可完成交易。为了更加便捷,交易者可以保存所选银行卡,这样不用每次都输入银行卡的详细信息。交易商不会存储付款详细信息和银行卡号。用户输入的支付数据通过安全通道发送到用户选择的支付系统。

    新功能为交易者提供了无需离开客户端即可一键管理资金的机会。



  2. 全面改进交易历史报告。现在查看报告更加轻松。我们修正了信息展示方法,将枯燥的统计报告转换为互动式图表。这项工作仍在进行中,但您已经可以评估这些变化。

    要查看交易统计数据,请单击"查看"菜单中的"报告"。




    报告分为四个选项卡,每个选项卡都包含汇总信息:

    1. 摘要 — 交易摘要:账户数据、整体损益、入金和出金、结余、增长和股息图表等。
    2. 盈利/亏损 — 盈利和亏损交易的数据。参数按交易类型(手动交易、算法交易和复制交易)划分。结果可以从交易或资金的角度,按月份和年份进行分析。
    3. 买入持仓/卖出持仓 - 指定时间段的动态买卖比率,以及买入和卖出的盈利能力。
    4. 交易品种 - 按交易品种分析交易。在这里,您可以看到您在哪些交易品种上盈利或亏损、交易频率、交易图表以及货币量。

    新报告使您只需点击选项卡,就能直观地评估各方面的交易结果。直方图、图形和图表是交互式的,鼠标悬停时可提供更多信息。我们的设计人员精心设计布局,使报告尽可能简单明了。现在就来体验吧!


  3. 添加AVX2指令的使用(在CPU支持的情况下)。这样可以在启动程序端时更有效地利用CPU算力。现在,在安装或更新时,程序端本身将确定CPU架构并安装最适用的版本。在启动期间,程序端会向日志发送一条消息 (AVX/AVX2),显示程序端构建的指令集。
    Terminal	MetaTrader 5 x64 build 3914 started for MetaQuotes Software Corp.
    Terminal	Windows 10 build 19045, 20 x Intel Xeon  E5-2630 v4 @ 2.20GHz, AVX, 41 / 63 Gb memory, 58 / 280 Gb disk, UAC, GMT+2
    

    高级矢量扩展(AVX)是2008年针对Intel和AMD微处理器提出的x86指令集的扩展。进一步的发展带来AVX2和AVX-512 (2013)的出现。

  4. 除了X64和AVX上的两个版本MetaTrader 5程序端外,我们还发布了直接支持AVX2命令编译的第三个版本的桌面程序端。同时,ONNX模型现在也支持AVX2命令。
  5. 添加显示交易商必要监管文件的链接。现在您可以直接在客户端的“帮助/条款和条件”中从您的交易商获取所有必要的法律信息。



  6. 修正通过证书额外使用扩展授权情况下的2FA授权
  7. 修正在MacOS上工作时内部邮件消息的显示。
  8. 修正在Wine中工作时信号窗口的显示。
  9. 发布适用于Linux的MetaTrader 4和MetaTrader 5新安装程序。
  10. 在帮助中添加访问Linux和Mac程序端版本下载页的命令。为了方便交易者,我们在网站上专门创建一个部分,提供适用于所有平台以及浏览器交易的程序端版本。



  11. 修正将图像嵌入到内部邮件中的问题。
  12. 发布适用于Mac系统的MetaTrader 5程序端新安装程序,支持M1/M2处理器。由于要过渡到Wine 8.0.1,我们强烈建议您删除旧版本,安装新版本。当使用低于8.0.0 Wine版本时,程序端日志中会显示一条有关需要更新的消息。
  13. 在网络扫描菜单中添加“VPS主机加速”,指出到您交易服务器的ping值。这可以使您在租用内置VPS时清楚地看到网络延迟的减少情况。



  14. 加强最低密码复杂度的要求,即:

    • 密码长度 - 至少8个字符
    • 密码必须包含至少1个大小写字母,至少1个数字和至少1个特殊字符。

  15. 程序端日志中的可用链接。现在,当双击带有https链接的行时,用户将被转到他们的浏览器并打开链接。
  16. 修正在“市场报价”中搜索交易品种的问题。现在,首先按名字搜索交易品种,然后按其他字段搜索:描述、ISIN等。
  17. 修正在账户交易历史记录报告中计算结余时对交易利润的计算。在某些情况下,计算时没有考虑交易品种类型。

VPS主机

  1. 添加发送和运行在x64/AVX/AVX2命令集下编译的EX5程序的功能。内置VPS不支持AVX512程序。
  2. 内置VPS订阅位置增加到27个。现在,近距离服务器的可选范围更加广泛。

MQL5

  1. 添加对编译设置的管理,包括扩展处理器指令集的选择 - AVX、AVX2、AVX512和FMA3。

    现代CPU拥有一组高级指令,可以大幅度加快数学计算速度,但绝大多数现代程序并不使用这些功能。我们在MQL5语言编译器中添加了对这些指令的支持,从而可以更高效、更快速地生成代码。

    我们还添加了选择使用编译MQL5程序指令类型的功能。您可以在MetaEditor选项中指定单个程序的常规设置,并在项目设置中应用个人设置:



  2. 将ENUM_AVERAGE_MODE和ENUM_CLASSIFICATION_METRIC枚举添加到矩阵和向量方法中。
  3. 添加向量的设置(Set)方法。
  4. 修正OpenCL初始化 - 现在通过第一次实际使用来初始化,而不是通过加载包含OpenCL函数的MQL5程序来初始化。
  5. 修正调用SocketIsConnected函数时的错误。
  6. 修正卸载自定义指标时调用OnDeinit方法的延迟。
  7. 修正编译器错误,该错误导致indicator_label属性中的字符串长度计算不正确,从而导致图形对象的工具提示显示不正确。
  8. 修正宏主体中多行注释的使用。发生错误的宏示例:
    #define MACRO1 /*
    #define MACRO2 */
    void OnStart()
    {
    #ifdef MACRO2
        Print( 2 );
    #else
        Print( 1 );
    #endif
    }
  9. 修正MathAtan2函数的参数顺序。该顺序现在与C++中的类似函数匹配。
  10. 将TERMINAL_CPU_ARCHITECTURE新值添加到ENUM_TERMINAL_INFO_STRING枚举中。此外,还添加了__CPU_ARCHITECTURE__宏 — 用于获取运行程序端的计算机的CPU架构。使用示例:
    void OnStart()
      {
       Print("CPU name:         ",TerminalInfoString(TERMINAL_CPU_NAME));
       Print("CPU cores:        ",TerminalInfoInteger(TERMINAL_CPU_CORES));
       Print("CPU architecture: ",TerminalInfoString(TERMINAL_CPU_ARCHITECTURE));  
       Print("");
       Print("EX5 architecture: ",__CPU_ARCHITECTURE__);                            
      }
    
    CPU name:         12th Gen Intel Core i9-12900K
    CPU cores:        24
    CPU architecture: AVX2 + FMA3
    
    EX5 architecture: AVX

  11. 更改extern修饰符的行为。现在使用extern修饰符声明变量是变量预声明。

    新限制:
    1. 变量预声明不应该包含初始化。例如,在编译下面代码时,我们会得到以下错误“X - 不允许extern变量初始化(X - extern variable initialization is not allowed)”:
      extern int X=0;
      
      void OnStart()
        {
        }

    2. 在程序中声明"extern"变量时,不应使用"extern"关键字。例如,在编译下面代码时,我们会遇到"未解决的extern变量X(unresolved extern variable X)"错误:
      extern int X;
      
      void OnStart()
        {
        }

    3. 使用"extern"时,必须注意初始化顺序,因为因为变量可以在初始化之前被访问。例如,以下代码会在日志中显示"Y=0 X=5",因为变量Y的初始化发生在变量X的初始化之前:
      extern int X;
      int        Y=X;
      
      void OnStart(void)
        {
         Print("Y=",Y," X=",X);
        }
        
      int X=_Digits;

  12. ALGLIB库更新至版本3.19。ALGLIB是一个高性能的数值分析库,专用于数值方法和数据分析算法。

    我们修正了现有的库类来使用矩阵和向量,还添加了ALGLIB 3.19的新功能。所有的源代码都经过修改,并采用了单一的设计风格。ALGLIB库的源代码位于<程序端数据目录>\MQL5\Include\Math\Alglib。测试脚本位于MQL5\Scripts\UnitTests\Alglib。

    遗憾的是,MQL5 3.19版本的ALGLIB库更改非常明显,因此不存在向后兼容。如果代码使用MQL5 3.5版本的ALGLIB库,您需要明确检查您的程序并做出必要的更改。

    除了库本身之外,测试脚本也进行了更新 - 类的测试数量从62个增加到91个,接口的测试数量从143个增加到152个。因此,MetaTrader 5平台开发人员为交易者提供了更有效的解决方案:

    • MQL5语言,在速度方面的表现与C++不相上下;
    • SQLite数据库的内置处理、OpenCL计算、DirectX支持以及与Python集成;
    • 数学库,包括模糊逻辑统计和更新的ALGLIB

MetaEditor

  1. 添加AVX2指令的使用(在CPU支持的情况下)。
  2. 修正编译过程中导致冻结的错误。
  3. 改进调试时局部变量的显示。

Tester

  1. 添加AVX2指令的使用(在CPU支持的情况下)。

更新用户界面翻译。
修正崩溃日志中的错误报告。


MetaTrader 5网页端build 3950

  1. 在图表设置中添加买价的显示。



  2. 加速初始程序端加载。
  3. 添加更改密码的功能。
  4. 添加删除和保存密码的功能。
  5. 添加用于显示交易历史记录的自定义时段。
  6. 修正强制更改密码的问题。
  7. 修正计算差异 — 开盘价与止盈/止损水平之间的差异。


  8. 修正关闭所有订单/交易时报价停止的错误。
  9. 修正启用经济日历事件时并未显示在图表上的显示错误。
  10. 修正更改图表交易品种时指标重置的问题。
  11. 修正确认电话/邮箱时开设真实账户的错误。
  12. 添加新翻译并更正现有翻译。
上一页12345678910111213