量化软件下载:赫兹量化中旗形形态

用于搜索水平形态和三角形的通用指标

为了创建指标,我们将使用 iUniZigZagSW 指标,它来自通用的之字转向指标这篇文章。还需要以下另外的文件: CSorceData.mqh, CZZDirection.mqh 和 CZZDraw.mqh。这些文件以文件可以从通用之字转向指标文章的附件中下载。下载文档,再解压并把 MQL5 文件夹复制到终端数据文件夹中,在复制之后, ZigZag 文件夹将会出现在 MQL5/Indicators 中,包含了几个文件 (包括 iUniZigZagSW.mq5), 还有另一个 ZigZag 文件夹,CSorceData.mqh, CZZDirection.mqh 和 CZZDraw.mqh 文件将出现在 MQL5/Includes 文件夹中。在复制文件之后,重新启动终端来编译指标或者在 MetaEditor 中逐个编译它们。在终端的图表中运行 iUniZigZagSW 指标已确保它能正常工作。

在沃尔夫波形文章中,在创建指标的中间步骤中保存了iWolfeWaves_Step_1.mq5 文件,它实现了使用 iCustom() 函数访问 iUniZigZagSW 指标,另外,在它内部还有一个数组保存了所有之字转向的顶部和底部。下载‘沃尔夫波形’文章的附件, 把它解压缩, 复制iWolfeWaves_Step_1. 到 MQL5/Indicators, 把它重命名为 "iHorizontalFormation" 并在 MetaEditor 中打开它,所有使用指标来侦测水平形态的工作都将在这个文件中进行。可能需要在这个文件中修改 iUniZigZagSW 指标的路径,为了检查这一点,要编译指标并尝试在图表上运行它。如果出现了 "载入指标出错" 的消息窗口, 就要在 OnInit() 中找到对 iCustom() 的调用, 并且把指标名称从"iUniZigZagSW"改为"ZigZags\\iUniZigZagSW"。在这样修改之后,再次编译指标,并确保它可以在图表上正确运行。在这个阶段,指标不会画出任何东西。

在这里讨论的整个搜索形态的过程可以分为几个独立任务:

  1. 确定在形成形态之前的价格变化的数值,

  2. 确定形态的形状,

  3. 确定形态的斜度,

  4. 形态生成结束: 在形态形成之后或者等到突破某一水平。

  5. 确定目标。

每个任务(除了第一个)都将提供集中方案选项,这将有助于我们创建一个通用指标来识别所有这三种形态。我们将能够在指标参数窗口中使用枚举的下拉列表在选项中作切换,

选择形状(形态类型)的枚举:

 
 

enum EPatternType{ PatternTapered, PatternRectangular, PatternExpanding };

属性窗口中对应的变量:

 
 

input EPatternType Pattern = PatternRectangular;

这个参数可以用来选择形态的形状: PatternTapered — 收敛三角形, PatternRectangular - 长方形, PatternExpanding - 扩张三角形.

用于选择形态倾斜方向的枚举:

 
 

enum EInclineType{ InclineAlong, InclineHorizontally, InclineAgainst };

属性窗口中对应的变量:

 
 

input EInclineType Incline = InclineHorizontally;

这个参数可以选择形态的倾斜方向: InclineAlong — 在期望的方向上继续延伸 (对于买入就是上涨,对于卖出就是下跌), InclineHorizontally — 没有倾斜, InclineAgainst — 于期望的方向上相反。

用于选择形态结束方法的枚举:

 
 

enum EEndType{ Immediately, OneLastVertex, TwoLastVertices };

属性窗口中对应的变量:

 
 

input EEndType CompletionType = Immediately;

可以使用以下的选项: 在形态完成后立即, OneLastVertex — 在突破了形态最近的顶部水平后, TwoLastVertices — 在突破了形态中由两个顶部构成的水平之后.

用于选择目标计算选项的枚举:

 
 

enum ETargetType{ FromVertexToVertex, OneVertex, TwoVertices };

属性窗口中对应的变量:

 
 

input ETargetType Target = OneVertex;

可以使用以下的选项: FromVertexToVertex (图 11), OneVertex (图 10), TwoVertices, 使用形态中的两个初始底部 (参见图 14).

编辑

添加图片注释,不超过 140 字(可选)

图 14. 三顶的形态。目标确定选项是 TwoVertices, 形态完成方法是 OneLastVertex.

当形态完成方法设为 Immediately 的时候, Target 参数就是无效的,因为只能使用 FromVertexToVertex 。对于另外两种形态完成选项 (OneLastVertex 和 TwoLastVertices), 所有三种 CompletionType 选项的不同组合都是可能的。请注意下面的特性: 如果选择了 OneVertex 或者 TwoVertices 选项来确定目标, 一个或者两个第一底部(图14中的点2, 或者点2和点4)来用于确定目标, 而突破水平是根据最近一个或者两个顶部来确定的 (图14中的点5或者点3和点5). 如果使用了双顶的形态,将使用点3或者点1和点3。

为了解决任务1, 我们需要一个参数来确定形态之前价格变化的大小:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值