---
title: "新版MetaTrader 5平台build 2265：用于MQL5 3D可视化的DirectX功能和策略测试中的交易品种设置 - 更新历史"
description: "有更多列可显示在市场报价中。现在，还提供之前只显示在“详细信息”选项卡中的额外40种交易品种参数。 - 更新历史"
image: "https://www.metatrader5.com/c/17/0/terminal-3__8.png"
url: "https://www.metatrader5.com/zh/releasenotes/terminal/2117"
---

# 新版MetaTrader 5平台build 2265：用于MQL5 3D可视化的DirectX功能和策略测试中的交易品种设置

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

6 十二月 2019

### 程序端

1. 有更多列可显示在[市场报价](https://www.metatrader5.com/zh/terminal/help/trading/market_watch)中。现在，还提供之前只显示在“详细信息”选项卡中的额外40种交易品种参数。

   ![](https://www.metatrader5.com/c/17/0/terminal-1__8.png)
2. 添加在导航中突出显示当前连接的账户和当前服务器。这个功能在您有多个不同交易商账户的情况下，将非常实用。

   ![](https://www.metatrader5.com/c/17/0/terminal-2__8.png)
3. 更新图表框架设计。框架更小，因此为有用信息留出更多空间。

   ![](https://www.metatrader5.com/c/17/0/terminal-3__8.png)
4. 改进将[交易历史显示为持仓](https://www.metatrader5.com/zh/terminal/help/trading/performing_deals#trade_history)时计算交易总量的算法。现在根据实际记录计算该数值。要将交易历史显示为持仓，程序端会使用请求期间执行的交易信息。只有在此期间关闭的持仓才会显示在历史中。如果持仓仍未完结或平仓时间超出所选间隔，则将不会显示在历史记录中。因此，持仓模式下的总盈利和手续费可能不同于“订单/交易”历史模式下的总盈利和手续费。例如，您正在查看过去一周的历史。在此期间，执行了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自定义图形类](https://www.mql5.com/zh/docs/standardlibrary/canvasgraphics/ccanvas)的扩展。它位于\MQL5\Include\Canvas\目录。这个类的功能是可通过[DirectX API](https://en.wikipedia.org/wiki/DirectX)渲染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 — 设置投影矩阵。

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

   ![](https://www.metatrader5.com/c/17/0/terminal-4__7.png)
2. 添加支持[直接从MQL5操作SQLite数据库](https://www.mql5.com/zh/docs/database)。这使得无需创建复杂的指令即可轻松执行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（命名空间）](https://www.mql5.com/zh/docs/basis/namespace)更严格控制。
8. 添加在MQL5程序中使用.NET库时加载链接库。如果使用的.NET程序库需要其他程序库才可运行，编译器将尝试从\MQL5\Libraries自动下载所需的程序端。
9. 修正[用于Python集成的MetaTrader模块](https://www.mql5.com/zh/docs/python_metatrader5)中的时间操作。现在，所有输出数据都使用程序端连接的交易服务器的时间。

### Tester

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

   ![](https://www.metatrader5.com/c/17/0/terminal-5__7.png)

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

   ![](https://www.metatrader5.com/c/17/0/terminal-6__5.png)

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

   ![](https://www.metatrader5.com/c/17/0/terminal-7__4.png)

### MetaEditor

1. 添加直接从MetaEditor处理C/C++和Python项目的能力。现在，可以使用内置编辑器管理多语言项目。如果您的电脑安装了对应的编译器，MetaEditor将进行检测并添加到设置中。同时，您还可以在“编译器”选项卡下指定所需组件的路径。在相同的选项卡中，您可以通过点击相应字段旁边的“安装”来下载组件。

   ![](https://www.metatrader5.com/c/17/0/terminal-8__4.png)

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

### Android

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

   ![](https://www.metatrader5.com/c/17/0/android__13.jpg)

   > - 只有在交易商对交易账户启用对应的功能，才可以进行入金/出金操作。
   >   - 交易程序端不执行任何账户入金/出金操作。集成功能将用户重新定向到对应的交易商网站页面。
2. 现在，历史持仓可按平仓日期进行排序。
3. 添加在[历史部分](https://www.metatrader5.com/zh/mobile-trading/android/help/history)用红色和绿色垂直线标记“止损”平仓或“止盈”平仓。
4. 在[交易品种规格](https://www.metatrader5.com/zh/mobile-trading/android/help/quotes#specification)中添加新字段：

     - 分类 — 这个属性用于额外标记交易品种。例如，这可以是该交易品种所属的市场行业：农业、石油&天然气等。只有在交易商提供对应信息的情况下才显示分类。
     - 交易所 — 进行证券交易的交易所名称。只有在交易商提供对应信息的情况下才显示分类。
5. 在[交易部分](https://www.metatrader5.com/zh/mobile-trading/android/help/trade)添加“追加预付款”状态的显示。在这种状态出现时，“预付款”、“可用预付款”和“预付款水平”参数将显示为红色。
6. 修正在平板电脑上显示[OTP部分](https://www.metatrader5.com/zh/mobile-trading/android/help/settings_accounts/otp)打开按键。
7. 其他修复和改进。

### iPhone/iPad

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

   ![](https://www.metatrader5.com/c/17/0/ipone-10__4.png)
2. 添加对iOS/iPadOS暗模式的支持。
3. 在iPad版本中已提供[动态密码](https://www.metatrader5.com/zh/mobile-trading/iphone/help/settings/otp)部分。
4. 在[历史部分](https://www.metatrader5.com/zh/mobile-trading/iphone/help/history)用红色和绿色垂直线标记“止损”平仓或“止盈”平仓。
5. 现在，历史持仓可按平仓日期进行排序。如果持仓尚未关闭，则使用开仓日期进行排序。
6. 其他修复和改进。

**请参阅前面的新闻：**

- [MetaTrader 5平台Build 2190](https://www.metatrader5.com/zh/releasenotes/terminal/2106)
- [新版MetaTrader 5平台build 2170：MQL5作用域，全局策略测试和内置虚拟主机更新](https://www.metatrader5.com/zh/releasenotes/terminal/2099)
- [MetaTrader 5平台build 2085：集成Python并改进策略测试](https://www.metatrader5.com/zh/releasenotes/terminal/2085)
- [MetaTrader 5平台build 2005：经济日历，MQL5应用程序服务以及R语言API](https://www.metatrader5.com/zh/releasenotes/terminal/1920)
- [新版MetaTrader 5平台build 1930：浮动窗口图表和MQL5中的.Net程序库](https://www.metatrader5.com/zh/releasenotes/terminal/1898)
