MetaTrader 5平台build 2085:集成Python并改进策略测试

添加新API,使用Python语言通过应用程序,启用MetaTrader 5程序端数据请求。

12 六月 2019

程序端

  1. 添加新API,使用Python语言通过应用程序,启用MetaTrader 5程序端数据请求。

    Python是一种用于开发脚本和应用程序的现代高水平编程语言。它包含用于机器学习、自动化处理以及数据分析和可视化的多个程序库。

    MetaTrader Python程序包是为有效快速地从MetaTrader 5程序端直接通过处理器通信获得交易所数据而设计的。通过这种途径接收的数据可以进一步用于统计计算和机器学习。



    连接

    1. https://www.python.org/downloads/windows下载最新版Python
    2. 安装Python期间,请检查“将Python X.X添加到PATH%”,以便能够从命令行启用Python脚本。
    3. 从命令行安装MetaTrader 5模块
      pip安装MetaTrader5
    4. 添加matplotlib和pytz包
      pip安装matplotlib
      pip安装pytz

    函数

    • MT5Initialize建立与MetaTrader 5程序端的连接
    • MT5Shutdown关闭之前建立的与MetaTrader 5程序端的连接
    • MT5TerminalInfo接收所连接的MetaTrader 5程序端的状态和参数
    • MT5Version返回MetaTrader 5程序端版本
    • MT5WaitForTerminal等待直至MetaTrader 5程序端连接到交易服务器
    • MT5CopyRatesFrom从指定日期开始从MetaTrader 5程序端接收柱形图
    • MT5CopyRatesFromPos从指定索引开始从MetaTrader 5程序端接收柱形图
    • MT5CopyRatesRange从MetaTrader 5程序端接收指定日期范围内的柱形图
    • MT5CopyTicksFrom从指定日期开始从MetaTrader 5程序端接收报价
    • MT5CopyTicksRange从MetaTrader 5程序端接收指定日期范围内的报价


  2. 优化了市场信号部分。现在,产品和信号展示的运行速度提高了7倍,从而提供了更好的浏览体验服务。




  3. 新增在Wine系统下支持“市场”、“信号”和“搜索”。LinuxMac OS用户现在可以访问最大的交易应用程序商店和复制交易服务。




  4. 内置学习程序已被翻译成30多种语言,包括西班牙语、中文、葡萄牙语和德语。若要查看所需语言的互动提示,请使用“查看”菜单切换界面语言。




  5. 新选项可以验证交易者在开设模拟账户和初始账户时指定的电话号码和电子邮箱。

    是否需要验证数据由交易商来决定。如果启用了这个选项,确认码会在账户请求时自动发送给交易者,对话框中会出现特殊代码字段:




    确认码在几分钟内有效。如果在这个时间段内没有将确认码输入到字段中,那么交易者将需要重复这个程序。

    发送确认码之前,系统将检查指定电话号码/电子邮箱是否之前已确认。如果交易者已在他或她的计算机上通过了验证,那么将无需额外确认即可开户。因此,交易者在请求账户时不会遇到额外的困难。

  6. 扩展了通过PayPal系统进行付款的MQL5.community付款选项。现在,使用该系统可实现一键购买。

    如何工作
    当您使用PayPal账户登录进行购买之后,您将被要求允许进一步付款给我们公司:





    确认此选项后,您只需点击之前保存的账户按键,即可一键执行进一步购买:




    如果您点击“取消并返回MetaQuotes Software Corp.”,您将以正常的方式进行付款,为每次购买手动输入PayPal账户详情。
    MQL5.com网站和MetaTrader 5平台不存储您的付款详情。当您存款购买“市场”产品或订阅“信号”时,在付款系统端将执行数据验证。
    您可以随时移除您的PayPal 账户链接。

  7. 策略测试器的改进和优化。

    我们引入了大量隐藏的改进和修正的错误来优化策略测试器操作。此更新可以更快地测试一些任务类型,使操作稳定性更高。主要改进包括:

    框架操作
    本地、网络和源代码的操作框架得到优化。这类操作现在处理速度更快,永远不会跳过。

    将任务分配给代理
    测试器现在可以在优化过程中将任务重新分配给代理。如果有新代理可用(或发布之前用过的一个代理),测试器会使用之前在其他代理中分配的任务包自动创建新的任务包。如果检测出代理速度慢,任务还可以重新分配。这类代理的任务被发送至其他代理,以便更快地完成优化。

    数学计算模式下的任务分配速度会更快。

    日志中的优化统计
    优化日志记录得以扩展:它包括与MQL5云网络使用相关的详细统计,启用和禁用云代理等。

    在全优化日志模式下运行
    为了获得最佳的资源消耗,并不是所有来自代理的消息都被记录到测试日志中。若要查看所有日志,您可以通过测试日志快捷菜单启用“完整优化日志”选项。此前,这个模式可以明显拖慢优化进程。而现在则不会影响计算时间。

    MQL5云网络
    优化云测试代理的运行。现在,计算任务的分配更加有效。

  8. 内置经济日历提供了18个全球大型经济体相关的900+指标,包括美国、欧盟、日本和英国等国家。相关数据都是从开放资源实时收集。通过定期查看此服务,交易者可以随时了解最新的全球新闻,并做出明智的交易决策。

    经济日历可在桌面版、网页版以及移动设备上使用。可以使用程序端的“日历”快捷菜单打开应用程序:




    选择您的平台并下载Tradays apps:


    除了桌面平台提供的日历功能之外,移动版还以图表和表格的形式提供事件提醒和访问指标的完整历史记录。

  9. 添加了在导入报价历史期间自动生成自定义交易品种柱形历史。现在,如果自定义交易品种的报价数据出现变化,对应的柱形图也自动重新计算。

    • 因此,统一的数据被保存在平台中。
    • 导入报价数据(假设有足够的数据)之后,因为由程序端自动计算,而无需导入柱形图。

    更改涉及通过程序端界面执行的报价导入,以及使用CustomTicks*函数从MQL5应用程序执行的报价更新。报价数据的任何变化都会导致重新计算对应的自定义交易品种的1分钟柱形图。

  10. 修正当在分离图表上使用十字光标时“数据窗口”中的数据更新。
  11. 修正报价历史保存。在早期版本中,一毫秒内的多个报价可能以错误的顺序保存。
  12. 修正基于服务器上过短的价格历史(少于一天)生成图表的问题。

MQL5

  1. 添加MQL5服务调试选项。现在可以对这些应用程序进行类似于EA交易和指标的测试。
  2. ENUM_SYMBOL_CALC_MODE枚举中,添加了全新的盈利和预付款计算模式:

    • SYMBOL_CALC_MODE_EXCH_BONDS — 适用于交易所债券的计算。
    • SYMBOL_CALC_MODE_EXCH_STOCKS_MOEX — 适用于莫斯科交易所股票交易的计算。
    • SYMBOL_CALC_MODE_EXCH_BONDS_MOEX — 适用于莫斯科交易所债券交易的计算。

  3. TesterDeposit函数支持在测试期间模拟入金操作。该函数适用于测试资金管理策略。
    bool  TesterDeposit(
       double money      //入金金额
       );
  4. OnDeinit方法执行期间,MQL5应用程序不会从程序端接收任何事件。以前,由于接收到其他事件,应用程序有时无法完成去初始化(例如,删除所有创建的对象)。
  5. 修正当日更改自定义交易品种报价历史后可能发生的偶然错误。
  6. 修正使用大量图形对象(数以万计)时应用程序偶尔出现的运行速度减慢的问题。
  7. 修正从MQL5程序频繁调用交易历史的情况下出现程序端冻结的问题。
  8. 修正iBarShift函数操作。通过"exact=false"标识和数据外的请求,该函数返回最早的柱数而不是最新柱数。

Tester

  1. 修正确定有多个NUMA节点的计算机处理器上的内核数。
  2. 添加使用零初始入金运行测试和优化的可能性,因为使用新TesterDeposit函数可以在测试期间模拟入金操作。

MetaEditor

  1. 现在,整码器命令可添加到工具栏以快速访问。
  2. 修正在函数和变量名称中使用非统一字符时切换到参数定义和查看相关数据。

文档已更新。

更新内容通过LiveUpdate系统提供。