MetaTrader 5平台Build 2450:“订阅”服务,用户界面改进以及修改MetaEditor功能

MetaTrader 5新功能

22 五月 2020

程序端

  1. 我们发布了全新的订阅服务。订阅提供了可协助您进行交易的额外服务。例如,您可以订阅来自知名提供商的高质量市场数据、分析收到的数据并开发新交易策略。您可以选择请求个人经理服务,以帮助您学习交易基础知识或掌握平台使用技能。

    该服务目前正在开发中,并将在下一版本中可用。

    工作原理
    新“订阅”部分已经添加到“导航”中。所有可用服务均显示在此部分。服务列表在交易商端配置,因此它取决于您所连接的服务器。为了便于浏览,将订阅分为不同类别。


    选择一项服务以查看它的详细描述。下一步,点击“订阅”。所有活动订阅都显示在单独的部分中。


    当您订阅市场数据时,相应的交易品种也可供在“市场报价”中选择。它们可以用作常规交易品种:在“市场报价”中查看报价,打开图表并使用对象和指标对其进行分析,以及在策略测试中运行EA。但不支持这些交易品种的交易操作。

    如何支付订阅费用
    您可以使用您交易账户的资金来支付服务费用。无需访问其他网站,支付可以直接从平台执行。

    不久,我们将添加可以通过连接到MetaQuotes-Demo购买市场数据的订阅
    我们计划建立订阅来自全球各地交易所的市场数据。只需单击几下,您就能收到来自纳斯达克(Nasdaq)、芝加哥商业交易所(CME),纽约证券交易所(NYSE)、圣保罗证券交易所(BOVESPA)和其他交易所的实时报价。您将可以使用MQL5.community账户为订阅付费,类似于市场、信号和主机服务购买。

  2. 在图表设置中添加新的“显示报价行情”选项。该选项显示/隐藏包含交易品种名称、时间周期和自定义注释的行。



  3. 在程序端设置和图表设置中添加“显示交易历史”选项。在之前的版本中可提供在图表上显示市场进入和退出的功能,但是这是通过“工具箱\历史记录”部分进行管理。新选项使历史显示的设置更加方便。您可以一次性为所有图表配置历史显示,也可以单独设置所需的图表。



    此外,您可以使用图表快捷菜单快速启用显示交易历史和交易水平:



  4. 在图表设置中添加新的“白底色”配色方案。


  5. 在持仓和订单快捷菜单中添加新命令,从而可以快速打开相关交易品种的“市场深度”和图表:



  6. 添加图表框架突出显示。当程序端中打开多个图表时,这将帮助您找到所需的交易品种图表。在“市场报价”中选择一个交易品种,在“交易”或“历史”部分中选择一个订单或持仓线,或一个警报,相应交易品种图表的框架将闪烁三次。


  7. 改进图表上交易水平的显示。
    • 为了保持图表整洁,不再显示持仓、订单和水平的单号
    • 标题以大写形式显示,提高可读性
    • 如果交易量为零,则显示的交易量不包含小数部分
    • 如果图表高度小于80像素,则隐藏水平


  8. 除了交易品种名称,还在图表的左上角添加显示交易品种描述(如果可用)。




  9. 未结订单和持仓列表中添加了新列:
    • 变化 — 操作盈利百分比
    • 价值 — 持仓的市场价值
    • 幻数 — 通过EA交易开立的订单和持仓的标识符(幻数)

    可以使用快捷菜单显示/隐藏新列。

    持仓值和幻数列也已添加到交易历史部分。

    此外,根据操作结果,未结持仓和历史记录部分的盈利字段会突出显示。

  10. 添加对负值价格的支持。这样可以在类似于近期油价跌至零值以下的情况下正常运行平台。这包括:
    • 在“市场报价”中显示报价
    • 显示图表和“市场深度”
    • 执行交易操作
    • 计算盈利和抵押

  11. 在“市场报价”中可以同时启用的最大交易品种数量已增加到5000。
  12. 修正在聊天中按最后更新日期排序。
  13. 优化和加速含有大量交易品种的操作(50,000及更多)。
  14. 修正在当前交易量与交易品种交易量变化步骤不符的情况下无法平仓的错误。

MQL5

  1. 优化和加速报价历史的操作。
  2. 添加用于处理数据库的新函数:
    • DatabaseReset — 将请求重置为初始状态,类似于DatabasePrepare调用。该函数旨在使用不同的参数值多次执行请求。例如,当使用INSERT命令将数据批量添加到表格中时,应为每个条目形成一组自定义的字段值。
    • DatabaseBind — 在请求中设置参数值。该函数在SQL请求包含"?"或"?N"参数化值的情况下被使用,这里N表示参数索引(从1开始)。
    • DatabaseBindArray — 将数组设置为参数值。

  3. FileSelectDialog函数添加FSD_FILE_MUST_EXIST标识。它指出所选文件必须存在。
  4. 描述期权的值已被添加到ENUM_SYMBOL_INFO_DOUBLE枚举:
    • SYMBOL_PRICE_CHANGE — 当前价格相对于上一交易日结束时价格的变化(以百分比表示)。
    • SYMBOL_PRICE_VOLATILITY — 价格波动率(以百分比表示).
    • SYMBOL_PRICE_THEORETICAL — 理论期权价格.
    • SYMBOL_PRICE_DELTA — 期权/warrant delta。显示当基础资产价格变动1时,期权价格变化的值。
    • SYMBOL_PRICE_THETA — 期权/warrant theta。期权价格每天因临时停止而损失的点数,即到期日临近时。
    • SYMBOL_PRICE_GAMMA — 期权/warrant gamma。显示delta的变化率 — 期权溢价变化的快慢情况。
    • SYMBOL_PRICE_VEGA — 期权/warrant vega。显示当波动率变化1%时,期权价格变化的点数。
    • SYMBOL_PRICE_RHO — 期权/warrant rho。反映了理论期权价格对利率变化1%的敏感性。
    • SYMBOL_PRICE_OMEGA — 期权/warrant omega。期权弹性 — 期权价格相对于基础资产价格变动的百分比。
    • SYMBOL_PRICE_SENSITIVITY — 期权/warrant sensitivity。通过期权基础资产价格应该变化多少点,来显示期权价格应该变化一个点。

  5. DatabaseExport函数中添加HEX格式的BLOB字段导出。
  6. 新CHART_SHOW_TICKER属性已添加到ENUM_CHART_PROPERTY_INTEGER — 在左上角显示交易品种报价行情。如果CHART_SHOW_TICKER设置为false,也会将CHART_SHOW_OHLC设置为false 并因此隐藏OHLC。   
  7. 改进编译器生成的代码质量。这可以提高其执行速度
  8. 修复与模板函数和类的编译和执行有关的错误。即是:
    • 重载模板函数调用的优先级不匹配错误
    • 模板方法/类生成错误
    • 尝试访问模板函数的模板参数的内部类引起的错误
    • 由使用内部类引起的模板类代码生成错误。
    • 在B<void*>之前使用B<int>目标对象时产生的错误
    • 创建具有内部类型C且多次封装的复杂对象时出现的错误
    • 将函数指针参数转换为const ref模板时出现的错误
    • 将内部结构传递给模板函数时出现的错误
    • 执行模板函数的优先级不匹配错误
    • for和ddo-while循环中的括号计数不正确
    • 类结构描述中的括号计数不正确
    • 在使用ArrayResize一次添加一个元素时速度变慢
    • 选择匹配的重载函数时出现的错误

  9. 修正CustomTicksReplace函数中出现的错误。
  10. 修正选择交易订单历史的显示周期。现在,该选择范围是基于订单执行日期,而不是之前使用的创建日期。

Python

  1. 路径参数已添加到initialize方法中 — metatrader.exe或metatrader64.exe的路径。如果没有指定此路径,模块会尝试自己查找可执行文件。
  2. 已添加以下新方法:
    • symbols_get — 从MetaTrader 5程序端接收所有交易品种。
    • symbols_total — 获取MetaTrader 5程序端中所有交易品种的数量。

  3. 为以下函数添加了根据交易品种组过滤: orders_getpositions_gethistory_orders_gethistory_deals_get。使用带有"group"参数的调用表格。
  4. 现在,order_sendorder_check返回值与包含原始请求完整描述的'request'字段一起传递。例如:
    ...
    comment=Request executed
    request_id=55
    retcode_external=0
    request=TradeRequest(action=1, magic=234000, order=0, symbol='USDJPY', volume=0.1, price=108.018, stoplimit=0.0, ...
        traderequest: action=1
        traderequest: magic=234000
        traderequest: order=0
        traderequest: symbol=USDJPY
        traderequest: volume=0.1
        traderequest: price=108.018
        traderequest: stoplimit=0.0
    ...
  5. 当在图表上启动时,Python脚本现在接收图表交易品种和周期(以分钟为单位)作为参数。
    import sys
    
    chart_symbol='unknown'
    chart_tf=1
    
    if len(sys.argv) == 3:
        chart_symbol, chart_tf = sys.argv[1:3];
    
    print("Hello world from", chart_symbol, chart_tf)
    
    >> Hello world from T.NYSE 15

MetaEditor

  1. 添加命令“添加现有文件夹”。它可以将所有支持的文件从所选目录批量添加到项目中。



  2. 扩展搜索和替换选项。

    添加带有部分正则表达式支持的扩展搜索功能。使用\r、\n、\t在搜索请求中指定换行符和制表符。搜索和替换对话框已合并为一个多选项卡对话框。


    添加一个用于在程序员社区搜索的单独选项卡。其中包括MQL5.community,以及GitHub、MSDN和Stack Overflow。

    来自外部资源的搜索结果显示在MetaEditor工具箱窗口中:



    此外,您可以从GitHub立即下载源文件。文件将下载到Projects文件夹的单独子目录中,该子目录根据GitHub项目名称进行命名。

    搜索结果还可以按日期排序。

  3. 添加可以在代码编辑窗口中快速更改字体大小。若要更改字体大小,请按下Ctrl并滚动鼠标滚轮。
  4. 添加可以将CSV文件的表格导入数据库表格。导入期间可以设置以下参数:
    • 数据库中的表名
    • 自动或手动文件编码检测
    • 数据分隔符类型
    • 开始时跳过指定的行数
    • 评论前缀
    • 如果文件具有列名
    • 如何确定换行符
    • 数据应该添加到新表还是现有表中
    • 字符串使用什么引号


  5. 添加用于将时间和颜色插入程序源代码的快速命令。从交互式日历和调色板中选择所需的值,然后编辑器以相应的格式将其插入。



  6. 由于现在仅生成64位代码,因此已禁用MQL4支持。
  7. 修正类片段操作。
  8. 修复对项目中绝对路径的支持。
更新文档。