新版MetaTrader 5平台build 2265:用于MQL5 3D可视化的DirectX功能和策略测试中的交易品种设置

MetaTrader 5新功能

6 十二月 2019

程序端

  1. 有更多列可显示在市场报价中。现在,还提供之前只显示在“详细信息”选项卡中的额外40种交易品种参数。




  2. 添加在导航中突出显示当前连接的账户和当前服务器。这个功能在您有多个不同交易商账户的情况下,将非常实用。




  3. 更新图表框架设计。框架更小,因此为有用信息留出更多空间。




  4. 改进将交易历史显示为持仓时计算交易总量的算法。现在根据实际记录计算该数值。

    要将交易历史显示为持仓,程序端会使用请求期间执行的交易信息。只有在此期间关闭的持仓才会显示在历史中。如果持仓仍未完结或平仓时间超出所选间隔,则将不会显示在历史记录中。因此,持仓模式下的总盈利和手续费可能不同于“订单/交易”历史模式下的总盈利和手续费。

    例如,您正在查看过去一周的历史。在此期间,执行了100笔交易,其中98笔参与了20个持仓的开仓和平仓。最近两笔交易开设新持仓,目前尚未结束。在这种情况下,交易历史包含100条记录和基于这些交易计算的总值。当以持仓的形式查看历史时,您将看到基于98笔交易收集的20条记录。当计算总值时,只有这些数据将被考虑。如果交易商收取入市交易费,那么交易历史中的最终手续费值将不同于持仓历史中显示的手续费,因为在后一种情况下,最后两笔交易将被忽略。

  5. 实现更快启动MQL5程序。
  6. 程序端安装文件中添加了新/beta键,可以下载测试版。在正常模式下,应该先安装发布版,然后才可更新到测试版。现在跳过这一步骤,从而节省时间和流量。安装开始示例:
    C:\mt5setup.exe /beta
  7. 修正显示“交易所股票”类型交易品种的预付款需求。
  8. 通过使用Clang/LLVM编译器,加速所有平台组件的操作。在某些情况下,编译速度可提高20%。

MQL5

  1. 为3D可视化添加新DirectX 11功能和着色器。现在,可以在MQL5中直接创建3D图形。

    新CCanvas3D类是CCanvas自定义图形类的扩展。它位于\MQL5\Include\Canvas\目录。这个类的功能是可通过DirectX API渲染3D对象。

    • 创建 — 创建一个场景。
    • 附加 — 将场景绑定到图表。
    • 破坏 — 破坏一个场景。
    • ObjectAdd — 将继承自CDXObject基类的子对象添加到场景中。
    • 渲染 — 通过ObjectAdd方法添加的完整渲染循环,包括所有CDXObject的缓冲区清除和渲染。
    • RenderBegin — 启动场景渲染,使用指定颜色(如果设置DX_CLEAR_COLOR标识)和深度缓冲区(使用DX_CLEAR_DEPTH时)填充渲染缓冲区,并为默认着色器设置DXInputScene场景缓冲区。
    • RenderEnd — 完成场景渲染并将结果接收到内部缓冲区。如果redraw==true,在图像运行的图表上显示图像。
    • ViewMatrixGet — 接收视图矩阵。
    • ViewMatrixSet — 设置视图矩阵。矩阵不兼容ViewPositionSet、ViewRotationSet、ViewTargetSet和ViewUpDirectionsSet方法。
    • ViewPositionSet — 设置视图位置。
    • ViewRotationSet — 设置视图旋转矩阵。
    • ViewTargetSet — 设置视图指向的点。与ViewUpDirectionsSet一起,是ViewRotationSet的另一种选择。
    • ViewUpDirectionsSet — 设置视图的垂直位置。与ViewTargetSet一起,是ViewRotationSet的另一种选择。
    • ProjectionMatrixGet — 接收投影矩阵。
    • ProjectionMatrixSet — 设置投影矩阵。

    关于新程序库的详细文档将很快发布。




  2. 添加支持直接从MQL5操作SQLite数据库。这使得无需创建复杂的指令即可轻松执行SQL查询。内部操作通过新的标准库扩展实现。

    提供以下函数:

    • DatabaseOpen — 在指定文件中打开或创建数据库
    • DatabaseClose — 关闭数据库
    • DatabaseTableExists — 检查数据库中是否有表格
    • DatabaseExecute — 执行对指定数据库的查询
    • DatabasePrepare — 创建查询句柄,该句柄可以使用DatabaseRead()进一步执行
    • DatabaseRead — 跳转到查询结果中的下一条记录
    • DatabaseFinalize — 删除在DatabasePrepare()中创建的查询
    • DatabaseTransactionBegin — 启动交易事务执行
    • DatabaseTransactionCommit — 完成交易事务执行
    • DatabaseTransactionRollback — 滚动返回交易事务
    • DatabaseColumnsCount — 接收查询中的字段数
    • DatabaseColumnName — 根据数字接收字段名
    • DatabaseColumnType — 根据数字接收字段类型
    • DatabaseColumnSize — 接收字段大小(以字节为单位)
    • DatabaseColumnText — 接收当前记录中的字段的字符串值
    • DatabaseColumnInteger —  接收当前记录中的int值
    • DatabaseColumnLong — 接收当前记录中的long值
    • DatabaseColumnDouble — 接收当前记录中的double值
    • DatabaseColumnBlob — 接收当前记录中的字段值数组

    函数操作添加了以下错误代码:

    • ERR_MQL_DATABASE_INTERNAL (5120) — 内部数据库错误
    • ERR_MQL_DATABASE_INVALID_HANDLE (5121) — 无效数据库句柄
    • ERR_MQL_DATABASE_TOO_MANY_OBJECTS (5122) 超出数据库对象的最大数目
    • ERR_MQL_DATABASE_CONNECT (5123)数据库连接错误
    • ERR_MQL_DATABASE_EXECUTE (5124) 请求执行错误
    • ERR_MQL_DATABASE_PREPARE (5125) 请求创建错误
    • ERR_MQL_DATABASE_NO_MORE_DATA (5126) — 没有要读取的数据
    • ERR_MQL_DATABASE_STEP (5127) 移动到下一个查询记录时出错
    • ERR_MQL_DATABASE_NOT_READY (5128) 读取查询记录的数据尚未准备好
    • ERR_MQL_DATABASE_BIND_PARAMETERS (5129) SQL查询自动替换错误

  3. 添加MQL5程序的新属性,可以选择默认的可视化方法。
    #property optimization_chart_mode "3d,InpX,InpY"
    该属性可以设置优化结束时打开的图表类型,以及X和Y轴的程序参数。

    该属性仅设置默认图表视图。它可以随时使用快捷菜单手动更改。

  4. MathArctan2新函数。返回角度的弧度值,其正切值等于两个指定数值的比率。
    double  MathArctan2(
       double  y      // 点的y坐标
       double  x      // 点的x坐标
       );
  5. 我们对程序进行了总体优化,提高性能并降低资源消耗。
  6. 添加可在策略测试中执行的数学计算示例。这些在\MQL5\Experts\Examples\Math 3D\目录下提供。
  7. 引入对namespaces(命名空间)更严格控制。
  8. 添加在MQL5程序中使用.NET库时加载链接库。如果使用的.NET程序库需要其他程序库才可运行,编译器将尝试从\MQL5\Libraries自动下载所需的程序端。
  9. 修正用于Python集成的MetaTrader模块中的时间操作。现在,所有输出数据都使用程序端连接的交易服务器的时间。

Tester

  1. 添加许多新功能和改进:


    交易品种的自定义设置
    现在您可以更改主要交易品种的设置,并为此执行测试/优化。几乎所有规格参数都可以重写:交易量、交易模式、预付款需求、执行模式和其他设置。因此,如果您需要在不同条件下检查EA,则无需创建单独的自定义交易品种和下载其历史记录。这可以通过更改标准的交易品种设置来完成。



    如果交易品种规格为自定义,则齿轮图标和交易品种图标将用星号标记。这表示自定义参数用于当前测试。




    最后设置/EA交易/图表
    使用新快捷菜单命令进行快速测试或优化设置。选择最后使用的测试设置、最近图表或应用程序:




MetaEditor

  1. 添加直接从MetaEditor处理C/C++和Python项目的能力。现在,可以使用内置编辑器管理多语言项目。

    如果您的电脑安装了对应的编译器,MetaEditor将进行检测并添加到设置中。同时,您还可以在“编译器”选项卡下指定所需组件的路径。在相同的选项卡中,您可以通过点击相应字段旁边的“安装”来下载组件。




    然后,您就可以如同处理MQL5程序一样,处理C/C++和Python项目。

  2. 添加支持Shared Project目录中的子项目,旨在通过MQL5存储开发共享项目。以前,只能在顶层创建单个项目。
  3. 内置调试程序更新。
  4. 修正在使用代码样式(styler)时添加函数标题。
  5. “跳转到上一个/下一个光标位置”命令现在不仅在“查看”菜单提供,还显示在工具栏上。
  6. 现在可以在项目名称中使用空格。

Android

  1. 添加在交易商网站快速切换到入金/出金页面的能力。

    无需在交易商网站的交易者室中搜索对应的功能。可在程序端中直接获得快速导航命令:用户可以从“账户”和“交易”部分切换到入金和出金页面:



    • 只有在交易商对交易账户启用对应的功能,才可以进行入金/出金操作。
    • 交易程序端不执行任何账户入金/出金操作。集成功能将用户重新定向到对应的交易商网站页面。

  2. 现在,历史持仓可按平仓日期进行排序。
  3. 添加在历史部分用红色和绿色垂直线标记“止损”平仓或“止盈”平仓。
  4. 交易品种规格中添加新字段:

    • 分类 — 这个属性用于额外标记交易品种。例如,这可以是该交易品种所属的市场行业:农业、石油&天然气等。只有在交易商提供对应信息的情况下才显示分类。
    • 交易所 — 进行证券交易的交易所名称。只有在交易商提供对应信息的情况下才显示分类。

  5. 交易部分添加“追加预付款”状态的显示。在这种状态出现时,“预付款”、“可用预付款”和“预付款水平”参数将显示为红色。
  6. 修正在平板电脑上显示OTP部分打开按键。
  7. 其他修复和改进。

iPhone/iPad

  1. 添加在交易商网站快速切换到入金/出金页面的能力。更多详细信息请参阅“MetaTrader 5 Android版新功能列表”。



  2. 添加对iOS/iPadOS暗模式的支持。
  3. 在iPad版本中已提供动态密码部分。
  4. 历史部分用红色和绿色垂直线标记“止损”平仓或“止盈”平仓。
  5. 现在,历史持仓可按平仓日期进行排序。如果持仓尚未关闭,则使用开仓日期进行排序。
  6. 其他修复和改进。