MetaTrader 5新功能

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

2 六月 2022
MetaTrader 5 build 3320:其他改进和修复

程序端

  1. 扩展图表中显示的交易对象的工具提示:
    • 市场退出交易现在显示盈利。
    • 针对由于激活止盈或止损而执行的交易而显示相关指示。

    类似的工具提示可用于连接进入和退出交易的行。

    扩展交易对象的工具提示


  2. 改进图形系统性能。
  3. 程序端:添加对未结订单和未结持仓批量操作的记录。当这样的命令被执行时,相关记录将被添加到日志中,例如:"开始批量关闭XXX持仓"。
  4. 程序端:修正批量关闭反向持仓。
  5. 程序端:修正图表上显示交易历史对象的更新。在更改图表交易品种时会发生错误。

MQL5

  1. 矩阵和向量函数的开发正在进行中:正在实施对“浮点”和“复数”的支持。
  2. MQL5:指针操作符"!" (LNOT)通过隐含的CheckPointer调用来检查其有效性。操作符"=="应该用于快速检查NULL。例如:ptr==NULL或ptr!=NULL。

MetaTester

  1. 修正测试图表上交易对象的显示。
  2. 改进图形系统性能。

MetaEditor

  • 更新用户界面的翻译。

修复崩溃日志中报告的错误。

20 五月 2022
MetaTrader 5 build 3300: MetaEditor中的快速编译和改进代码导航

程序端

  1. 添加通过拖动矩形图形对象的四个角来调整其大小的功能。


  2. 加快图形用户界面渲染。
  3. 改进对IPv6地址的支持。
  4. 修正首次平台启动时较低日期字段的高度计算和右侧价格字段的宽度计算的问题。

MQL5

  1. 添加处理矩阵和向量的函数 —  RegressionMetric。它设置了回归评估的指标。
     double vector.RegressionError(const enum lr_error);
     double matrix.RegressionError(const enum lr_error);
     vector matrix.RegressionError(const enum lr_error,const int axis);
    以下变量可用作度量指标:
    enum REGRESSION_ERROR
      {
       REGRESSION_MAE,     // 平均绝对误差
       REGRESSION_MSE,     // 均方差
       REGRESSION_RMSE,    // 均方根误差
       REGRESSION_R2,      // R平方
       REGRESSION_MAPE,    // 平均绝对百分比误差
       REGRESSION_MSPE,    // 均方百分比误差
       REGRESSION_RMSLE    // 均方根对数误差
      };
  2. 添加写入数据大小大于INT_MAX(结构数组)的数组的功能。

MetaEditor

  1. 选项卡栏改进:
    • 即使只打开一个窗口,面板也不会隐藏。因此,选项卡快捷菜单命令始终对用户可见。
    • 每个选项卡都添加了'X'关闭按钮。此外,可以使用鼠标中键或通过快捷菜单关闭选项卡。


  2. 添加用于快速程序编译的命令。此模式会跳过代码优化,从而显著加快EX5可执行文件的创建速度。当您需要快速检查编写的代码时,且在积极开发阶段可使用此模式。在最终程序编译期间,打开最大优化模式以增强性能。


    项目设置中的“最大优化”参数执行相同的功能。

    所有编译关系操作都可在“构建”菜单下获得。

  3. 代码管理改进:
    • 已经实现用于跳转到定义和声明的单独命令。以前,菜单只有一个命令可以打开选择子菜单。新命令可以更快地切换到必要的代码部分。
    • 除了"Enter"之外,还添加用"Tab"键替换已识别的关键字。


  4. 添加在调试器报价列表中自动显示局部变量的功能。可以通过“本地”快捷菜单命令启用显示。随着调试器操作在代码中进行,当前作用域中的变量会自动显示在列表中。



  5. 对向量和矩阵的调试器报价列表进行改进。
  6. 修正项目文件中的路径。错误可能会导致文件从项目中消失。

Tester

  1. 改进在平台关闭时停止测试器代理的问题。
  2. 添加第五个MQL5 云网络节点。该节点位于香港。新节点通过最近区域的网络加快EA的优化速度。

修复崩溃日志中报告的错误
29 四月 2022
MetaTrader 5 build 3280:根据交易者反馈的其他改进和修复

程序端

  1. 修正在未结订单和未结持仓的快捷菜单中显示标准追踪止损水平的问题。



  2. 更新用户界面翻译。

修复崩溃日志中报告的错误。
21 四月 2022
MetaTrader 5 build 3270: 其他改进和修复

程序端

  1. 内置聊天功能的改进。
    • 更新设计。现在显示消息没有圆圈气泡,来优化显示和空间利用率。添加头像和日期分隔符。
    • 复制和删除命令已添加到消息菜单中。
    • 漏洞修复和稳定性改进。



  2. 修正批量平仓命令。使用锁仓账户系统的账户会出现错误。
  3. 修正生成持仓历史时,对某些交易类型的考虑。

修复崩溃日志中报告的错误。
15 四月 2022
MetaTrader 5 build 3260:批量操作,矩阵和向量函数,增强聊天功能

程序端

  1. 添加批量平仓和取消挂单的命令。

    新“批量操作”命令已添加到交易选项卡的快捷菜单。可用命令列表会根据所选操作和您的账户类型自动形成。



    菜单中始终提供以下命令:
    • 关闭锁仓账户中的所有持仓,系统尝试反向平仓(Close By),然后按照常规程序关闭剩余持仓。
    • 关闭所有盈利持仓或亏损持仓
    • 删除所有挂单
    • 删除特定类型的挂单:limit(限价单)、stop(停损单)和stop limit(停损限价)

    如果您选择一个持仓,菜单中会出现其他命令:
    • 关闭交易品种的所有持仓
    • 关闭同方向的所有持仓(锁仓账户)
    • 关闭相同交易品种的反向持仓(锁仓账户)
    • 持仓逆转(单边账户)

    如果您选择挂单,菜单中会出现其他命令:
    • 删除同一交易品种的所有挂单
    • 删除相同交易品种的所有相同类型的挂单

    这些命令仅在平台设置中启用一键交易时可用:工具\选项\交易。
  2. 增强内部聊天功能:
    • 添加回复消息的功能。回复中将引用源消息文本。
    • 添加创建不同内容类型的消息的功能,例如带有文本的图像和带有附件的文本等。
    • 修正显示已读和未读消息之间的分隔符。
    • 错误修复和稳定性改进。



  3. 优化和加快程序端图形系统的运行速度。界面渲染需要的资源将会更少。
  4. 修正期货每日价格变化的计算。如果交易商提供清算价格,该价格将被用于计算。
    ((Last - Clearing Price)/Clearing Price)*100
    文档中提供了所有计算类型的详细说明。

  5. 修正购买MQL5服务时出现的错误:
    • 在某些条件下,支付系统可能为成功操作返回错误。
    • 市场中的中间产品租用环节可能会显示不正确的价格。

  6. 修正购买/下载市场产品页面上的“开始”按键的操作。现在,该按键在第一个打开的图表上正确启动应用程序。
  7. 修正生成持仓历史时,对某些交易类型的考虑。

MQL5

  1. 添加处理矩阵和向量的新函数:
    • Median — 返回矩阵或向量元素的中位数
    • Quantile — 返回矩阵/向量元素或沿指定轴的元素的第q个分位数
    • Percentile — 返回矩阵/向量元素或沿指定轴的元素的第q个百分位数
    • Std — 计算矩阵或向量元素的标准差
    • Var — 计算矩阵或向量元素的方差
    • CorrCoef — 计算矩阵/向量相关系数
    • Correlate — 计算两个向量的交叉相关
    • Convolve — 返回两个向量的离散,线性卷积
    • Cov — 计算协方差矩阵

  2. 我们已经开始为数值数组添加内置方法。新方法增强了可用性,提高代码紧凑性,并加强代码与其他语言的兼容性。

    以下三种方法已经可用:
    • ArgSort — 按指定维度对数组进行排序;默认使用最后一个 (axis=-1)。
    • Range — 返回指定数组维度中的元素数。类似于ArrayRange
    • Size — 返回数组元素的数量。类似于ArraySize

    例如:
    void OnStart()
      {
       int arr[4][5]=
         {
            {22, 34, 11, 20,  1},
            {10, 36,  2, 12,  5},
            {33, 37, 25, 13,  4},
            {14,  9, 26, 21, 59}
         };
       ulong indexes[4][5];
    //--- 排序数组
       arr.ArgSort(indexes,-1,0);
       Print("indexes");  
       ArrayPrint(indexes);
      }
    
    // 结果日志:
    // 索引
    //     [,0][,1][,2][,3][,4]
    // [0,]   4   2   3   0   1
    // [1,]   2   4   0   3   1
    // [2,]   4   3   2   0   1
    // [3,]   1   0   3   2   4

  3. 我们已开始为字符串添加内置方法。

    目前可以使用以下方法:
    • BufferSize — 返回为字符串分配的缓冲区大小。
    • Compare — 比较两个字符串并将比较结果返回为整数。
    • Length — 返回字符串中的字符数。
    • Find — 搜索字符串中的子字符串。
    • Upper — 将字符串大写。
    • Lower — 将字符串转换为小写。
    • Replace — 替换一个子字符串。
    • Reserve — 为字符串保留缓冲区。

    所有方法都类似于字符串函数

    例如:
    void OnStart()
      {
       string test="some string";
       PrintFormat("String length is %d",test.Length());
      }
    
    // 结果日志:
    // 字符串长度是11
  4. 将SYMBOL_SUBSCRIPTION_DELAY值添加到ENUM_SYMBOL_INFO_INTEGER枚举中,以延迟特定交易品种的报价交付。

    它仅用于基于订阅的交易品种。延迟通常适用于试用模式提供的数据。

    只能为在市场报价中选择的交易品种请求该属性。否则,将返回ERR_MARKET_NOT_SELECTED (4302)错误。

  5. 将ACCOUNT_HEDGE_ALLOWED属性添加到ENUM_ACCOUNT_INFO_INTEGER枚举中 — 启用反向持仓和挂单。该属性仅用于锁仓账户,以符合特定监管要求,根据该监管要求,同一交易品种的账户不能有反向持仓,但允许同向持仓。

    如果禁用此选项,则账户将不允许持有同一交易品种的反向持仓和订单。例如,如果该账户是Buy持仓,那么用户就不能建立Sell持仓或下单卖出挂单。如果用户尝试执行此类操作,则会返回TRADE_RETCODE_HEDGE_PROHIBITED错误。

  6. ENUM_SYMBOL_INFO_DOUBLE枚举中的新属性:
    • SYMBOL_SWAP_SUNDAY
    • SYMBOL_SWAP_MONDAY
    • SYMBOL_SWAP_TUESDAY
    • SYMBOL_SWAP_WEDNESDAY
    • SYMBOL_SWAP_THURSDAY
    • SYMBOL_SWAP_FRIDAY
    • SYMBOL_SWAP_SATURDAY

    使用这些值来获取一周中特定日期的库存费计算率。1 — 单库存费,3 — 三倍库存费,0 — 无库存费。

  7. 修正CopyTicksCopyTicksRange 函数操作。过夜时,该错误可能导致返回过时的数据。当没有为交易品种提供报价时会发生错误。
  8. 修复崩溃日志中报告的错误。
11 二月 2022
MetaTrader 5 build 3210:修订夏普比率计算算法、新矩阵方法和对指标最小值/最大值的控制

MQL5

  1. 为向量和矩阵添加Min、Max、ArgMin、ArgMax和Sum函数。使用函数查找最小值和最大值、相关指数和总和。
  2. 添加对矩阵平面方法的支持。使用这些方法,矩阵元素可以通过一个索引而不是两个索引来寻址。
    double matrix::Flat(ulong index) const;      // getter
    void matrix::Flat(ulong index,double value); // setter

    计算矩阵元素地址的伪代码:

    ulong row=index / mat.Cols();
    ulong col=index % mat.Cols();
    
    mat[row,col]

    例如,对于'matrix mat(3,3)',访问元素可以按如下写出:

       阅读:'x=mat.Flat(4)',相当于'x=mat[1][1]'
       书写:'mat.Flat(5, 42)',相当于'mat[1][2]=42'

    如果使用无效的矩阵索引调用函数,则会抛出OutOfRange严重执行错误

  3. 改进MQL5程序输入参数中浮点数的格式。在读取一些实数时,将带有许多零的数字代入输入参数,例如,0.4表示为0.400000000002。
  4. 修正Math\Stat\Math.mqh数学库中出现的错误。该数学库中的MathSample函数已经过修改,以匹配类似数学库在回溯采样时的传统行为。
  5. 修正当没有提供交易品种报价时,可能导致过夜返回过时数据的CopyTicks/CopyTicksRange错误。
  6. 在ENUM_CUSTOMIND_PROPERTY_INTEGER枚举中,添加INDICATOR_FIXED_MINIMUM和INDICATOR_FIXED_MAXIMUM新值。
    使用这些属性,您可以使用IndicatorSetInteger函数修正/取消修正最小和最大指标值。调用IndicatorSetInteger(INDICATOR_FIXED_MINIMUM/INDICATOR_FIXED_MAXIMUM, true)时,使用当前的最小值或最大值。





Tester

  1. 修正夏普比率计算算法以匹配传统公式,公式值对应于一年的间隔。之前的算法基于获得的PnL的变量,却忽略了针对未结持仓的净值波动。现在计算包括净值变动,而夏普比率则是按照经典方式进行解释:
    • 夏普比率 < 0 该策略无利润,也不合适。不好。
    • 0 < 夏普比率 < 1.0 风险不会得到回报。当没有其他选择时,可以考虑这种策略。不明确。
    • 夏普比率 ≥ 1.0 如果夏普比率大于 1。这可能意味着风险得到回报,并且投资组合/策略可以显示结果。好。
    • 夏普比率 ≥ 3.0 高数值表示在每笔特定交易中获得损失的概率非常低。非常好。

程序端

  1. 优化程序端的内存消耗。
  2. 通过网络子系统改进平台操作,以提高性能并减少网络延迟。
  3. 删除禁用网格渲染时指标中零网格级别的显示。
28 一月 2022
MetaTrader 5 build 3180:MQL5中的向量和矩阵,提高可用性

程序端

  1. 添加将市场报价交易品种或交易操作从账户历史移动到图表窗口的激活。

    这两个操作可将图表交易品种更改为选定的交易品种。在此之前,他们不会如此激活图表窗口。因此,一些进一步的操作,例如调用交易对话框(F9)或使用热键更改比例(+/-),可能会错误地应用于另一个图表。现在,已通过拖动更改其交易品种的图表将立即被选中以进行进一步的工作。

  2. 添加双击账户历史中交易操作时打开新订单窗口。用户点击操作中的交易品种会立即插入对话框中,从而加快交易速度。快捷菜单中添加一个类似的命令。




  3. 添加在打开新图表时的真实交易量或报价量的智能包含。在分析市场时,此数据很重要。但是,并非所有交易者都知道它在平台中的可用性。

    真实交易量具有更高的优先级。如果交易量是由交易商提供,则会显示在图表上。否则,将启用显示报价量。

    该机制仅在使用default.tpl模板打开图表时使用。如果用户在图表设置中手动禁用了交易量,则在重新打开图表时不再启用交易量。自定义模板不受影响。

  4. 优化并大幅度加速用户界面显示。
  5. 改进通过文件菜单调用的图表打印功能:
    • 修正保存打印设置的问题
    • 改进打印页面外观:增加网格线,删除程序名称,更新页眉字体
    • 放大打印对话框以正确显示界面

  6. 修正图表快速交易面板中的交易量字段操作的问题。在修正之前,输入新值并按下Tab后,值会重置为上一个值。
  7. 修正图表上的交易历史显示。在此之前,在账户之间切换时,之前账户操作不会从图表中删除。
  8. 修正通过PayPal支付MQL5.com的问题。
  9. 修正显示期权波动率图表时平台冻结的问题。
  10. 修正在真实账户注册窗口中的电话号码验证问题。在某些情况下,平台不允许用户在输入正确号码后进入下一个注册阶段。
  11. 修正在加入与MQL5.com成员的群聊时检查权限的问题。以前,新加入的用户只能阅读消息而不能编写消息。
  12. 在数据缺失的情况下更改图表文本。现在,用交易品种名称、时间周期和交易品种替换“等待更新”。
  13. 改进支持build 2450中添加的负价格。现在也可以为相应的市场报价交易品种显示零值。
  14. 修正在Wine下工作时在市场上显示产品LOGO的问题。

MQL5

  1. 我们继续添加向量和矩阵支持。这些新函数大幅度扩展基于神经网络的解决方案开发人员的可能性。

    多个函数目前已准备使用:
    • Eye — 构造一个矩阵,其中指定对角线上为1,其他位置为0。
    • Identity — 构造一个具有指定大小的矩阵,主对角线上为1,其他位置为0。
    • Ones — 构造一个用1填充且具有指定大小的矩阵。
    • Zeroes — 构造一个用零填充且具有指定大小的矩阵。
    • Full — 构造一个用指定值填充且具有指定大小的矩阵。
    • Copy — 构造一个矩阵或向量的副本。
    • Diag — 从矩阵中提取对角线并用向量中的值填充指定的对角线。
    • Tri — 构造一个矩阵,其中指定对角线及其下方为1,其他位置为0。
    • Row — 将矩阵行返回为向量,并用向量中的值填充指定行。
    • Col — 将矩阵列返回为向量,并用向量中的值填充指定列。
    • Rows — 返回矩阵中的行数。
    • Cols — 返回矩阵中的列数。
    • Transpose — 转置一个矩阵。
    • * — 矩阵、向量和标量的乘积 — 点积。
    • Power — 将矩阵提升为幂。
    • Kron — Kronecker乘积。
    • Cholesky — Cholesky分解。
    • QR — 矩阵的QR因式分解。
    • SVD — 奇异值分解。
    • LU — 矩阵的LU分解。
    • LUP — 矩阵的LUP分解。
    • Norm — 计算矩阵范数。
    • Cond — 计算矩阵的条件数。
    • Spectrum — 计算矩阵的频谱。
    • Det — 计算矩阵的行列式。
    • Rank — 计算矩阵的秩。
    • SLogDet — 计算矩阵行列式的符号和底对数。
    • Trace — 计算矩阵迹线。
    • Solve — 求解线性方程组。
    • LstSq — 使用最小二乘法求解线性方程组。
    • Inv — 计算矩阵的逆。
    • PInv — 通过Moore-Penrose方法计算矩阵的伪逆。
    • Compare — 使用epsilon比较两个矩阵。

    有关更多详细信息,请参阅相关MQL5文档

  2. 修正处理与路径长度限制相关的文件和数据库时的错误。特别是,DatabaseOpen函数允许将路径设置为大于可接受的路径,从而导致错误的数据库创建。现在该函数正确返回ERR_TOO_LONG_FILE_NAME错误代码。
  3. 修正变量恒常性控制。之前,编译器有时会跳过“常量变量不能作为引用传递”错误。
  4. 修正关于使用未初始化变量时错误的编译器警告。
  5. 修正指标的ChartWindowOnDropped函数操作。以前,它通常返回零。
  6. 将对Python 3.10的支持添加到Python集成模块。

VPS

  1. 修正在导航器中显示VPS项目的问题。之前,它有时会在账户之间切换时消失。

MetaEditor

  1. 修正调试观察窗口中复杂表达式的展开问题。

Tester

  1. 修正将测试报告导出到文件的问题。如果将精度为0位小数的货币用作入金货币,则某些值可能会被错误地四舍五入。例如,JPY。
22 十月 2021
MetaTrader 5 Build 3091:其他改进

程序端

  1. 修正购买MQL5服务时打开空白页面的问题。现在,操作结果会立即显示给用户。
  2. 修正请求真实账户时,用户上传的文档图像压缩过度的问题。这将提高自动检查KYC的质量,促进整体开户流程。
  3. 修正测试完成后打开的图形的操作问题。

MQL5

  1. 添加支持SQLite 3.36.0。

MetaEditor

  1. 添加对匹配括号的背景高亮。该选项可以通过MetaEditor常规设置来启用。
  2. 改进MQL5程序调试器

修复崩溃日志中报告的错误。
21 十月 2021
MetaTrader 5 build 3090:其他改进和修复

程序端

  1. 修正在某些条件下可能导致自定义交易品种消失的错误。
  2. 改进菜单和工具栏图标。
  3. 在MQL5.com新增三种语言:法语、意大利语和土耳其语。

    现在,最大的算法交易者社区 - MQL5.community,已提供11种语言版本。我们已经实现网站界面、文档和重要论坛主题的本地化。新语言的文章和经济日历也即将到来。

  4. 修复崩溃日志中报告的错误。

MQL5

  1. 修正StringConcatenate函数中的错误。
  2. 修正当使用FileSave函数时_LastError值的设置。在某些条件下,该变量可能包含null值而不是函数错误的描述。
  3. 修正从资源导入数据到double类型数组。

MetaTester

  1. 修正在可视化测试期间导致图表窗口冻结的错误。
更新文档。
14 十月 2021
MetaTrader 5 build 3081:改进MQL5服务和设计更新

Terminal

  1. 改进MQL5.community服务中的导航功能。

    市场信号VPS版块已经从主平台工作区移动到导航器。新位置为访问所需产品提供更多方便,并可以有效地管理购买和订阅。每个服务都添加了“如何工作”部分,以提供基本的使用信息。


    改进通过MQL5.community服务的导航功能


  2. 所有菜单和工具栏图标都已完全重新设计。客户端界面也更加人性化:

    • 删除图标中的小元素
    • 减少使用的颜色数量,避免颜色干扰
    • 使用更少的渐变来提高可读性
    • 使用更直接的隐喻


    平台中的所有菜单、工具栏和对话框都已重新设计


  3. 添加交易执行的成本显示。相关信息显示在交易历史中。此功能适用于NFA监管的交易商。


    账户历史显示交易成本>


    如果您的交易商在服务器上启用成本计算,则新成本列将出现在您的账户交易历史中。该列显示了相对于交易品种的当前中点价格的交易执行成本(中点点差成本)。

  4. 推出MQL5.com韩语版

    这是MQL5.community(最大的算法交易者社区)提供的第八种语言。网站界面、文章、经济日历和重要论坛主题都已经提供韩语。MQL5文档也将很快进行翻译。

  5. 修正加载自定义交易品种。在某些情况下,新创建的交易品种设置可能会覆盖现有的交易品种设置。
  6. 修正在图表上显示信号交易历史。以前,相关选项可以显示所有交易品种的所有交易,而不仅仅是图表交易品种。
  7. 在交易历史报告中添加费用列的导出。之前,该值仅显示在历史中,但无法保存到文件中。
  8. 优化和加速市场报价中和图表上的一键交易面板的操作。
  9. 修正自定义交易品种的预付款比率字段的操作。在某些条件下,这些值可以重置为零。
  10. 我们继续实施订阅服务,通过此服务,交易者可以购买交易商的额外交易服务。修正报价订阅窗口中的错误。
  11. 修正显示趋势线分析对象。以前,趋势线可能会在缩放或调整图表窗口大小时消失。
  12. 修正显示矩形分析对象。如果定位点之一超出图表可见区域,则该对象可能会消失。
  13. 与内置MQL5.community图表的操作相关的修复和操作速度改进。
  14. 修正持仓列表中的“值”参数的四舍五入。在以前版本中可以隐藏小数部分。
  15. 修正开户过程中的手机验证。某些中国运营商的电话号码可能会被识别为不正确。
  16. 添加对长度超过32个字符的MQL5账户密码的支持。
  17. 修正在Wine中工作时的证书导出。该选项用于从桌面版迁移到移动设备时的具有扩展认证的账户。
  18. 修正在工具箱窗口下面板中打开MQL5服务的按键。当窗口取消锁定时,该按键处于非活动状态。
  19. 添加“文件\新图表”菜单大小的限制。现在,菜单包含的交易品种组不能超过128个子菜单,每个子菜单不超过32个交易品种。这一限制加快了程序端操作,并避免在向市场报价添加大量交易品种(2000或更多)时被冻结。

MQL5

  1. 我们继续添加向量和矩阵支持。这些新功能将大幅度扩展基于神经网络的解决方案开发人员的可能性。
  2. 在ENUM_DEAL_PROPERTY_DOUBLE枚举中添加DEAL_SL和DEAL_TP值 — 交易的止损和止盈级别。

    根据发起这些交易的订单的止损和止盈来设置进入和逆转交易的相关值。平仓时对应持仓的止损值/止盈值被用于退出交易。

  3. 在ENUM_MQL_INFO_INTEGER枚举中添加MQL_HANDLES_USED值 — MQL程序中活动类对象(句柄)的数量。这些包括动态(通过新值创建)和非动态对象、全局/局部变量或类成员。程序使用的句柄越多,它消耗的资源就越多。

  4. 添加用于使用描述经济日历事件的MqlCalendarValue结构的新方法:

    • HasActualValue(void) — 如果设置实际值,则返回true;否则返回false
    • HasForecastValue(void) — 如果设置预测值,则返回true;否则返回false
    • HasPreviousValue(void) — 如果设置过去值,则返回true;否则返回false
    • HasRevisedValue(void) — 如果设置修正值,则返回true;否则返回false
    • GetActualValue(void) — 如果未设置相关值,则返回事件(double)或nan的实际值
    • GetForecastValue(void) — 如果未设置相关值,则返回事件(double)或nan的预测值
    • GetPreviousValue(void) — 如果未设置相关值,则返回事件(double)或nan的过去值
    • GetRevisedValue(void) — 如果未设置相关值,则返回事件(double)或nan的修正值

  5. 修正使用EX5文件形式程序库的MQL5程序的调试问题。
  6. 加速编译包含由序列初始化的大型数组的程序。
  7. 修正使用自定义交易品种数据执行CopyTicksRange函数的问题。该函数可能返回请求期间之外的数据。
  8. 修正参数专业化期间对所有模板参数可用性的验证。在某些情况下,使用调试模板编译代码可能会导致“代码生成错误”。

Signals

  1. 添加自动续订信号订阅的功能。

    您的订阅不会突然终止,因为系统会通过您用于初始订阅购买的付款方式自动续订一个月。


    为信号订阅启用自动续订


    如果您之前使用银行卡进行付款并且续订付款失败,系统将尝试从您的MQL5账户余额中支付。

    不要担心订阅价格的变化。如果价格上涨,自动续订将被取消。您将通过电子邮件收到相关通知。

    您可以在MQL5.com随时通过我的订阅部分启用或禁用自动续订选项。


    在MQL5.com“我的订阅”部分管理自动续订


  2. 修正信号展示的显示问题。现在系统可正确识别信号与当前账户的兼容性。

Market

  1. 在市场展示区添加通过作者姓名和登录名进行产品搜索。以前,该服务仅支持按产品名称和描述搜索。

VPS

  1. 改进自动订阅续订选项。

    以前,续订付款只能从MQL5账户结余中支付。用户必须确保其账户中有可用的相关金额。

    现在无需为MQL5账户充值。系统将使用您用于初始订阅的相同付款方式续订订阅。如果您使用银行卡支付VPS并启用自动续订选项,系统将对新订阅期使用相同的付款方式。如果付款失败,系统将尝试从您的MQL5账户余额中支付。


    使用银行卡和其他付款方式进行自动续订


    通过这个新选项,您可以确保EA交易和信号订阅不会因为VPS到期而停止。此外,无需手动检查和充值您的余额。
    该选项将仅用于新订阅。现有订阅的续订费用将从MQL5账户余额支付。

Tester

  1. 修正可视化测试错误。在某些情况下,图表可能无法显示EA交易中使用的指标。

MetaEditor

  1. 修正使用Alt+G跳转到函数或变量声明的问题。如果声明低于调用行,操作可能会失败。
  2. 添加对调试器中类对象引用的对象类型的显示。
  3. 添加在观察表达式列表中显示联合的功能。

MetaTrader 5 iPhone/iPad,MetaTrader 5 Android

  1. 添加在应用程序启动时显示免责声明。请仔细阅读。此外,一些交易商可以在应用程序第一次启动时自动创建模拟账户。在这种情况下,您将看到相关条款。


    MetaTrader 5 iPhone/iPad中添加的免责声明

  2. 添加从移动应用程序直接将账户连接到信号服务中的监控的功能。这可以通过从菜单中选择“账户监控”来完成。为方便起见,账户号和交易商名称会自动添加到注册窗口中。您应该另外指定信号名称和只读密码。

    将账户连接到监控以访问高级交易统计数据,与其他交易者分享结果或开始出售您的信号。

  3. 为在Android操作系统上运行的移动端,添加对Huawei AppGallery(华为应用市场)和HMS服务的支持。华为智能手机用户可以从相关商店安装该应用程序并使用推送通知。

更新文档。

18 六月 2021
MetaTrader 5 build 2980: 交易操作的推送通知

程序端

  1. 添加从服务器接收推送通知的功能。即使您的程序端关闭的情况下,您也能收到已执行交易操作的通知。



    在早期版本中,移动设备的通知只能从交易者桌面程序端发送。交易操作执行后,程序端向设置中指定的MetaQuotes ID发送相关通知。通知只能从正在运行的程序端发送。此要求已被取消。如果在您的计算机关闭时在服务器上触发止盈,您将收到来自服务器的平仓通知。

    要开始从服务器接收通知,您应该:
    • 拥有真实账户,因为服务器通知不适用于模拟账户
    • 在您的智能手机上安装MetaTrader 5 iOSAndroid
    • 在移动端打开消息部分,找到您的MetaQuotes ID并将其指定在桌面程序端的设置中
    • 在桌面程序端设置中启用服务器通知

    服务器通知应由您的交易商提供

    支持三种通知类型:订单操作、交易操作和结余操作。当您启用该选项时,可用的通知类型将显示在程序端日志中:
    '1222': subscribed to deals, orders, balance notifications from trade server

  2. 更新MetaTrader VPS展示。VPS部分变得更加方便:
    • 界面适应任何屏幕宽度。
    • 展示区占用的垂直空间更少,以适应工作区域。
    • 必要的信息仅在需要时出现。付款详细信息仅在您选择付款计划后显示。



    程序端:在策略测试面板中,添加用于快速切换到MQL5服务和工具箱窗口的命令。这些命令仅显示在“概览”部分,而在其他选项卡中,该面板用于管理测试。



  3. 为MQL5服务添加窗口状态的保存。如果您在关闭程序端之前将市场保持打开状态,相关窗口将在您下次启动程序端时打开。
  4. 修正定期同步MQL5账户状态。由于出现错误,信号复制在某些情况下可能会失败。
  5. 修正显示一系列推荐的市场产品。
  6. 修正导航器中的信号快捷菜单。您可以使用菜单查看您订阅的信号或取消订阅信号。

MQL5

  1. 修正在标准程序库(file MQL5\Include\Math\Alglib\complex.mqh)中实现复数时的"-"运算符错误。
  2. 现在您可以在初始化序列中使用任何表达式,而不仅仅是常量表达式。这可以提高可用性和与C++代码的兼容性。
    struct POINT
      {
       int x,y;
      };
    
    int GetYFunc(y)
      {
       return(y * y);
      }
    
    void SomeFunction(int x1,int x2,int y)
      {
       POINT pt={ x1+x2, GetYFunc(y) };
       ProcessPoint(pt);
      };
  3. 修正在以大量数据数组编译union时发生的错误。
  4. 修正StringToCharArray函数操作。现在它将整个传递的字符串转换为Char数组,而不是在第一个终止null字符处停止。
  5. 如果类/结构的父类没有默认构造函数,则添加对类/结构的构造函数调用的显式存在的控制。

MetaEditor

  1. 分析工具报告中添加显示内联函数的调用位置。

    在下面示例中,func();调用现在突出显示如下:



    func函数本身不会突出显示,因为它的完整代码位于OnStart中。

  2. 添加创建空项目的功能。对于具有默认模板不适合的特定文件结构的非标准开发项目,这是一个有用的功能。



    在这种情况下,将创建一个空设置文件"mqproj"。应手动创建源代码文件。

  3. 实现快速启动MetaEditor。
  4. 修正调试期间观察表达式列表中的数据显示。在某些条件下,该列表可能会显示不正确的变量值。
  5. 修正将".py"扩展名自动添加到使用MQL向导创建的Python脚本文件的问题。
更新文档。
21 五月 2021
MetaTrader 5 Build 2940: 在主工作区MQL5服务的显示布局及更新设计


程序端

  1. 交易服务(包括市场信号虚拟主机)现在可以方便地显示在平台的主工作区。
    在早期版本中,MQL5服务购买区位于主窗口下面的小工具箱窗口。新布局可以显示所有功能以及方便的购买选项。移除下面区域不必要的选项卡可为其他平台功能提供更多空间。



    访问附加服务不会影响主要功能,例如交易和图表分析。
    • 服务选项卡位于柱状图的末端,所有图表选项卡之后。
    • 未使用的服务窗口可以关闭。要重新打开它们,请使用导航器、工具栏或“服务”菜单。

    我们还完全重新设计了服务。设计变得更加简洁和轻便。信号包含之前只能通过MQL5.community网站显示区获得的附加数据:具有主要特性、可靠性、活动度量和其他变量的极坐标图。



  2. 添加对IPv6地址的支持。
    每个网络中使用的IPv4创建于30年前。它包含32位的IP地址,这些IP地址表示为由点分隔的四个8位数字。该算法可产生超过40亿个唯一IP地址。但是,迅速增长的用户数和设备数加速了可用地址池的消耗。

    为避免耗尽问题,某些产品还提供对现代IPv6标准的额外支持。该协议使用128位地址,表示为x:x:x:x:x:x:x:x,其中每个x是六个16位地址元素的十六进制值。从理论上讲,此格式允许5 x 10 ^ 28个唯一地址。除了扩展的地址空间之外,该协议还具有较旧版本的其他优势。有关更多详细信息,请参阅专业文章。

    MetaTrader 5平台已完全支持IPv6。如果您的交易商或提供商切换到新协议,则将可在平台中直接启用协议支持,而无需您采取其他任何操作。

  3. 我们将在build 2815中继续实施提供的任务管理器功能。我们为运行MQL程序调试或性能分析的图表添加了明确的指示。




  4. 实现macOSLinux电脑中Wine下的平台更快启动。常规优化和错误修复:
    • 改进菜单、工具栏和对话框的显示。
    • 修正显示“市场”、“信号”和“ VPS”部分时出现的错误。尤其是,我们已修正“市场”展示中产品logo的加载问题。
    • 更新软件包,便于在macOS电脑上轻松安装MetaTrader 5。借助这个软件包,平台安装过程与其他应用相同。
      该软件包包含可使操作更加稳定和快速的附加组件。强烈建议所有软件包用户在下面链接下载最新版本并重新安装MetaTrader 5:https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/MetaTrader5.pkg.zip
    如果您使用CrossOver,请完全重新安装MetaTrader 5,获得最新的64位平台版本。
  5. 修正“Ctrl+F9”键盘快捷键操作。它可激活工具箱中的交易选项卡。

MQL5

  1. 我们继续限制包括32位组件在内的旧技术的发布。
    • 不再允许32位程序端加载市场中的程序。
    • 32位程序端无法连接到主机服务。
    • 32位MetaEditor版本不支持通过MQL5 Cloud Protector提供的附加文件保护。
    • 使用MetaEditor旧版本(5年前或更早发布的版本)编译的MQL5程序不能在新程序端版本中运行。

    一年前,也就是在发布build 2361之后就停止了对32位平台版本的支持。我们强烈建议升级到MetaTrader 5 64位版本,以便无限制地访问平台的所有功能。
    此外,我们建议所有之前将32位产品版本上传到市场的卖方,使用最新64位MetaEditor重新编译并上传新版本。在程序端中运行32位MQL5程序的功能将很快完全被禁用。
  2. 添加对复数操作的支持。

    添加新内置类型“复杂”。
    struct complex
      {
       double             real;   // 实数部分
       double             imag;   // 虚数部分
      };
    “复数”类型可以作为MQL5函数的参数按值传递(与普通结构不同,普通结构只通过引用传递)。对于从DLL导入的函数,“复数”类型只能通过引用来传递。

    'i'后缀用于描述复常数:
    complex square(complex c)
      {
       return(c*c);
      }
      
    void OnStart()
      {
       Print(square(1+2i));  // 常量作为参数传递
      }
    
    // "(-3,4)"将被输出,这是复数的字符串表示
    目前,复数只有简单的运算可用:=、+、-、*、/、+=、-=、*=、/=、==、!=。

    之后将添加对附加数学函数的支持,以支持计算绝对值、正弦、余弦等。

  3. 新错误代码TRADE_RETCODE_HEDGE_PROHIBITED —由于禁止锁仓持仓,因此不允许开仓或下挂单。如果用户在禁用账户锁仓以及用户对相同交易品种已有反向订单或持仓的情况下试图执行交易操作,则返回错误。

MetaEditor

  1. 修正非可视模式下调试和分析终止。
  2. 修正对真实数据的指标分析。在某些情况下,这种分析可能无法启动。

VPS

  1. 修正环境迁移到VPS。包含指标作为资源的EA交易可能会出现错误。

信号

  1. 修正交易模式检查复制信号的问题。可以在交易商端限制交易品种的交易,即交易商可以设置“仅买入”、“仅卖出”或“仅平仓”的条件。在早期版本中,同步需要完整的交易条件,因此在所有其他情况下均不允许复制。更新后,部分受限的条件将被视为“交易”。此功能尤其对希望复制信号的股票交易商客户有用。

Tester

  1. 修正测试期间检查交易时段的问题。在某些条件下,交易操作执行可能会在测试期间失败,在这种情况下,即使操作是在交易时段内启动,也会返回“市场已关闭”错误。
更新文档。
2 四月 2021
MetaTrader 5 build 2875:其他改进和修复

程序端

  1. 修正导致将更新的MQL5标准程序复制到程序端根数据目录而不是MQL5子目录的问题。由于这个错误,在数据目录下可能会创建额外的"Experts"、"Images"、"Include"和其他文件夹。

    平台更新后,将检查这些文件夹并自动删除。
  2. 修正会阻止用户登录到内置MQL5.community聊天的错误。

Tester

  1. 修正通过MQL5云网络优化EA交易。在某些条件下,优化可能无法启动。

MetaEditor

  1. 修复MQL5程序调试和分析期间出现的错误和崩溃。

更新文档。
26 三月 2021
MetaTrader 5 build 2860:增强改进Wine和SQL集成

程序端

  1. 添加启用/禁用其他MQL5.community服务的功能。例如,如果您对MQL5编程文章信号服务的复制交易特性不感兴趣,您可以禁用相关部分,进而优化资源和程序端工作空间。



    默认启用所有服务。

  2. 我们重点优化了macOSLinux系统中Wine下的程序端操作:
    • 现在,未锁定的服务窗口(导航器、工具箱)不可以被拖拽出程序端边界。之前,这可能会导致很难将窗口拖回程序端。
    • 修正在更改窗口大小时调整服务窗口的内容。
    • 修正任务管理器中显示性能指标的问题。
    • 改进工具栏上图标的显示。
    • 修正聊天中的未读消息计数。
    • 修正显示图表系统命令:隐藏、展开和关闭。
    • 修正日志显示。
    • 修正显示图表工具提示。
    • 修正图表打印命令。
    • 修正使用Linux皮肤时顶部菜单的显示。
    • 修正MetaEditor中GitHub、MSDN和堆栈溢出的搜索

    我们建议所有用户将Wine更新到最新稳定版。这会提高平台的性能和稳定性。
  3. 添加在BORSA Istanbul(伊斯坦布尔交易所)交易时对"Market To Limit"订单的支持。这类订单最初作为市价单执行。如果流动性不足,则剩余交易量将作为限价单添加到订单簿中,并带有最后交易价格。
  4. 修正波动图表的显示。现在,将根据选项板上选择的到期日期来构建图表。
  5. 修正通过快速搜索条将交易品种添加到市场深度。如果交易品种名称带有空格,则该交易品种将不会添加到列表中。




MQL5

  1. 扩展使用SQL数据库的可能性。现在,查询支持多种统计和数学函数。

    统计函数
    • 模式
    • 中值(50百分位)
    • percentile_25
    • percentile_75
    • percentile_90
    • percentile_95
    • percentile_99
    • stddev或stddev_samp — 采样标准偏差
    • stddev_pop — 总体标准偏差
    • variance或var_samp — 采样方差
    • var_pop — 总体方差

    数学函数

    例如
    select
      count(*) as book_count,
      cast(avg(parent) as integer) as mean,
      cast(median(parent) as integer) as median,
      mode(parent) as mode,
      percentile_90(parent) as p90,
      percentile_95(parent) as p95,
      percentile_99(parent) as p99
    from moz_bookmarks;
  2. 添加新
    • __COUNTER__ — 每次调用逐一添加。在模板和宏中使用时,提供单独的计数器。
    • __RANDOM__ — 生成一个随机ulong数;它类似于MathRand函数。

  3. 修正当图表交易品种不存在情况下同步图表请求的操作。现在,函数将返回一个相关的错误,而不是无限期等待结果。不存在交易品种的情况则由使用不同交易品种设置的交易账户之间切换引起的。
  4. 优化并加快CopyTicks*函数的速度。

MetaEditor

  1. 使用历史数据更改分析调试的顺序。

    现在,性能分析始终以非可视模式运行。默认调试也以非可视模式运行。相应选项可在MetaEditor设置中手动启用:




  2. 添加配置服务的功能。这个过程类似于其他MQL5程序。
  3. 修正性能分析报告中函数名称的显示。在某些情况下,名称可以指定为<uknown>。

文档已更新。
26 二月 2021
MetaTrader 5 build 2815: 从Python访问市场深度,改进调试器和分析工具

程序端

  1. 添加通过Python API访问市场深度数据的功能。
    三项新功能可以快速获取用于统计计算和机器学习任务的数据,这可以使用大量即用型Python程序库来实现。

    • market_book_add — 订阅MetaTrader 5 程序端,接收与指定交易品种市场深度更改相关的事件。
    • market_book_get — 从BookInfo返回一个元组,其中包含指定交易品种的市场深度记录。
    • market_book_release — 取消MetaTrader 5 程序端订阅与指定交易品种市场深度更改相关的事件。

  2. 推送通知的最大长度从256个字符增加到1024个字符。现在,您可以从移动设备上的MQL5程序发送更多信息。
  3. 添加任务管理器的初始版本,它可以通过按F2键来调用。

    任务管理器可以监视平台消耗的资源。您可以查看图表消耗的内存量,EA交易以及其他性能指标使用的CPU资源。如果平台性能下降,则可以轻松检测并解决问题



  4. 加强订阅服务。为有延迟报价的交易品种添加特殊指示:
    • 市场报价中的交易品种标记为时钟图标,并且延迟值显示在工具提示中
    • 数据延迟通知显示在图表上



  5. 修正没有交易账户连接时的订阅列表显示。
  6. 修正电子邮件和时事通讯中的链接。现在,所有链接都在默认浏览器中打开。以前,链接仅在IE中打开。
  7. 修正从WebRequest函数到包含IPv6地址和Cloudflare保护的主机的连接。
  8. 改进VPS服务的功能和响应能力。
  9. 改进WineMacOS/Crossover下的操作,包括带有M1处理器的macOS Big Sur版本。

MQL5

  1. 修正ArrayPrint函数中的错误。该函数有时可能无法打印数组。
  2. 优化通过File*函数执行的文件操作。现在,文件读取和写入操作运行得更快。
  3. 取消当动态数组用作函数参数时要求指定动态数组第二,第三和第四维度大小的限制。这增加了代码的重用性和灵活性。
    void func(int &arr[ ][ ][ ][ ])
      {
      }
  4. 修正ArrayBsearch函数的操作。该函数可能会在二进制搜索过程中返回找到的元素的错误索引。

MetaEditor

  1. 经过改进的调试器中提供了更多新功能。
    • 现在,数组将根据ArraySetAsSeries设置的排序显示在观察窗口中。
    • 添加对局部静态变量的支持。
    • 修正指定数组元素值的显示。
    • 修正处理“静态”类字段。
    • 为更准确而可靠的调试而进行的其他改进。

  2. 添加“在分析中启用优化”的选项。
    可以禁用代码优化模式,以便在性能分析报告中包含更多详细信息。没有优化的代码速度可能会慢几倍,但是此模式可提供更广泛的代码覆盖范围。请注意,通过优化的代码瓶颈可能不准确。
    可以通过禁用“在分析中启用内联”来设置较温和的分析模式。


    优化管理选项也已添加到项目设置
    • 如果在项目中禁用优化,则新选项将被忽略,因此,性能分析将始终禁用优化(包括内联操作)。
    • 如果在项目中启用优化,则在性能分析编译期间将考虑新选项。

  3. 添加用于调试和分析过程的日志记录。在操作开始时记录环境设置;在操作停止时记录收集的数据统计信息。
    MQL5 profiler    starting 'ExpertMACD.ex5' on history with parameters:
    MQL5 profiler       symbol: 'EURUSD'
    MQL5 profiler       period: 'H1'
    MQL5 profiler       date from: '2021.01.01'
    MQL5 profiler       date to: '2021.02.22'
    MQL5 profiler       ticks mode: 'every tick'
    MQL5 profiler       execution delay: 0 ms
    MQL5 profiler       deposit: 10000
    MQL5 profiler       currency: 'USD'
    MQL5 profiler       leverage: 1:100
    MQL5 profiler       profit in pips: NO
    MQL5 profiler    profile data received (4640 bytes)
    MQL5 profiler    758 total measurements, 0/0 errors, 470 kb of stack memory analyzed
    MQL5 profiler    7782 total function frames found (1929 mql5 code, 342 built-in, 1403 other, 4108 system)

Tester

  1. 修正高级测试设置中的非交易时间的规范。

更新文档。
15 一月 2021
MetaTrader 5 build 2755:弹出价格窗口和改善调试器

程序端

  1. 修改弹出价格窗口,可以在任何尺寸的屏幕上查看交易品种价格。

    该窗口现在支持多列显示,从而可以有效利用屏幕空间。要切换显示模式,请使用窗口属性对话框。

    在“弹出价格”窗口中支持多列显示

    该窗口的进一步改进如下:
    • 添加列的选择菜单。该菜单提供“市场报价”中可用的相同的交易品种属性。
    • 优化大量交易品种的操作。现在,窗口对于10个和1000个交易品种具有同样高的性能。
    • 在工具提示中添加显示交易品种的简要信息。
    • 修正应用颜色设置显示价格上涨和下跌的问题。

  2. 添加在合成“市场深度”的报价图表上显示交易。

    合成“市场深度”用于不提供2级价格的交易品种。在这种情况下,将从最佳卖价和最佳买价开始,以价格变动幅度的差额自动构建级别。现在,如果为交易品种提供的是最后交易价格和交易量数据,则相关数据将显示在报价图表上。该信息以圆圈的形式显示:

    • 红色圆圈显示卖出交易。
    • 蓝色圆圈显示买入交易。
    • 当未定义交易方向时,会出现绿色圆圈。

    圆圈越大,进行交易的交易量越多。


    现在,合成“市场深度”显示的是有关最后交易价格和交易量的信息


  3. 修正期权看板的Greeks计算。如果期权标的资产的最后交易价格为零,可能会发生错误。
  4. 我们将继续实施新“订阅”服务,该服务可提供其他交易服务。最近,我们已修正相关订阅的显示。此类订阅用于捆绑服务。
  5. 改进Wine下的平台操作。

MQL5

  1. 添加在释放鼠标右键和鼠标中键时,ChartEvent事件的生成。该事件可在创建图形面板时使用。要启用此事件,请通过CHART_CONTEXT_MENU属性禁用图表快捷菜单。
  2. 修正在Sleep函数等待时间导致严重错误的问题。

MetaEditor

  1. 我们已经启动调试器的全局更新。观察表达式的窗口得到显着改善。现在,它能够以下拉列表的形式查看数组和对象的内容以及指针值。


    调试时查看数组和对象的内容


    要查看数组或对象,请在观察窗口进行双击。

  2. 修复打开某些项目时的冻结问题。

文档已更新
26 十一月 2020
MetaTrader 5 build 2715: 功能改进

程序端

  1. 修正在使用期权看板时平台冻结的问题。平台冻结可能是由于在交易品种设置中指定零报价大小而引起的。
  2. 修正在HiDPI显示器上UI显示的错误。

MQL5

  1. 修正通过StringToTime函数,字符串到时间的转换。在将时间指定为"yyyymmdd [hhmiss]"时可能会发生此错误。
  2. 修正对包含动态数组的对象的隐式复制运算符的操作。现在,该操作将目标对象大小减小为复制的对象大小。
    struct MyStruct
    {
      string Array[];
    };
    
    void OnStart()
    {
      MyStruct a1,a2;
      ArrayResize(a1.Array,3);
      ArrayResize(a2.Array,1);
      a1=a2;
    }
    之前,"a1"数组大小在函数调用后等于3。现在,这个数组大小将为1。

MetaTester

  1. 更新MQL5云网络测试代理的评级计算算法。现在,确定评级更加准确,更改的频率也更低。

文档已更新。
12 十一月 2020
MetaTrader 5 build 2690:改进MetaEditor

程序端

  1. 修正合成市场深度功能的显示。之前,这个功能可能不支持某些交易品种。

    合成市场深度用于没有提供2级价格的交易品种。在这种情况下,将从最佳卖价和最佳买价开始,以等于价格变动幅度的距离,自动构建等级。这是一种方便快捷的工具,可用于快速,最清晰地下达、修改和删除订单。



MQL5

  1. 使用SymbolInfoTick函数,优化和显著加快从MQL5程序访问最后价格的速度。
  2. 修正从对话框重置Ichimoku Kinko Hyo指标参数。



  3. 修正当交易品种不可使用历史记录时,冻结Copy*函数。
  4. 代码分析工具的总体更新中的更多改进。除了build 2650中提供的创新功能外,还实现了以下改进:
    • 改进数据显示
    • 报告中显示使用较短的列名称
    • 能够将分析报告保存到文件
    • 在报告中为函数添加带有行号的工具提示显示。



MetaEditor

  1. 添加禁用剪贴板追踪和清空剪贴板历史记录的功能。

    剪贴板追踪功能可通过提供快速访问最近使用的数据来提高源代码的可用性。在任何源代码位置按下Alt+V,从菜单中选择任何较早复制的行,然后将该行插入到所选位置。

    使用相应的工具栏命令或编辑器设置来启用/禁用追踪。



  2. 修正在程序调试期间计算一些观察表达式的问题。

MetaTester

  1. 现在禁止在框架接收模式的策略测试中运行的EA交易。
  2. 修正在策略测试中导入优化结果的问题。该错误可能导致不正确地导入时间周期值。

文档已更新。
9 十月 2020
新版MetaTrader 5平台build 2650:背景图表加载和MQL5代码分析工具改进

程序端

  1. “选项”选项卡提供一个名为“预加载未结持仓和订单的图表数据”的新设置。

    为了节省流量,交易平台仅在请求相关数据时下载交易品种价格历史(例如,在打开价格图表或启动测试时)。然而,对于常用交易品种来说,这并不是很方便。如果启用此新选项,您有未结持仓或挂单的交易品种图表将在后台模式下更新。因此,打开图表后您无需等待数据下载,相关数据将立即可供分析。




  2. 修正周末后生成日柱形图。
  3. 修正图表更新。在额外下载更新的价格数据之后,图表偶尔会出现更新失败的问题。
  4. 优化更新账户交易历史缓存。通过优化,可以减少使用History*函数时的数据延迟。
  5. 修正在交易历史显示为持仓时,评论列的显示问题。
  6. 修正信号续订按键的显示问题。

MQL5

  1. 代码分析工具的总体更新中的更多改进。除了build 2615中提供的创新功能外,还实现了以下功能:

    添加新参数
    我们之前已经宣布新分析工具的抽样方法的用法。分析工具在MQL程序操作中暂停(每秒~1000次),并收集有关在某些代码段中执行暂停次数的统计信息。这还包括对调用堆栈的分析,以确定每个函数在总代码操作时间内所占的份额。在分析后,用户会收到有关操作暂停次数以及每个函数出现在调用堆栈中的次数的统计信息:
    • 总CPU [单位,%] — 函数在调用堆栈中出现的次数。
    • 自身CPU [单位,%] — 直接在指定函数内出现的“暂停”次数。此变量对于识别瓶颈至关重要:根据统计数据,在需要更多处理器时间的情况下,暂停发生的频率更高。


    添加在分析过程中禁用函数内联的功能
    在MQL程序的编译过程中,对函数进行内联,即,将函数代码直接添加到函数调用站。这可以显着提高性能。但是,此过程会使函数分析变得困难。为了获得有关“纯”函数的报告,可以在MetaEditor设置中禁用内联:




    更新报告设计
    我们重新设计了性能分析报告,并在源代码窗口中显示性能分析信息。现代化设计将使Visual Studio用户更加熟悉。




  2. 修正CopyTicksRange函数操作的问题。该函数有时会返回不完整的数据。
  3. 新错误代码TRADE_RETCODE_HEDGE_PROHIBITED —由于禁止锁仓持仓,因此不允许开仓或下挂单。如果用户在禁用账户锁仓以及用户对相同交易品种已有反向订单或持仓的情况下试图执行交易操作,则返回错误。
  4. 删除调试指标时调用MessageBox的功能。无法从指标调用MessageBox,因为它在等待用户响应的时间段会一直暂停线程执行。
  5. 使用SymbolSelect函数优化并显着加速将交易品种添加到“市场报价”的过程。
  6. 修正固定大小数组的ArrayInsert函数行为。现在,该行为与文档中的描述相符:插入元素时,目标数组的大小不会更改,插入位置右侧的元素会向右移动(最后一个'count'元素为“下降”),同时将元素从源复制到释放空间。

Tester

  1. 修正在测试期间使用自定义交易条件设置;已修改设置对话框。

    • 修正计算自定义手续费。要启用手续费,现在只需指定交易品种名称即可,无需整个路径。
    • 重新排列选项卡,提高操作效率。
    • 重命名对话框和启用自定义设置的选项。
    • 在设置表中优化列宽。
    • 禁用“使用自定义设置”选项时,对话框中的所有其他设置均被停用。以前,设置仍可编辑,用户可能会错误地认为这些设置将在测试期间应用。




  2. 修正有关根据单号从交易历史接收订单时可能出现的错误。

MetaEditor

  1. 为代码编辑窗口添加配色方案预设:浅色(默认)、深色和蓝色。您可以自定义编辑器,而无需手动配置编辑器视图。

    此外,现在可以自定义功能工具提示的边框颜色。



     
  2. 工具栏中的所有图标均已更新,支持HiDPI显示器。

文档已更新。

17 九月 2020
MetaTrader 5 build 2615: 策略测试中的基础分析和复杂标准

程序端

  1. 扩展基础分析组件。

    添加新交易品种属性,该新属性可以更准确地对交易品种进行分类:

    • 部门 — 资产所属经济部门,例如能源、金融、医疗保健和其他部门。
    • 行业 — 资产所属行业,例如运动服、饰品、汽车制造、餐饮业和其他行业。
    • 国家 — 股票在证券交易所交易的公司所在的国家。

    基于这些属性,现在在市场报价中实施单独的系统,从而更有效地操作交易品种。从菜单中选择一个类别,所有可用交易品种将被添加到列表中进行深入分析:



    相关属性已被添加到合约规范中:



    此外,交易品种的基础数据现在可以直接从平台打开。大量聚合器的链接已经添加到“市场报价”的快捷菜单中:



    扩展数据的有效性由交易商控制。但是,我们已确保在最大数量的交易品种中默认提供高级信息。交易商将其服务器更新到新版本后,相应的国家/地区、行业和行业数据就会出现在您的平台中。
  2. 改进信号市场展示区。租用和订阅按键已添加到左侧面板:



    进一步改进版块设计。这包括提亮按键颜色、扩大MQL5登录按键及其他改进。

  3. 修正“止损”和“止盈”图表水平的潜在盈利/亏损计算。



  4. 修正计算合成交易品种时出现的错误。这些错误可能会导致平台在启动时的冻结问题。
  5. 修正在数据窗口中显示内置分形指标
  6. 平台工具栏中的所有图标已更新支持HiDPI显示器。
  7. 为已复制交易信号修正持仓交易量调整。调整操作有时会由于应用的止损水平错误而失败,从而导致“无效停止”错误。
  8. 优化服务器上相关更改后的价格历史重建。
  9. 修正在图表上显示交易水平的工具提示。在某些情况下,就是禁用显示交易水平,工具提示仍可以显示在图表上。
  10. 修正“工具箱\交易”部分的订单和持仓快捷菜单中的“在图表显示\自动更新”选项。现在,如果不勾选此选项,则所有打开的图表都将禁用交易历史显示。

MQL5

  1. 添加MathClassify函数。该函数可以确定实数型,并以ENUM_FP_CLASS枚举值的形式返回结果。
    ENUM_FP_CLASS  MathClassify(
       double  value      // 实数
       );
    该枚举包括以下值:
    • FP_SUBNORMAL — 比最小可表示正规数DBL_MIN — 2.2250738585072014e-308更接近于零的次正规数。
    • FP_NORMAL — 正规数的范围在2.2250738585072014e-308与1.7976931348623158e+308之间
    • FP_ZERO — 正零或负零,
    • FP_INFINITE — 无法用适当的类型(正或负无穷大)表示的数字。
    • FP_NAN不是一个数字。
    使用以下代码检查实数有效性:
    if(MathClassify(value)>FP_ZERO)
      {
       Print("value is not a valid number");
      }
  2. 添加可使用SymbolInfoString函数获得的交易品种属性。
    • SYMBOL_COUNTRY — 股票在证券交易所交易的公司所在的国家。
    • SYMBOL_SECTOR_NAME — 资产所属经济部门,例如能源、金融、医疗保健和其他部门。
    • SYMBOL_INDUSTRY_NAME — 资产所属行业,例如运动服、饰品、汽车制造、餐饮业和其他行业。

    该属性以字符串形式返回。

    交易品种所属的部门和行业可以枚举值形式获得。这可通过使用SymbolInfoInteger函数请求以下属性来完成:

    • SYMBOL_SECTOR
    • SYMBOL_INDUSTRY

    已添加ENUM_SYMBOL_SECTOR和ENUM_SYMBOL_INDUSTRY枚举用于处理这些属性。

  3. MQL5程序中实现了新内存管理机制。它可最高以3倍的速度进行内存分配,并避免潜在的内存访问错误。
  4. 通过History*函数,优化和加速账户报价历史的操作。
  5. 修正来自OnDeinit进入点的WebRequest调用。在早期版本中,在EA交易停止的情况下无法实现该函数的调用。
  6. 修正来自服务的WebRequest函数调用。之前,服务重启之后,函数调用可能会失败。
  7. 添加使用OpenCL时,对设备上的双精度型支持的检查。因过度四舍五入,不能在财务计算中使用浮点型。因此,平台明确要求支持双精度型进行计算。如果不支持双精度型,则在平台日志中写入相应的消息:设备'<name>'不支持'double'类型。之前,在这种情况下会显示常见错误消息。
  8. 明显加快使用ACCOUNT_EQUITY和ACCOUNT_BALANCE参数的AccountInfoDouble函数的执行速度。
  9. 修正通过ChartApplyTemplate函数将模板应用到图表的问题。
  10. 修正使用CHART_BRING_TO_TOP参数的ChartSetInteger函数调用。
  11. 新Conjugate方法已添加到内置Alglib程序库中。此方法启用复数的共轭数计算。该程序库位于MQL5\Include\Math\Alglib。
  12. 完整修订代码分析工具。新分析工具以更高的精度和速度运行。
    • 现在,该分析基于经过类似于编译程序发布版本进行优化的代码。。由于可以在程序执行期间使用完全相同的代码,因此这可以更准确地确定代码执行速度。
    • 新分析工具使用“抽样”剖析方法。这种轻量级且准确的方法通过定期收集调用堆栈数据和计算性能来收集应用程序性能统计信息。
    • 不同于以前的版本,新分析工具不会对所分析的代码进行任何更改。先前使用的工具方法在代码中添加了某些结构,用于测量函数的速度。这可能会影响最终的代码速度。
    分析工具的开发将继续进行。即将发布的平台版本还将提供进一步的改进。

Tester

  1. 优化使用MQL5云网络的操作。修正在代理上加载EA交易。
  2. 添加新优化标准“最大复杂标准”。这是测试通过质量的完整且复杂的衡量标准。它会衡量多个参数:
    • 成交数
    • 盈亏
    • 采收率
    • 期望收益
    • 夏普比率

    就复杂分析而言,参数的最大值(例如盈利)并不总是最佳选择。复杂标准逐渐选择最优通过:首先根据成交数,然后根据期望收益、采收率等。新选项可以根据所有参数接收最佳优化通过。此外,您可以根据所需参数(例如最高盈利)选择最佳通过。

    在策略测试器设置中选择新标准,然后开始优化。



    “最大复杂标准”值将显示在优化结果中单独的“结果”选项卡。可以按此列对通过进行排序。新标准支持颜色编码加亮,从而在视觉上突出显示最佳通过。低于20的值以红色突出显示,高于80的值以深绿色显示。



  3. 修正策略测试中的自定义手续费计算。

MetaEditor

  1. 我们已启动全局修订智能代码管理功能(智能提示)。
    • 现在,这些提示除了显示名称之外,还显示完整的函数签名。
    • 现在根据MetaEditor设置来设置提示的字体。
    即将发布的平台版本还将提供进一步的改进。

更新文档。

123456789101112131415