外汇EA编写教程:MetaTrader 5 – 超乎您的想像!

简介

MetaTrader 5 的开发工作始于 2007 年。MetaTrader 5 被构想为革命性、多市场的平台,而且要能运行于外汇交易及任何其它金融市场上。自此之后有大量的工作被执行,而成果则是这个可为交易者提供无限机遇的平台。我们拟于文本中讨论有关 MetaTrader 5 的所有关键功能,并与该交易平台的前一版本进行对比分析。

  1. 图表
    • 自定义及 21 种时间表
    • 1 分钟柱的优势
    • 指标
    • 分析工具
    • 精确的时间标度
    • 财经日历
    • 更多的市场数据
    • 在线发布图表
  2. 导航器
    • 按经纪人名称查找服务器
    • 程序分组
    • 程序的二次开发
    • 从“代码库”下载
    • 快速测试
  3. 交易
    • 持仓净额结算
    • 挂单的六种类型
    • 一键交易
    • 图表内交易
    • 图表内交易价位的修改
    • 异步与多线程
    • 证券交易所内操作的执行
    • “市场深度”内交易
    • 附加执行条款
    • 移动交易推送通知
  4. 工具箱
    • 曝光
    • 日历
    • 市场
    • 代码库
  5. 测试和优化
    • 高级测试报告
    • 提高每一订单号测试的精确性
    • 更多的测试模式
    • 自定义优化规范
    • 优化缓存及 XML 报告
    • 历史自动下载与时间表同步
    • 前向测试
    • 压力测试
    • 多线程优化
    • 远程代理测试云
    • MQL5 云网络
    • 方便的代理管理
    • 数学计算
    • 优化结果的 2D 与 3D 可视化
    • 可视化测试
    • 优化期间的任何自定义结果
    • 利用 OpenCL 加速
  6. 与 MQL5.community 集成
    • 市场
    • MQL5 云网络
    • MQL5 存储
    • 代码库
    • 信号
    • 文章
    • MQL5 图表
  7. MetaEditor
    • 新文件系统
    • MQL5 向导
    • MQL5 存储 – 个人代码存储库
    • C++ DLL 的快速编译
    • 智能代码控制
    • 代码风格化工具
    • 代码高亮
    • Unicode 支持
    • 插入资源
    • 全局搜索且与 MQL5.community 集成
    • 调试
    • 项目
    • 代码剖析
  8. MQL5 编程语言
    • 更快的运行速度
    • 代码保护
    • 与 C++ 的相似之处
    • 类和结构
    • 事件
    • 直接通过 MQL5 对图表、对象及资源的管理
    • 新的指标绘图风格
    • 方便使用指标
    • 一个庞大的标准库和海量的示例
    • OpenCL 支持
  9. 针对交易者与开发人员的服务
    • 任务
    • 市场
    • MQL5 存储
    • MQL5 云网络
    • 信号
    • 虚拟主机

1. 图表

我们将从 MetaTrader 5 平台显而易见的一项优势讲起 – 其分析部分。与 MetaTrader 4 相比,实时价格图表提供的功能更为广泛。

1.1. 自定义及 21 种时间表。 平台中的图表拥有各种各样的不同设置,交易者可对其进行自定义、使其适于个人需求。MetaTrader 5 支持三种图表类型:折线型、序列柱型及日本烛形图。您可以为图表中的任何项目设置一个独立的颜色,以营造出最舒适的长时工作空间。与第 4 版平台相比,MetaTrader 5 支持的图表时段较其两倍还要多。目前已提供 21 种时间表。

自定义图表

1.2. 1分钟柱的优势。 MetaTrader 5 以全新原理实现了价格数据的存储与传递。在前一版本中,不同时间表上的数据会被分别传递至终端。而现在的数据则仅以1 分钟柱的形式被传递和存储,同时客户端高级时间表则以其为基础构建。这一方法实现了流量的大幅节约,因为历史只下载一次且适用于所有时段。下载价格历史之后,终端就会只下载新数据。

现在打开图表快多了:用一分钟柱构造一个任意时间表的图表需用几秒钟。构建的时间表缓存于您的硬盘上。因此,含此时段的图表下一次就会立即打开,只有新数据还需要额外计算。

使用一分钟历史还能实现所有时间表上数据的完全同步(一致),因为它们都用相同的一分钟数据作为源。

使用价格历史还有一个优势,那就是它会以一种压缩格式被传递给客户端,既节约了带宽,又减少了下载时间。相比之下,一个交易品种的一分钟柱 10 年的压缩格式价格历史约有 10 MB 大小。

1.3. 指标。 标准的 MetaTrader 5 交付包中包含 38 种技术指标。它们都按照类型于 Navigator 窗口当中便利分组:Trend Indicators (趋势指标)、Oscillators (摆荡指标)、Volume Indicators (成交量指标)及 Bill Williams’ Indicators (比尔威廉姆指标)。可用指标则包括 Bollinger Bands (布林带)、Envelopes (轨道线)、Moving Average (移动平均线)、Parabolic SAR (抛物线转向)、Standard Deviation (标准偏差)、Ichimoku Kinko Hyo (一目均衡表)、MACD (平滑异同移动平均线)、Bulls Power (牛市)、Bears Power (熊市)、Alligator (鳄鱼线)、Awesome Oscillator (动量震荡)以及许多其它指标。

MetaTrader 5 的第三方指标数量几乎是无限多的。代码库有大量指标可供下载,而且可于市场中购买。

1.4. 分析工具。 可用分析工具的列表已经被大大地扩展。如今的 MetaTrader 5 提供 46 种对象,其中包括 Elliott(埃利奥特)、Fibonacci(斐波纳契) 和 Gann 工具、图形对象(其中包括与 MQL5 程序互动的对象)、形状、通道、行等等。

每个对象都有其各自的设置 – 颜色、行宽、附加等级以及不同时间表上的显示。

1.5. 精确的时间标度。 可以为图表启用精确的时间标度 – 现在,图形对象无需再链接到柱了。可将锚点对象放到图表柱间的任何位置。而且,在时间表间切换时,对象控制点的准确位置也会被保存。

1.6. 财经日历。 MetaTrader 5 推出了一项新功能 – 财经日历,此功能允许对市场执行基础分析。宏观经济指标会实时更新。此外,财经日历事件也可以方便地显示于价格图表上方。

MetaTrader 5 中的财经日历

1.7. 更多的市场数据。 在第 4 版中,每个实时交易品种都只有 5 个可用值 – Bid (卖价)、Ask (买价)、High (最高价)、Low (最低价)和 Time (时间)。MetaTrader 5 中的可用信息量翻了好几番。除了主交易品种统计资料外,您还可以分析实际交易量和上一次成交价。而且,Market Watch (市场报价)选项卡中针对每个交易品种都有 20 多个可用统计值,而且全都实时更新:

市场统计

一项重要的特色,就是历史数据中的实际收益差价和交易量值的可用性。上述各值均存储于每个 1 分钟柱中,并由此可于 MetaTrader 5 多货币策略测试仪中用于测试和优化“EA 交易”。

1.8. 在线发布图表。 MetaTrader 5 中引入了在线发布图表的功能。现在,此终端不仅允许将屏幕截图保存到您的本地 PC,还允许通过专门的 MQL5 图表服务(MQL5.community 的一部分)与其它交易者即时共享。如您已在终端中指定了您的 MQL5.community 账号,则屏幕截图会被分配到该账号。现在您可以创建自己的图库,并通过您的个人档案轻松实现其管理。

在线发布图表

您还可以通过最流行的社交网络网站分享您的图片。

2. 导航器

现在,MetaTrader 5 终端的界面更加便利了。Navigator(导航)窗口允许您管理终端中的许多操作,比如打开一个新示范账户,或是将“EA 交易”、指标和脚本附至图表。

2.1. 按经纪人名称查找服务器。 按其名称添加经纪人服务器是 MetaTrader 5 的另一个新便利功能。在前一版本中,您必须要联系您的经纪人问明交易服务器的 IP 地址,或是下载一个专用客户端。现在,您只需输入该经纪人的名称即可。此系统会自动按指定名称查找服务器,并将其添加到列表:

按经纪人名称查找服务器

之后,您可以开立一个账户。

2.2. 程序分组。 程序分组是 Navigator 的又一便利之处。标准交付包中可用的技术指标均根据其类型进行分组:Trend Indicators (趋势指标)、Oscillators (摆荡指标)、Volume Indicators (成交量指标)及 Bill Williams’ Indicators (比尔威廉姆指标)。“自定义指标”、“EA交易”及脚本也都分组至各个独立分支中。而且,各个分支中还支持与硬盘上的文件夹结构类似的层次。比如说,您可以将自定义的指标放入子文件夹/MQL5/Indicators/My 和 /MQL5/Indicators/CodeBase 等。您也会在 Navigator 窗口中看到同样的存储结构。

通过“市场”购买的 MQL5 程序,都会被自动放入“EA 交易”、“自定义指标”和“脚本”的相应子类别市场中。

2.3. 程序的二次开发。 如果您需要修改某应用程序(有源代码),则选中并按下 Enter。该应用程序的源代码会立即于 MetaEditor 中打开。

2.4. 从“代码库”下载。 通过 MetaTrader 5 交易终端与 MQL5.community 服务的紧密集成,在 Navigator 中,您只需一次点击就可以启动代码库的某个“EA 交易”、指标或脚本。在每个应用程序类别,还都有一个专用命令 “more” 可供使用。命令中的数字表示可供下载的应用程序的数量:

“代码库”中的更多可用应用程序

2.5. 快速测试。 利用 “Test” 上下文命令、只需点击两次,即可测试任何“EA 交易”或指标。策略测试仪会立即打开。您需要做的,就是设置必要的参数并运行测试。

3. 交易

相比 MetaTrader 4,MetaTrader 5 的交易机制已经有了重大的变化。而且所有这些变化,都是为了强化此交易平台的使用。您可以利用 MetaTrader 5 在任何证券交易所或是通过任何 ECN (电子通讯网络)交易。MetaTrader 5 平台已经得到了众多证券交易所独立软件供应商 (ISV) 的身份,其中包括 SMX、GBOT、CitiBank、Currenex、DGCX、Integral。更进一步的计划则要整合全球范围内的各大证券交易所。

3.1. 净持仓。 MetaTrader 5 中采用了符合所有现代交易所要求的所谓持仓“净”结算。“净”是指于任何给定的时间,一个金融工具只能存在一个持仓。不允许不同指向的持仓(买入和卖出)。

因此,如果您拥有买入 1 手某金融工具并卖出 1 手此工具的持仓,则此持仓会被关闭。如果您拥有买入 1 手某金融工具的持仓并再买入 1 手,则您的持仓为 2 手。这种情况下会重新计算开盘价 – 为此持仓计算出一个加权平均开盘价:(第 1 手交易的价格 * 第 1 手交易量 + 第 2 手交易的价格 * 第 2 手交易量)/(第 1 手交易量 + 第 2 手交易量)。

3.2. 挂单的六种类型。除市价单、限价单和止损单外,MetaTrader 5 平台还支持两种类型的挂单 – “买入止损限价”和“卖出止损限价”。触发此类订单时,相应类型的限价单也会下达。新类型订单会强化实现交易策略的可能性。

3.3. 一键交易。 交易过程中,执行交易操作的速度非常重要。MetaTrader 5 提供了一键即时交易的可能性。此功能于市场报价窗口中提供:

MetaTrader 5 中的一键交易

此外,一键交易功能还允许用户快速平仓、删除挂单以及 Trade (交易)选项卡中的 Stop Loss (止损)和 Take Profit (获利)价位:

一键交易

市场深度中亦提供快速交易功能。

3.4. 图表内交易。 MetaTrader 5 为手动操作的交易者提供图表内交易的高效工具。每个图表均配有执行快速市场操作的可移动面板:

图表内交易

提供“智能”上下文菜单,以供图表内下挂单使用。点击目标订单价格下单。首先显示的是当前鼠标指针位置对应价格的最可能的订单类型。

3.5. 图表内交易价位的修改。 MetaTrader 5 提供了在图表内直接更改挂单价格以及“止损”与“获利”订单的机会。现在,在观察市场当前状况的同时,您可以轻松地利用鼠标将交易价位拖入目标区域,再更加精确地调整其值:

图表内交易价位的修改

3.6. 异步与多线程。 与 MetaTrader 4 相比,此平台的第 5 版为交易者提供了更多同时执行多个交易操作的机会。交易者在前一版本中会碰到 “Trade context is busy” (交易文本已满)错误 – 比如同时使用多个“EA 交易”时。而在 MetaTrader 5 中,较宽的交易文本最多允许向服务器发送 16 条交易请求,且无需等待其处理结果。

3.7. 证券交易所内操作的执行。 通过 MetaTrader 5 交易平台与其它系统的整合,现在的交易者可以访问全球范围内的各个顶级交易所。该系统允许在外部交易系统中直接执行交易操作(直通处理)。交易操作无需中间人即可执行(于“无交易柜台”<Non-Dealing Desk>模式)。

3.8. “市场深度”内交易。 市场深度 (DOM)是证券交易不可分割的一部分。交易者可于 DOM 中查看市场中真正存在的当前请求,也可以查看他(或她)自己的交易请求。利用 MetaTrader 5,可以直接在“市场深度”中执行交易操作:

MetaTrader 5 中的“市场深度”

搭配一键交易功能,“市场深度”即成为了超短线交易的一个强大工具,允许用户一键下单、一键更改和移除交易订单。

3.9. 附加执行条款。 交易者可以按经纪人为每个交易操作指定附加执行条款 – 成交或取消 (FOK),或者立即成交或取消 (IOC)。FOK 模式下,请求的操作应按指定数量执行。如果市场中所售非安全数量,则请求不被处理。IOC 模式表明可于市场有售的最大数量和订单中指定的数量执行交易操作。如果请求不能完全成交,则会执行包含可用数量的订单,且取消剩余数量。

3.10. 移动交易和推送通知。 当下,移动交易已越来越受欢迎。交易者通常需要于世界任何地方、每周 7 天、每天 24 小时都能访问其账户。MetaTrader 5 交易平台的移动部分亦已与时俱进。MetaTrader 5 的 iPhone 版和 Android 版移动终端都向交易者完全免费提供。

而接收推送通知选项则是移动终端最为重要的功能之一。推送通知就是由 PC 版客户端和 MQL5.community 各种服务发送给移动设备的短信息。此类通知从不丢失,而且不管应用程序运行与否,都会即时送达。

MQL5 语言提供一种专用的 SendNotification 功能,该功能允许 MQL5 程序发送推送通知。而且,该终端还允许您创建市场中事件提醒的信号。而推送通知即事件通知类型中的一种。

推送通知还可用于获取 MQL5.community 网站中相关更新的信息。欲实现此功能,则于 “Contacts” (联系人)选项卡的用户档案中指定您的 ID。

MetaTrader 5 移动终端的推送通知

推送通知允许交易者即便不在电脑旁边,也能始终保持信息通畅并对市场变动作出反应。

4. 工具箱

此终端的第 4 版中就有这个 Toolbox (工具箱)窗口,只是现在的功能已经更加完善。

4.1. 曝光。 现在交易者可以看到所有新建持仓资产状态的摘要信息。

Toolbox 窗口中的曝光

4.2. 日历。 第 1 节中提到过,MetaTrader 5 现配有财经事件日历。已有全世界 10 多个领先经济体的宏观经济指标可用,而且实时更新。所有事件均显示于相应货币对的图表上。

4.3. 市场。 MetaTrader 5 与交易者的 MQL5.community 服务紧密集成。“市场”是一个 MQL5 应用商店,任何人都可以于此购买终端中使用的产品。为方便大家,“市场”服务亦已集成到客户端。

集成于 MetaTrader 5 中的“市场”

交易者可于 Toolbox 窗口中查看“市场”中的所有可用应用。购买之前,您可以下载一个试用版,并于策略测试仪中测试。此外,还可以从“市场”下载到许多的免费应用。

购买项与下载项的列表呈现于 Purchases (购买项)选项卡,方便查看。已下载/已购买的应用程序会按其在 Navigator 中的类型自动排序,而且可通过 Navigator 运行。

4.4. 代码库。 通过 Toolbox 窗口亦可访问巨大的免费 MQL5 源代码库。您可以直接通过此终端下载并运行任何代码。只需将某个“EA 交易”、指标或脚本拖放至图表即可。代码下载、置入相应的文件夹、进行编译且于图表上运行都会自动完成。

代码库 - 免费源代码

已发布源代码的数量正逐渐逼近 1500,且仍将继续增长。

5. 测试和优化

MetaTrader 5 最重要最值得期待的更新之一,就是多货币策略测试仪。现在,交易者拥有无限的机会来测试和优化那些多种交易品种的“EA 交易”。

5.1. 高级测试报告。 MetaTrader 5 会就“EA 交易”测试结果提供一份扩展报告。其中包含允许更好地评估某交易策略的附加统计。现在您可以分析回收系数、夏普比率、持仓时间以及许多其它特性。测试者报告中有 40 多项可用特性。

测试报告的图形组件亦有相当程度的扩展。除余额与净值图表外,测试仪还会将建仓和利润/损失的时间分布视觉化(每小时、每周和每月):

测试结果图

此外,它还会生成利润与 MAE/MFE 分布图,以及利润与持仓时间的分布。

利润、MAE、MFE 及持仓时间图表

5.2. 提高每一订单号测试的精确性 。 MetaTrader 5 终端的“策略测试仪”于测试中只采用一种价格模拟模式 – 基于可用一分钟数据价格的生成。对比 MetaTrader 4 中基于高级时间表的订单号模拟,采用测试仪中的 M1 时间表,能够非常准确、误差极小地模拟价格变动。结果是,MetaTrader 5 策略测试仪中的价格建模错误微乎其微,而且模拟价格与实际价格之间的差别亦可在一分钟柱的数值范围内。

5.3. 更多的测试模式。 MetaTrader 5 拥有 4 种测试模式:每一订单号(最准确的方法)、1 分钟 OHLC (根据柱支撑点测试)、仅开盘价(一种粗略的快速测试法)、数学计算(用于策略测试仪中的数学运算,无需使用历史数据,无需价格生成)。

5.4. 自定义优化规范。 在 MetaTrader 4 中,交易者可利用下述 5 个可用规范中的一种来优化“EA 交易”。在第 5 版中,又新加了一种标准规范(余额与夏普比率产品)。但是,主要的新功能则在于能够使用一种自定义优化规范。在测试仪设置中选择“自定义”最大值,您就可以通过 OnTester() 返回的最大值优化您的“EA 交易”。

5.5. 优化缓存及 XML 报告。 测试结果被此终端存储到一个专用的结果缓存中(一个 XML 文件),以便在需要它们时快速访问。测试或优化期间,针对每一组输入参数,此终端都会搜索结果缓存有无此前运行的可用结果以避免重复运行。如果未找到含有这组参数的结果,则会赋予代理任务以运行测试。

因为优化结果缓存是一种标准的 XML 文件,所以您可以利用外部应用程序(比如 MS Excel)对其进行分析。

5.6. 历史自动下载与时间表同步。 MetaTrader 5 策略测试仪实现了所有必要历史数据的可用性。测试之前,它会下载请求交易品种的所有可用历史数据。只有首次运行之前需要如此。之后,就是只载入新数据了。如果“EA 交易”(多货币型)于测试期间请求其它交易品种的数据,则也会从交易服务器自动载入。

5.7. 前向测试。 MetaTrader 5 提供了新型前向测试模式。前向测试是最佳优化结果于某个不同时间段的再运行。此功能允许您避免特定领域历史数据拟合参数。

5.8. 压力测试。 想让“EA 交易”条件接近真实,则使用 MetaTrader 5 中的随机延迟模式。从请求发出的一刻到其执行,价格就有可能会变化。根据订单中的偏差设置,可以当前价执行(如在偏差范围内),也可重新发送报价。此模式下的测试允许您正确地编制此类情况处理的相关代码。

5.9.多线程优化。此“策略测试仪”拥有多线程,而且允许使用所有可用的计算机资源。测试和优化是利用那些作为服务安装于用户计算机中(每核心一个代理)的专用计算代理来执行的。各代理独立工作,且允许并行处理优化计算次数。

5.10. 远程代理测试云。 您可以将无限数量的远程代理(也就是安装于其它计算机上的代理)连接到您的策略测试仪。利用专用的应用程序 MetaTester 将测试代理安装到您局域网内的每一台测试计算机上,然后再将其连往一个客户端的策略测试仪。这些代理会通过网络接收计算任务,并将结果返回客户端。因此,您可以显著拓展并行计算的能力,多倍加速优化过程。

5.11. MQL5 云网络。 MQL5 云网络允许对那些需要计算资源的人们与那些可以提供其计算机闲置 CPU 时间的人们之间的交换进行组织。有了 MQL5 云网络,交易者就可以使用全球范围内成千上万代理的计算能力。用一台电脑要用几年才能完成的优化,现在几个小时就能完成。

MQL5 云网络

欲使用此网络,只需打开策略测试仪并启用云代理。

除了使用 MQL5 云网络之外,您还可以通过向网络提供您的 CPU 计算能力赚钱。而要做到这一点,您甚至都不需要安装 MetaTrader 5 客户端。下载允许您轻松快速安装 MetaTester 的专用安装程序 – 而 MetaTester 是一个用于管理计算机中远程代理的应用程序。简单设置之后,您就会加入 MQL5 云网络并开始赚钱。有关此网络使用以及您因提供 CPU 能力的盈利统计信息,都方便地集中于 MQL5.community 网站上您的个人档案中。完成首项任务后,代理相关信息会立即显示于您的个人档案中。

5.12. 方便的代理管理。 您可以通过上下文菜单轻松管理测试代理。只需点两下鼠标即可启用/禁用任何类型的代理:本地、远程或 MQL5 云网络。您也可以在这里控制已连接的远程代理,以及代理配置的导入和导出。

5.13. 数学计算。 策略测试仪的功能,结合 MQL5 云网络的诸种可能性,并不局限于“EA 交易”的测试和优化。“数学计算”测试模式允许您执行任何计算。在此模式下,策略测试仪不会载入或使用交易品种相关的价格历史及信息,而只是简单地执行计算,调用 OnInit()、OnTester() 和 OnDeinit() 函数。数学运算对于计算某数学函数的极值时有用,该函数的值应由 OnTester() 返回。执行优化旨在求得此函数的最大值。

5.14. 优化结果的 2D 与 3D 可视化。 百闻不如一见。在策略测试仪中,您可以于可视模式下分析优化结果。这是优化的二维可视化。绿色的明暗度越深,优化规范的值越高:

优化结果的 2D 可视化

下面是策略测试仪中数学计算的三维可视化模式。该图显示的是求得此函数的最大值 f(x,y)=MathSin(x^2+y^2)+k*MathExp(-p*x^2-p*y^2):

优化结果的 3D 可视化

5.15. 可视化测试。 可视化测试模式允许将“EA 交易”于历史数据相关测试期间如何执行交易操作精确地形象化。MetaTrader 4 中就有观测仪,但到了第 5 版终端,其功能已大大扩展。首先,此观测仪原来只能独立于该终端。而现在,它是作为一个独立的进程运行。交易操作不仅显示于受试交易品种的图表上方。在一个个独立的选项卡中,您可以跟踪当前的账户余额、敞口头寸与当前订单、交易操作的历史以及一份详尽的日志。

策略测试仪可视化

5.16.优化期间的任何自定义结果。 每当您在策略测试仪中启动一个“EA 交易”时,都可以创建自己的数据数组。可利用 FrameAdd() 函数以一种名为框架的专用结构保存此数据集。“EA 交易”优化期间,每个代理都可以向终端发送一系列的框架。接收到的所有框架,都被写入 terminal_directory/MQL5/Files/Tester 文件夹中以此“EA 交易”命名的 *.MQD 文件中。它们遵循从代理接收的顺序被写入。此客户端从某个测试代理接收到一个框架时,就会生成 TesterPass 事件 – 可利用 OnTesterPass() 函数处理。如此则能够动态处理优化结果,而无需等待其完成。

5.17. 利用 OpenCL 加速。 因为 MQL5 语言中原生支持 OpenCL,所以“EA 交易”中执行的大量计算,都可以利用视频卡来完成。如今的视频卡都包含数以百计的小型专用处理器,可以同时执行带有进入数据流的简单数学运算。

使用 MQL5 应用程序中的 OpenCL 可加快“EA 交易”的测试与优化速度几百倍。测试代理(本地、远程或云代理)会自动挑选最快的计算方法 – CPU 或视频卡。

比如说,运用 OpenCL 执行著名的曼德布洛特分形计算,就要比 CPU 快一百倍。

6. 与 MQL5.community 集成

MetaTrader 5 客户端被紧密地集成到了 MQL5.community 中。MQL5.community 向交易者和开发人员提供独特的服务:

6.1. 市场通过此终端,您就能在 MQL5 程序的商店中购买任何即用型应用程序。购买之前,您可以下载一个试用版,并于策略测试仪中测试。

在“市场”服务中,任何人都可以成为卖家。您只需要提交一个应用程序。待您的卖家身份注册获准后,您就可以销售自己的产品赚钱了。

6.2. MQL5 云网络强大的分布式计算网络可用于策略测试仪中您的“EA 交易”的测试与优化。成千上万的优化会话,如今可以在几分钟之内完成。除了使用此网络之外,您还可以通过提供自己的计算能力赚钱。

6.3. MQL5 存储MQL5 存储是一种集成到 MetaEditor 中的源代码个人存储。它允许您安全保存自己的代码,并能从世界的任何地方获取到它。MQL5 存储会将完整的变更历史存储到上传的文件中,以备随时查看。此外,您还可以返回某个文件的之前版本。

6.4. 代码库一次点击,您就可以下载并运行 MQL5.community 网站代码库章节中发布的任何代码。只需将某个“EA 交易”、指标或脚本拖放至图表即可。代码下载、置入相应的文件夹、进行编译且于图表上运行都会自动完成。

6.5. 信号。 信号服务允许用户订阅来自专业交易者的的交易信号,从其客户端直接获取并根据这些信号执行交易操作。

6.6. 文章MQL5.community 网站上已发布了各种有关 MQL5 编程语言以及此平台的有用文章。在 MetaEditor 的 Toolbox 窗口,有一个独立选项卡,里面有一个主题与描述的便利列表,您可以在此找到需要的文章 。

访问 MQL5.community 中的文章

6.7. MQL5 图表。 MetaTrader 5 允许交易者通过 MQL5 图表服务在线发布其屏幕截图。您的屏幕截图会在您创建它之后立即被自动发布于网上。您也可以获取其链接,以通过某个最受欢迎的社交网络网站分享您的图像。

如您已在终端中指定了您的 MQL5.community 账号,则屏幕截图会被分配到该账号。如此一来,您就能创建自己的图库,并通过您的个人档案实现其轻松管理。

7. MetaEditor 5

内置的编程语言一直都是 MetaTrader 交易平台最重要的组成部分之一。应用开发不单单是 MQL5 编程语言这么简单(下文会证实其勿庸置疑的优势), 这里要谈到的,也是您要于其中操作源代码的编辑器。MetaEditor 5 提供了大量 MetaTrader 4 用户未曾用过的新功能。

7.1. 新文件系统。 与前一版本相同,MetaEditor 只能在其自有的文件系统沙箱中工作 – 此终端数据文件夹内的 /MQL5 文件夹。为方便起见,每种类型的源文件都有其自己的目录(Experts、Indicators、Scripts、Include 等)。文件夹的结构与存储可执行程序(“EA 交易”、指标及脚本)的文件,都显示于客户端的 Navigator 窗口中。

一套便利的文件系统

7.2. MQL5 向导。 MetaEditor 4 中包含一个创建“EA 交易”的向导,允许生成开发各种应用的模板。第 5 版 MetaEditor 中的这一组件已经过大量的重新设计。其新名称为 MQL5 向导。它仍然允许您创建那些已妥善设计且包含必要事件句柄的程序模板。然而,主要的新功能在于提供了生成即用型“EA 交易”的可能性。交易者必须选择“EA 交易”将使用哪些信号、其货币管理策略以及其防损方式(跟踪止损类型)。

MQL5 向导

如今的交易者已无需了解如何在 MQL5 中编程,直接获取一个即用型“EA 交易”就好了。简单几步即可生成一个“EA 交易”。然后,您就可以利用策略测试仪开始您“EA 交易”的优化了。

7.3. MQL5 存储。 MQL5 存储是一种个人 MQL5 源代码存储,专为分版本存储文件以及直接以一种便利的方式通过 MetaEditor 管理项目而设计。

源代码存储于一个安全的远程存储库,可以通过您的 MQL5.community 账号访问。如果出现硬盘故障,您可以通过此存储快速恢复自己的本地代码复本。

您可以通过任何计算机访问您的存储。MetaEditor 中只需使用您的 MQL5.community 账户登录即可。您可通过 Navigator 窗口便利的上下文菜单使用此存储。

MQL5 存储

此存储中的每一个事务的变化都会被记录。之后您可以查看整个变更历史,利用专用工具对比文件版本,以及返回到任意之前版本。

对比文件

MQL5 存储的选项仍将继续扩展。通过赋予目标 MQL5.community 账户相应的权限,则可启用那些采用此存储的项目的联合使用。

7.4. C++ DLL 的快速编译。 许多开发人员在利用 MQL5 开发应用时使用第三方 DLL。而有了 MetaEditor 5,您无需利用 MS Visual Studio 编译 DLL。此编辑器支持标准的 cpp 和头文件,且编译与 MQL5 源文件一样简单。如果您的计算机上安装了 MS Visual Studio,则会采用其编译器。否则,就通过一个安全的连接将目标文件发送到某个专用编译服务器。完成编译后,就会将即用型 DLL 文件发还于您。

与 MQL5 源代码相似,包括错误和警告在内的所有编译结果,都会显示于 Toolbox 窗口的 Error (错误)选项卡中。

7.5. 智能代码控制。 MetaEditor 5 提供了各种能让您加速代码编写过程的工具,更方便导航且有助于防止错误:

代码片段为方便代码编写,MetaEditor 提供了插入代码片段的可能性 – 描述 MQL5 语言某特定构造的源代码的小型模板片段。通过键入关键词实现某代码片段插入的初始化。

函数名称的自动替换。 编写代码时可以查看内置与自定义函数名称、常量、变量、类成员、关键词等等待插入变量。名称变量由键入的首个字符确定。

函数参数小贴士。 有了这个功能,开发人员在编写代码时,就不再需要阅读每个函数的相关文档了。描述某函数时,只需按下某特定的组合键,MetaEditor 就会显示出与函数参数及这些参数的类型相关的提示。

函数列表。 您可以在 MetaEditor 中查看已于当前文件中声明的所有函数的列表,且能快速移动任何一个函数。

7.6. 代码风格化工具。 一种漂亮且准确的源代码设计,会让使用代码变得更加简单。经过精心格式化的代码看起来很专业。MetaEditor 提供了风格化功能。一键即可将任何代码转化成为设计良好的代码。此风格化工具中使用的格式化规则,都是由拥有多年经验的专业程序员开发而成的。

7.7. 代码高亮。 对比第 4 版,MetaEditor 5 中有更多的机会高亮不同的源代码元素(关键词、函数名称、变量等)。每位用户都可以创建一种个人的代码高亮。

7.8. Unicode 支持。 上一版本的编辑器并不支持 Unicode 格式的源代码文件。这样就会在查看和编译那些包含不被操作系统当前区域设置支持的字符时出现问题。而在 MetaEditor 5 中,这一问题已经完全解决。任何源文件都可以利用标准的编辑器功能保存为 Unicode 格式,然后您就可以使用它,并利用您操作系统的任何语言实施编译。

7.9. 插入资源。 MetaEditor 5 专注于编程过程的最大简化。将资源文件插入到程序中的常规操作,只用一个命令即可实现:

插入资源

7.10. 全局搜索且与 MQL5.community 集成。 开发一个程序时,您通常需要获取多种多样的信息。MetaEditor 通过与 MQL5.community 集成而解决了这一问题。发布于 mql5.com 的文章和源代码,都便利地以选项卡的方式置于 Toolbox 窗口中。然而,想要真正高效地利用可用信息,一个搜索系统必不可少。

MetaEditor 5 中包含全局搜索系统:

MetaEditor 5 中的搜索系统

您在单一搜索框中键入请求,选择搜索范围,结果就会出现于Toolbox的某个独立选项卡中。除了可以在当前文档、文件、文章或代码库中分别搜索之外,您还可以搜索整个MQL5.community站点。其中包括论坛、文章、文档与代码库。

7.11. 调试。 毫无夸张,使用 MetaEditor 4 的每一个人都期盼能有调试功能。第 5 版中调试程序的出现,已将 MQL5 应用开发提高到了一个全新的水平。所有标准功能均可用于调试应用程序:

断点。 在代码行中必须中断程序执行进程以调查程序行为的地方放置断点。

监视表达式。 调试期间,在 Toolbox 的一个独立选项卡中跟踪任何表达式的值。

调用堆栈。 监视调试期间的调用堆栈。

逐步调试。 使用逐步调试的命令 – Step Into、Step Over 和 Step Out。

调试

7.12. 项目。 项目管理是 MetaEditor 5 众多规划功能中的一个。此功能会通过结构化开发人员的程序而方便工作。

7.13. 代码剖析。 利用 MetaTrader 5 进行调试已大大简化了程序员的工作。但 MetaEditor 5 还有一个源代码优化的强大工具。代码剖析工具会探测到所有的应用程序瓶颈。

代码剖析工具

代码剖析工具会分析应用程序个别源代码片段的执行速度。分析结果会通过个别函数和行两种方式提交给程序员。因此,现在已经能够找到代码的最慢部分、并优化 MQL5 程序操作了。

8. MQL5 编程语言

8.1. 速度提高。 相比 MQL4,MQL5 代码的执行速度已提高了 4-20 倍!这种执行速度几乎达到 C++ 语言的水平,所以 MQL5 中您无需采用第三方 DLL 加速计算。而反过来,没有 DLL 也会提高应用的安全性。

8.2. 代码保护。 有了 MetaTrader 5,您可以享用 MQL5 程序 (ex5) 一种全新的可执行文件高水平防护。防反编译的保护亦因下述因素而得到增强:新型且更加复杂的加密算法、文件完整性检查(检查文件在编译后是否曾遭改变)以及语言的更高复杂性。通过市场服务销售的程序都会额外加密并绑定于用户的硬件(计算机配置),提供进一步的保护。

8.3. 与 C++ 的相似之处。 MQL5 语言的语法,与最流行的编程语言之一 C++ 非常类似。因此它易于学习,而且您可以轻松地将其它现代编程语言的程序转换为 MQL5。MQL5 面向对象且允许您充分发挥该编程方法的长处 – 封装与可扩展类型、继承性、多态性、重载及虚函数。

8.4. 类和结构。 MQL5 支持复杂或抽象型数据 – 结构和类。它们不仅用于描述对象,还有行为模式。由对象负责其自身行为的做法,极大地简化了此对象用户的编程任务。

8.5. 事件。 MQL5 语言实现了对大量预定义事件的处理。MQL4 中只有三个可用事件,而第 5 版则可处理 13 种事件类型,其中包括应用程序初始化与取消初始化事件、接收新订单号、价格数据变动与市场深度、计时器事件、交易事件、测试事件、优化及图表相关动作。

8.6. 直接通过 MQL5 对图表、对象及资源的管理。 直接通过 MQL5 应用程序,您可以管理图表属性,向图表添加、修改或于其删除对象。如果结合处理某用户与某图表交互事件的可能性,则您可以创建任何复杂程度的图解面板。

除使用内置对象外,您还可以使用自己的图形和声音资源。

8.7. 新的指标绘图风格。 MetaTrader 5 中的指标绘图风格数量从 6 种增加到了 18 种。您可以绘制线条、直方图、交易品种、填充区域、烛形图和箭头等等。下面即为带有两线之间填充区域、于图表子窗口中绘制的指标:

带两线之间填充区域的指标

8.8. 方便使用指标。 在 MQL4 中,指标缓冲区内的索引方向是不变的 – 从最近 (0) 到最早的数据。使用指标和脚本时,此方法是可以接受的。但在制定指标时,这样的索引却很不方便,因为每有一个新柱,所有元素的索引都会移动一个位置,且有一个索引为 0 的新元素被添加到数组的开头。MQL5 则通过添加允许您更改数组索引方向的 ArraySetAsSeries 函数而解决了这一问题。

MQL5 中对使用的指标缓冲区数量没有限制,而 MQL4 中则不能超过 8 个。

还有,您可以在 MQL5 中基于其它指标的值制定指标。而在第 4 版平台中,只能通过客户端界面中的一个专用选项,根据另一指标制定指标。在 MQL5 中,您可以将某个指标和另一指标的句柄作为输入数据数组价格 [] 传递。

8.9. 一个庞大的标准库和海量的示例。 MetaTrader 5 的标配中包含一个用 MQL5 编写的标准库。它会让程序开发更加轻松,且方便访问 MQL5 各种函数。此标准库中包含组织数据的类、使用文件、字符串、图形对象、图表、指标及交易类。

MetaTrader 5 中还包含所有应用程序类型 – EA 交易、指标及脚本 – 的众多源代码示例。

8.10. OpenCL 支持。 MQL5 原生支持 OpenCL。无需任何第三方库即可尽享 OpenCL 的诸多益处。只需使用专业的 MQL5 函数。OpenCL 语言用于执行那些支持 OpenCL 1.1 或更高版本的视频卡的相关计算。如今的视频卡都包含数以百计的小型专用处理器,可以同时执行带有进入数据流的简单数学运算。OpenCL 语言会组织并行计算,针对某特定任务类实现更快的速度。

9. 针对交易者与开发人员的服务

MQL5.community 是 MetaTrader 5 交易平台必不可少的一部分。除了交易者与开发人员可以找到有用信息并探讨 MetaTrader 5 相关问题的网站之外,MQL5.community 还为参与者提供各种各样的独特服务。

MQL5.community 拥有自己的安全支付系统,该系统已应用于所有的社区服务之中。您可以通过 WebMoney 和 PayPal 向您的账户存款,当然也可以使用信用卡或借记卡。可将款项提至某 WebMoney 或 PayPal 账户。所有转账均经由加密的 SSL 安全连接完成。

9.1. 任务。 任务服务对交易者和程序员都很有用处。如果有交易者需要实现任何交易理念,但却不懂如何在 MQL5 中编程,那么,他就可以随时联系专业开发人员。另一方面,开发人员也由此有了一个运用其知识的绝佳机会。

“任务”服务拥有一个用户友好界面,允许您下一个公共订单并从程序员处选择最有利的产品,或是针对某特定开发人员发布订单。执行订单的过程分为几步,其中包括确认,如此则有助于避免客户与开发人员之间的误解和分歧。

“任务”服务

如有纠纷,您可以申请仲裁,由 MetaQuotes Software Corp. 裁决。

此服务于两年前推出,到现在约已完成 1,300 项任务。

9.2. 市场。 市场服务是一个用于购买和销售 MQL5 应用程序的开放式安全站点。此“市场”于 MQL5.community 站点在线提供,而且还可以直接通过客户端访问。其中提供的所有待售应用程序均有额外防护。下载时,应用程序会被加密并与您的计算机配置绑定。

9.3. MQL5 存储。 源代码MQL5 存储专为分版本存储文件以及直接以一种便利的方式通过 MetaEditor 管理项目而设计。有了 MQL5 存储,您可以利用一个 MQL5.community 账户通过任何计算机获取您的源代码。如果您是在不同的计算机上工作,有了这个“MQL5 存储”,您就可以轻松同步源代码,始终操作其最新版本。

9.4. MQL5 云网络。 MQL5 云网络允许对那些需要计算资源的人们与那些可以提供其计算机闲置 CPU 时间的人们之间的交换进行组织。有了 MQL5 云网络,交易者就可以使用全球范围内成千上万台计算机的计算能力。用一台电脑要用几年才能完成的优化,现在几个小时就能完成。

9.5. 信号。MetaTrader 5 交易信号是一项允许交易者复制某信号提供者交易操作的服务。任何交易者都可以订阅信号,并跟踪某位经验丰富交易者的策略。此服务绝对安全 – 每一位信号提供者均注册于公共监控系统,其中包含有关提供者交易行为的详细信息。

MetaTrader 5 交易信号

可用交易信号的展示可于 MQL5.community 网站和客户端两处找到。可利用 MQL5.community 账户实施订阅。交易者可通过其个人档案或 “My Signals” (我的信号)部分轻松管理其订阅。

任何交易者都可以通过 MetaTrader 5 客户端 “Signals” (信号)选项卡中的 “Toolbox” 窗口订阅:

直接于 MetaTrader 5 中的交易信号

不需要与信号提供者缔结任何协议 – 必需的动作均已在系统内严格执行完毕。使用此信号不收取佣金。订阅后,提供者的交易操作会几乎即时地被复制到订阅者的账户。

如果您是一位成功的交易者,而且想利用您的经验和技能赚钱,那么,您就可以通过MQL5.community网站,注册成为“信号”服务中的“提供者”。交易账户与监控系统联网,且监控系统中会显示其详细信息。该账户会被纳入 MQL5.community 与直接的交易终端两者的可用交易信号列表当中。

信号监控

如果交易信号收费提供,则交易者支付的费用就会被交付给提供者的内部 MQL5.community 支付账户。

9.6. 虚拟主机。这是一项为自动交易或复制信号提供全天候操作客户端的服务。 不同于从第三方公司租赁普通的VDS或VPS,当从程序端发送订单到交易服务器时,您可以选择更接近交易商的网络延迟最小的服务器。

虚拟程序端可以从交易平台直接租用,而付款则通过MQL5.community账户来完成。

从交易平台直接租用虚拟程序端

该租赁过程仅需简单的几步即可完成,在此期间,您只需选择最合适的服务器和服务计划。此后,您需要将所需的交易环境移动到虚拟程序端:交易品种,指标,自动交易,以及FTP,email,EA和信号设置。

您可以查看虚拟程序端日志来控制其操作。还可以获得有关CPU加载,内存和硬盘使用方面的详细信息。

控制虚拟程序端的操作

总结

我们试图在本文中列出 MetaTrader 5 平台的所有关键功能。当然,此交易平台的功能还要多得多。MetaTrader 5 提供了金融市场中成功交易所必需的一整套工具。还应指出的是:此交易平台的开发仍在继续,而其机会也在不断扩展。我们会紧跟时代潮流,追随行业的发展,与领先证券交易所、经纪人、当然还有交易者多多沟通,为您提供最佳交易平台。

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

 

 


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

 

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

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

風險提示

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

邁投公眾號

聯繫我們

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

MyFxtops 邁投