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

MetaTrader 5新功能

17 九月 2020

程序端

  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设置来设置提示的字体。
    即将发布的平台版本还将提供进一步的改进。

更新文档。