外汇EA编写教程:MetaTrader 5 带来新机遇

讲点历史

就在 5 年之前,MetaTrader 4 终端正式呈现于交易者面前,它完全从头编写,旨在替换当时已经很普及的第三代 MetaQuotes Software Corp. 终端。MetaTrader 4 在交易者中迅速普及,使得其后数年中,有成百上千的经纪人开始在 MetaTrader 4 平台上提供其服务。

尽管已有如此成就,开发人员还是在3 年前决定创建一种信息通达的新一代交易平台,并于 2009 年 11 月开始了 MetaTrader 5 的公测。我们所有人都对已知和熟悉的事物有强烈的好感,对变化却持谨慎态度。交易者也不例外。因此,我们决定帮助那些有需要的人们了解 MetaTrader 5 平台比起众所周知的 MetaTrader 4,有哪些不同和优势。

新市场和新工具

从最开始,MetaTrader 即有意成为外汇交易市场上一个方便且用户友好的交易平台。今天的人们已经很难想像,多年以前,几乎所有其它终端的交易还都是根据要求执行。想创建您自己的技术指标和交易机器人完全不可能,而且技术分析的实现机会也是口头多于实际。所以,那些通过其它金融市场销售的交易者开始表达出通过 MetaTrader 销售的意愿。

MetaTrader 5 这一新型交易平台就是为了提供这样一个机遇而精准设计 – 用来交易股票、期货、期权及其它证券交易工具。如此一来,交易者不仅可以在不同的市场上使用熟悉且用户友好的交易界面,还能通过不同的经纪人进行交易。交易者还拥有使用嵌入式技术工具服务以及由 MQL5.community 社区编写的各种工具的权限。

MQL5 语言

新一代产品的每一个终端都有改进,不仅在视觉方面,更在于其编程语言方面。您可以利用其语言编写自己的指标、交易机器人以及脚本形式的大量 MQL5 支持程序。新语言 MQL5 因其更佳的性能与其前身拉开了距离。开发人员为自己设立了一个目标:在已配备常规、非专业、高级语言的 MQL5 平台上实现同样快速的程序执行速度。

此外,现在 MQL5 语言还允许您利用面向对象方法 (OOP) 创建程序,如此则最终会为您提供一个由其他交易者和程序员编写的、更大的预制程序数据库。MQL4 代码库当前世界最大,其所提供的预制示例比其它任何交易平台都要多。

采用 OOP 拥有更加巨大的潜力,这并非偶然,从一开始,MQL5.com 上的代码库版块就开始充满着在 MQL4 上难于实现的程序示例。同时,如果无需或是尚未学过 PLO,MQL5 语言允许您根据某过程性方法编写程序。

终端中的事件

除了随类一起出现于 MQL5 中的语言方面的新改进之外,这种新语言与 MQL 还有另一个细节上的重大分别 – 带有事件模型。现在,您可以在程序中跟踪事件鼠标、键盘、移动以及属性与图形的变化。已添加时间事件处理 – 现已无需埋头于脚本编写了。

还有最重要的事情 – 处理交易事件。已执行的“止损”、某挂单的撤销、新开仓、或是某个已开仓中的增长 – 都是交易事件的示例。此外,现在所有的交易操作均异步执行,发送一个交易请求后,您可以立即继续使用程序,而不像使用 MetaTrader 4 时还需要等待交易服务器的回复。

因此,MQL5 中程序执行速度的提升、类的使用、事件处理以及异步交易请求,让我们可以实现 MQL4 中无法做到的一种新型交易机器人。

MetaEditor 中调试代码

现代编程语言允许您编写出带有超高抽象水平的程序,就此而言,MQL5 也不例外。复杂程序中包含超大量的潜在错误,如果没有专用调试工具的帮助,很难探测出来。所以,MetaEditor 提供了一个调试程序,对程序员来讲,这无疑是雪中送炭。

现在您可以逐步跟踪程序,查看任何给定时段的变量值,将支撑点设于恰当的位置。如今这种语言包含特定的附加功能,旨在方便您代码中问题区域的查找过程。开发人员力图实现调试所需的所有功能,而这对于在现代开发环境中开发程序的我们来讲,又是再熟悉不过的了。

投资组合测试

MetaTrader 3 客户端中也包含一个策略测试程序,它允许根据历史数据对自动交易系统执行测试。MetaTrader 4 测试程序有大幅改进,增加了按订单号测试及可视化测试能力。优化参数成为可能 – 不仅通过所有选项的仔细检查,还通过实现加速优化的遗传算法的使用。

MetaTrader 5 终端采用一种逐订单号的策略测试程序,而订单号生成算法的实现则允许您获取最为精确的测试结果。然而,该新项目的主要优势之一,却是提供了在一组工具上执行程序测试的可能性,即所谓的投资组合测试。在这种类型的测试中,终端会自动下载您需要的每个工具的历史。等到您首次启动该投资组合测试时,此历史无需重新下载。

多线程优化

自现代计算机开始集成两到八核来处理计算任务、操作系统开始允许您在多个核心内分配负载以及相应软件的推出算起,已经过去很长时间了。MetaTrader 5 终端中测试程序的设计初旨,就是允许利用所有的可用计算机核心来优化 EA 交易的输入参数。终端会自动为每个可用核心创建一个本地测试代理,而用户则可以选择使用哪个核心。

由此,多核计算机上的优化时间被大大缩减;测试程序会自动向每个代理分派测试参数和下一次传递的间隔。这还没完 – 您还可以使用任何可用的计算机,不管是通过局域网还是互联网。想要如此,您需要利用 MetaTester.exe 实用工具在某个远程计算机上安装所需数量的测试代理。

由此,我们可以将公司的局域网变成一个巨大的计算机网络,而且所有的计算资源均 100% 可用。由远程代理从测试程序接收所需的测试历史,所以无需向服务器发送多次请求。访问远程代理亦有密码安全防护。

代理内部部署了下述防护机制:

  • 客户端与代理之间网络协议完全加密,且压缩流量;
  • 获取密码;
  • 可指定允许连接客户端的 IP 地址列表;
  • 只有本地代理可使用带有相应终端决议的 DLL;
  • 传递的 EA 交易代码从不存储于代理的磁盘中,而是以一种转型、不可转储的状态传递;
  • 代理不知道 EA 交易的名称,也不会将误算结果存储于磁盘(将计算完成后留存的信息量降至最低);
  • 代理受到一种铰链式安全盾的保护,免遭仿冒或修改。

由此,MetaTrader 5 终端的测试程序为 EA 交易优化的如此复杂的问题提供了解决方案,交易者们可能做梦也想不到,一度只能靠超级计算机解决的难题这样解决了。

如果您没有 EA 交易

年复一年,自动化交易也变得越来越普及。但是对于那些没有 EA 交易或只是手动执行交易的交易者而言,MetaTrade 5 能为其提供哪些优势呢?如果您没有编写指标和交易机器人的相关经验,则可于下述网站在线订购:MQL5.community Work(作品)主题。此服务已有规划,不久即可访问。对于编写自定义 EA 交易的程序员而言,这是为其提供服务的一个出色的平台。

此外,交易者还通常会搜索某个机会,以付费获取或发布交易信号。这可能是因为不具备正式化某些交易策略的能力,以及手动执行所有操作的需求。能够销售信号,可能是对专业人士的一种额外奖励。至于新手,订阅新交易信号有助于防止存款出现不可避免的错误 – 开始阶段很常见。

但是在您订阅接收这些信号之前,您必须要完全确定信号交易者所提供的相关统计的可靠性。如其以一个 EA 交易的形式实现,则可能成为提议交易系统的测试报告。但即使如此,也不能完全保证此系统未来的稳定性。所以,投资者更青睐长时段基于真实账户或练习账户执行的交易操作统计。为此目的,不久 MQL5.com 网站又会添加一种新服务,该服务可实现对于 MetaTrader 平台 5 上各个账户的监控。

综上所述,只有一点需要补充,那就是开发人员可从没觉得开发完成这个新平台就完事大吉了。本文所述的所有服务,都会于近期直接集成到 MetaTrader 5 终端和 MetaEditor 5 中。为了能够以可能的最简单的方式使用新服务,我们还会对 MQL5 语言实施进一步的修改。

交易的演化

有许多交易者发现创建 MetaTrader 5 终端后,看起来与 MetaTrader 4 的差别并不大。在其开发过程中,所有那些让 MetaQuotes Software Corp. 远远甩开其它终端的便利和优点,全都得到了保留。因此,尽管两个交易平台间存在大量的架构差异,但迁移到新平台并未给交易者和经纪人带来困扰。

您仍可选择继续在 MetaTrader 4 终端上交易,而不用担心其技术支持会随着新型 MetaTrader 5 平台的正式发布而中止。MetaTrader 4 终端的优势在于巨大的累积代码与文章数据库,而这些都通过 MQL4.community 网站为您提供。同时,MetaTrader 5 平台所提供的新功能更会成倍增加,而您自然也可以到 MQL5.community 学习如何使用其越来越多的新服务。

因此,综上所述,我们可以得出的结论是:一方面,这个新型交易平台与 MetaTrader 终端 5 为交易者打开了如此宽广的新视野,当然是自动交易领域内的一次革命。而另一方面,实现交易新层次的这次质的飞跃,也是在没有压力的情况下、随着新资源的开发、以一种渐进的方式来完成的。

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
原文地址: https://www.mql5.com/ru/articles/84

 

 


MyFxtop迈投-靠谱的外汇跟单社区,免费跟随高手做交易!

 

免责声明:本文系转载自网络,如有侵犯,请联系我们立即删除,另:本文仅代表作者个人观点,与迈投财经无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。

風險提示

MyFxtops邁投所列信息僅供參考,不構成投資建議,也不代表任何形式的推薦或者誘導行為。MyFxtops邁投非外匯經紀商,不接觸妳的任何資金。 MYFXTOPS不保證客戶盈利,不承擔任何責任。從事外彙和差價合約等金融產品的槓桿交易具有高風險,損失有可能超過本金,請量力而行,入市前需充分了解潛在的風險。過去的交易成績並不代表以後的交易成績。依據各地區法律法規,MyFxtops邁投不向中國大陸、美國、加拿大、朝鮮居民提供服務。

邁投公眾號

聯繫我們

客服QQ:981617007
Email: service@myfxtop.com

MyFxtops 邁投