MetaTrader 5 build 4230:更多内置应用程序和扩展ONNX支持

MetaTrader 5新功能

7 三月 2024

程序端

  1. 在标准平台包中添加28个新EA交易和12个新指标。这些应用程序可在导航器的EA交易\Free Robots和指标\Free Indicators部分获得。每个程序均以源代码形式提供,并附有详细注释,可帮助您学习MQL5语言。

    EA交易根据技术指标和蜡烛图形态实施交易策略,例如 3 Black Crows – 3 White Soldiers,Bullish Engulfing – Bearish Engulfing,Bullish Harami – Bearish Harami等。新指标是流行渠道的实施情况:Camarilla、DeMark、Donchian、Fibonacci和Keltner等。


  2. 推出纳斯达克市场数据订阅的准备工作正在进行中。通过该平台,交易者将能够访问来自最大交易所之一的数百种交易品种的实时报价和深入价格历史记录。任何在MetaQuotes-Demo服务器上拥有模拟账户和拥有MQL5.community账户的用户都可以订阅。


    首先,您只需购买订阅并将相关交易品种添加到您的市场报价中。您可以将这些交易品种用作常规交易品种:打开图表,使用对象和指标对其进行分析,并在策略测试器中运行EA交易。访问所有信息的方式与您与交易商合作的普通交易品种一样。

  3. 改进交易品种规格中的预付款部分。该部分现在提供每个交易品种的预付款率和计算值。


    修正某些交易品种类型的预付款显示错误。

  4. 在“帮助”菜单中添加MQL5 Telegram频道的链接。该频道定期分享开发人员感兴趣的内容,包括对新编程文章的评论以及来自 代码库的免费EA和指标。订阅该频道以时刻关注更新消息,确保您不会错过重要信息。


  5. 自定义配置文件的[StartUp]部分添加对ShutdownTerminal参数的支持。使用此参数启动平台以使用脚本执行一次性任务。例如,您有一个用于截图图表屏幕的脚本。您可以创建一个配置文件,与平台一起启动该脚本。如果将ShutdownTerminal设置为“是”添加到该文件中,平台将在脚本完成后立即自动关闭。
  6. 加强对网络协议和市场产品的保护。
  7. 禁用对模拟账户信号服务的支持。要获取有关练习账户的更多统计信息,请使用新交易报告。它提供了大量的指标来描述您的策略盈利能力和风险,包括增长图、平衡图和权益图,以及按方向和交易品种划分的交易分布图等。
  8. 修正“帮助”菜单中交易商协议链接的显示。
  9. 改进租用VPS时最佳服务器的选择。
  10. 修正在导航器中切换版块时刷新订阅页面的问题。
  11. 修正在开设初始账户时更新协议列表的问题。
  12. 更新用户界面翻译。

MQL5

  1. ENUM_MQL_INFO_INTEGER枚举中添加MQL_STARTED_FROM_CONFIG属性。如果脚本/EA交易从配置文件的StartUp部分启动,则返回true。这意味着脚本/EA交易已在启动程序端的配置文件中指定。
  2. 我们继续扩大对ONNX模型的支持。

    机器学习任务并不会一直需要更高的计算精度。为了加快计算速度,一些模型使用较低精度的数据类型,例如Float16甚至Float8。为了允许用户将相关数据输入到模型中,MQL5中添加了以下函数:
    bool ArrayToFP16(ushort &dst_array[],const float &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP16(ushort &dst_array[],const double &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const float &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const double &src_array[],ENUM_FLOAT8_FORMAT fmt);
    
    bool ArrayFromFP16(float &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayFromFP16(double &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayFromFP8(float &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayFromFP8(double &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    由于16位和8位的实数格式可能不同,因此转换函数中的“fmt”参数必须指示需要处理哪种数字格式。对于16位版本,使用新的枚举NUM_FLOAT16_FORMAT,当前具有以下值:

    • FLOAT_FP16 – 标准16位格式也称为 half
    • FLOAT_BFP16 – 特殊的脑浮点格式。

    对于8位版本,使用新的ENUM_FLOAT8_FORMAT枚举,当前具有以下值:

    • FLOAT_FP8_E4M3FN – 8位浮点数,4位表示指数,3位表示尾数。通常用作系数。
    • FLOAT_FP8_E4M3FNUZ — 8位浮点数,4位表示指数,3位表示尾数。支持NaN,不支持负零和Inf。通常用作系数。
    • FLOAT_FP8_E5M2FN – 8位浮点数,5位表示指数,2位表示尾数。支持NaN和Inf。通常用于渐变
    • FLOAT_FP8_E5M2FNUZ — 8位浮点数,5位表示指数,2位表示尾数。支持NaN,不支持负零和Inf。也用于渐变。


  3. 添加机器学习中使用的新矩阵和向量方法:


  4. ONNX Runtime已更新至1.17版本。有关发布说明的详细信息,请参阅GitHub
  5. Python集成包更新至5.0.4200版本,添加对Python 3.12的支持。使用“pip install -- pgrade MetaTrader5”命令更新您的软件包以获取最新更改。
  6. 修正某些情况下的OrderCalcMargin函数操作的问题。
  7. ENUM_DEAL_REASON枚举中添加了DEAL_REASON_CORPORATE_ACTION属性。它表示由于公司行动而执行的交易:合并或重新命名证券、将客户转移到另一个账户等。
  8. 比较方法添加对复向量和矩阵比较的支持。比较涉及到复数之间距离的估算。距离的计算公式为sqrt(pow(r1-r2, 2) + pow(i1-i2, 2),是一个已经可以与epsilon进行比较的实数。
  9. 修正将颜色类型变量转换为RGB格式文本的问题。
  10. 修正在复特征值的情况下,返回Eig方法获取特征向量的结果。为复杂评估添加方法重载。

MetaEditor

  1. 在帮助\MQL5.community菜单中添加最近发布的书籍“MQL5交易者编程”的链接。该书也已添加到搜索系统,因此您可以直接从MetaEditor找到所需的信息:



  2. 内置搜索改进:

    • 工具箱窗口中的搜索结果部分分为两个选项卡:“搜索”用于在线搜索结果(文档、文章、书籍等),“在文件中搜索”用于本地结果。
    • 单独的搜索字符串已添加到结果部分。您可以使用它来代替MetaEditor主工具栏中的搜索栏。

  3. 命令行编译命令时添加对AVX、AVX2和AVX512模式的支持。要进行编译,请在下列键中选择一个添加到命令中:/avx、/avx2或/avx512。
  4. 用于数据库操作的SQLite引擎更新至版本3.45。
  5. 禁用对Internet Explorer的支持。现在仅使用Microsoft Edge WebView2来显示HTML页面。与之前的MSHTML相比,新组件通过提供对最新技术的访问,进一步扩展了内容显示功能。WebView2的使用改善了某些MetaEditor部分的外观,提高了性能,并创建了一个响应速度更快的界面。
  6. 修正在极少数情况下函数自动完成时发生的冻结问题。
  7. 修正崩溃日志中的错误报告。
  8. 修正在极少数情况下函数自动完成时发生的冻结问题。

Tester

  1. 如果测试开始日期恰好是三倍库存费日,则修正三倍库存费的计算。

MetaTrader 5网页端

改进合约规格中预付款要求的显示。现在,除了用于计算比率和初始参数之外,规格还显示最终预付款值。如果预付款数额取决于持仓量,则对话框中将显示相应的水平。


预付款的计算依据是规格窗口打开时的交易品种价格,而不是实时更新。因此,这些数值应被视为具有指示性。要根据当前价格重新计算数值,请重新打开交易品种规格。