下载MetaTrader 5

AutoElliottWaveMaker - 用于艾略特波浪半自动分析的 MetaTrader 5 工具

9 一月 2014, 11:11
Roman Martynyuk
0
1 015

简介

《MQL5 中艾略特波浪自动分析的实施》 一文中讲述了艾略特波浪自动波浪标签算法的几处不完善之处,其中一个就是速度缓慢。有鉴于此,以及自动分析本身就不太适合于实际应用这一现实,我们决定开发一款半自动波浪标签工具,而其众多优势包括:

  • 人为控制标签;
  • 由于仅分析用户指定的图表部分,所以分析速度极快。

此程序名为 AutoElliottWaveMaker,是本文要介绍的主角。AutoElliottWaveMaker 是当前可在市场中买到的手动波浪标签工具的一次必然升级。


1. 程序对象

该程序的主要对象为标签以及标签面板(图 1)。

标签面板

图 1. 标签面板

标签面板所呈示的,是处于图表左上方的某个波级的一系列标签。该面板的位置以及标签之间的距离,均由用户在程序输入参数中自行定义(图 2):

  • interval - 标签面板上标签之间的距离;
  • x_distance - 标签面板沿 X 轴相对于图表左上角的位置;
  • x_distance - 标签面板沿 Y 轴相对于图表左上角的位置。

输入参数

图 2. 程序的输入参数

标签面板还会显示当前波级的名称(图 1)。

您可以通过按下 Esc 键隐藏/显示标签面板。如要显示标签面板上前一波级或后一波级的标签,请分别按下 QW

标签则可利用拖放法移离标签面板。移动某标签后,标签面板就会恢复其初始状态。如从标签面板中移除某标签,则该面板不会恢复。想要恢复它,必须前往另一个波级,然后再返回。

波级与标签的数量和样式,均于 Levels.txt 文件中设置,而该文件会在您首次启动程序时自动生成。Levels.txt 文件位于 MetaTrader 5 终端数据目录下的 Files 文件夹中。用户可通过编辑该文件,更改波级的样式(图 3)。

波级描述

图 3. Levels.txt 内容

我们以该文件的第四行为例来研究一下:

  • SubMinuette - 波级的名称;
  • i, ii, iii, iv, v, a, b, c, d, e, w, x, y, xx, z - 波峰;
  • Times New Roman - 字体;
  • 8 - 字号;
  • 15 - 字体高度(以像素计);
  • 255, 140, 0 - RGB 格式的颜色。

编辑该文件时,应设置下述限制:

  • 波峰数量应为 15;
  • 每个波峰的标记都不相同。

而且,为确保程序的妥善运行,有必要将 MetaTrader 5 终端设置 (Main Menu-Tools-Options-Charts) 中的 "Unlimited" (无限制)设置为 "Max bars in chart" (图表中的最大柱数)。


2. 波浪标签过程

艾略特波浪在手动与/或自动模式下贴标。

手动模式轮流假设两种标签方式:

  1. 由标签面板拖动标签;
  2. 在图表的相关柱附近单击。

自动模式则建议根据程序的算法为图表贴标。这就是说,根据用户指定,分析可涉及整个图表,亦可是其中的任何部分(从一个标签到另一个)。


2.1. 手动模式

在手动标签模式下,标签可自由显示于各柱的上方或下方,图表比例或尺寸如有变化,亦会自动调整。各标签会按照波级的优先顺序放置。由此,如果同一柱的上方或下方有两个或更多波浪标签,那么,高波级的标签就会分别高于或低于低波级标签放置(图 4 和图 5)。

贴标之前的标签位置

图 4. 贴标之前的标签位置

贴标之后的标签位置

图 5. 贴标之后的标签位置


从图 4 可以看出,柱上方有一个 SubMicro 波级的标签 (A)。标签 5 被置于同一柱上的一个较低级别 - SuperMicro。由于 SuperMicro 级别比 SubMicro 低,所以标签 5 显示于标签 (A) 的下方(图 5)。

手动标签时必须考虑到,波浪标签要放置到最高/最低高于/低于邻近柱的最近柱的上方/下方。这一特定功能允许在图表中更加精确地定位标签。

前文说过,手动模型下的标签有两种完成方式。而且,在拖放过程多多少少还算清楚的同时,单击式的标签亦有其自身的特色。

如果利用鼠标点击贴标,您要在标签面板上选择一个标签。此举亦可通过连续按下 Z 键完成(这种情况下,您可以随着整体循环在面板上的标签之间进行切换)。之后,当前波级的贴标即可通过在图表上所需柱处单击鼠标即可完成。要完成标签过程,请单击任何标签或按下 X 键。

只要标签面板上有选定标签,贴标就会一直继续。每一次鼠标点击都会选择接续的标签。最后一个标签会结束单击型贴标过程。


2.2. 自动模式

图表的自动贴标利用控制键完成。自动贴标的不同情形有三种:

  1. 直到选定标签的图表分析;
  2. 选定标签后的图表分析;
  3. 未选择任何标签情况下的整体图表分析。

自动贴标的第一种情形会在按下 1 后执行。这种情况下,会从其开始直到选择的标签对图表实施分析,前提是其左侧没有其它标签。否则,会从左侧最近的标签开始、直到选定标签执行分析。

图 6 于图表中显示了两个标签。第二个标签被选中。按下 1 后,标签之间的图表部分就会接受分析。分析结果如图 7 所示。

分析 1 前

图 6. 按下 1 之前图表的初始状态


分析 1 后

图 7. 标签之间图表部分的自动分析结果

贴标的第二种情形通过按下 2 激活。这种情况下,会从选定的标签直到图表末尾实施分析,前提是其右侧没有其它标签。否则,会从选定标签开始、直到右侧最近的标签执行分析。

图 8 于图表中显示了一个标签。此标签已被选中。按下 2 后,则从该标签一直到图表末尾的图表部分执行分析。分析结果如图 9 所示。

分析 2 前

图 8. 按下 2 之前图表的初始状态

分析 2 后

图 9. 从该标签一直到图表末尾的图表部分的自动分析结果


分析的第三种情形,会在按下 12 时开始。这种情况下,所有的图表标签都首先被移除。

艾略特波浪自动分析之后,紧接着,就可以查看贴标的几种情形了。

查看分析结果的可用选项有三:

  1. 查看选定波浪的贴标情形;
  2. 查看选定波浪后一个波浪的贴标情形;
  3. 查看未选定任何波浪标签情况下被分析图表部分的贴标情形。

您可以使用下述按键浏览贴标情形:3 (查看前一情形)与 4 (查看下一情形),针对第一查看选项;5 (查看前一情形)与 6 (查看下一情形),针对第二查看选项;以及针对第三查看选项的上述任何按键。

图 10 所示为之前于图 7 中自动贴标并显示的波浪的下一个贴标情形。

下一个贴标情形

图 10. 选定波浪的下一个贴标情形

从图 7、9 和 10 中可以看到,有些标签呈灰色显示,即标签在开始自动贴标之前采用的颜色。这些都是分析之前于图表中显示的标签。而且,不能用鼠标选择它们。在手动与自动贴标之间,所有这些都有必要做出区分。

要将自动贴标转换为手动,您需要按下 V 键,借此,图表中的所有标签都会呈现其之前的颜色,且可供选择。但是,一旦按下 V 键,则不可能再查看贴标情形。

于自动分析之后得到的任何波浪的名称相关信息,亦可供用户使用。该信息会在分析之后立即显示于图表的顶部(图 11),前提是选择了一个标签,或是查看贴标情形的控制键被按下。

波浪类型相关信息

图 11. 选定波浪类型相关信息

要注意的是,自动分析基于特定的波浪规则执行。波浪识别规则存储于首次启动该程序时生成的 Rules.txt 文件中。此文件位于 MetaTrader 5 终端数据目录下的 Files 文件夹中。


3. 额外功能

图表中的任何标签,均可纳入到一个可被选择的特定标签组中。选中图表中的任何标签并按下 Tab 键,即可选中一个标签组。选择涵盖构成带有选定标签的同一个组的所有标签。要取消选择,请再次按下 Tab 键。

选择任意标签、再创建新标签,即可将标签添加到一个组。新标签会被添加到选定标签隶属的组中。

图表中每一个被选定的标签,均可如下处理:

  • 利用 Del 键删除;
  • 波级可分别利用 A 键降低或 S 键升高。

而且,此程序算法还配备了一套自动机制,可确定根据当前时间表显示的波级的数量。该算法基于下述原则:沿时间轴带有不同坐标的标签,不能放置到相同的柱上。而波级的数量,亦可分别利用允许降低(E 键)和升高(R 键)波级的按键实施手动控制。


4. 键盘命令列表

图 12 所示为所有适用键盘命令及其描述。

键盘命令

图 12. 键盘命令


总结

本文讲述了艾略特波浪半自动分析在 MetaTrader 5 中的首次开发。此程序拥有大量的独特功能:

  • 波峰标签于所有时间期段图表中各柱的自动绑定;
  • 通过从标签面板拖动标签及连续单击鼠标两种方式实现的波峰贴标;
  • 按照所有时间期段图表中波级的优先顺序完成的波峰自动贴标;
  • 自动及手动控制图表中显示的波级数量;
  • 针对贴标波级创建自定义样式;
  • 涵盖整个图表及其中某个部分(从一个标签到另一个)的艾略特波浪自动分析;
  • 查看自动贴标的各种情形;
  • 编辑波浪规则的能力;
  • 利用鼠标和键盘控制贴标过程。

此次开发彰显出了 MQL5 语言的丰富资源,且有望鼓励开发人员创建复杂且有趣的程序。

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

利用 EX5 库来推动您的项目开发 利用 EX5 库来推动您的项目开发

隐藏 .ex5 文件中类/函数的实施细节,会让您能够同其他开发人员共享自己的专有算法,设立共同项目并在网络中宣传它们。而且,在 MetaQuotes 团队不遗余力地引入直接继承 ex5 库类可能性的同时,我们现在就要付诸实施了。

保证 MQL5 代码的安全:密码保护,钥匙生成器,时间限制,远程许可证及先进的 EA 许可证密钥加密技术 保证 MQL5 代码的安全:密码保护,钥匙生成器,时间限制,远程许可证及先进的 EA 许可证密钥加密技术

大多数开发人员都需要保证其代码的安全性。本文就会讲到 MQL5 软件的几种不同的保护方式 - 其中涉及到的是赋予 MQL5 脚本、EA 交易和指标许可能力的方法。包括密码保护、钥匙生成器、账户许可、时限评估以及采用 MQL5-RPC 调用的远程保护。

如何在"应用商店"中发布产品 如何在"应用商店"中发布产品

将令人感兴趣的应用程序发布到"应用商店"中,那么,它们立即可供全世界所有使用 MetaTrader 5 的交易者使用。"应用商店"是一个赚钱的绝佳机会,其中包括即时转账和方便的统计数据,有助于您分析自有产品试用版本的购买次数与下载次数。"应用商店"中所有的 MQL5 程序均针对一位特定买家加密,最多允许三次激活,不需要您做出任何额外防护。

MetaTrader 5 与 MQL5 提供的无限机遇 MetaTrader 5 与 MQL5 提供的无限机遇

本文中,我想举一个例子说明交易者的程序会是什么样子,以及如果从头到始学习 MQL5,9 个月内能达到什么程度。这个例子还会显示出对于一个交易者而言,这样一种程序在占用价格图表最小空间的同时,其功能多样性与信息翔实性如何。而且,我们也会看出,可以通过何种方式,得到颜色多样、清晰明快且对于用户而言直观明确的交易信息面板。以及许许多多的其它功能...