请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化策略 帖子:3364703 新帖:24

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

量化客发表于:4 月 17 日 17:01回复(1)

简介

《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 语言的丰富资源,且有望鼓励开发人员创建复杂且有趣的程序。

全部回复

0/140

量化课程

    移动端课程