MetaTrader 5 build 2815: 从Python访问市场深度,改进调试器和分析工具

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

26 二月 2021

程序端

  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. 修正高级测试设置中的非交易时间的规范。

更新文档。