学习如何基于 Williams PR 设计交易系统

Williams' %R 定义

正如我在介绍中提到的,我们将详细了解 Williams' %R 指标。 Williams' %R (WPR) 是 Larry Williams 开发的动量指标。 我们可以说,WPR 是 Stochastic 振荡器的对手,因为它们之间的区别在于它们是如何缩放的,我们也可以说,WPR 也可以如同 Stochastic 那样使用。 如果您想了解更多关于随机指标的信息,可以阅读我以前的文章,学习如何基于 Stochastic 设计交易系统。 WPR 衡量收盘价和高低区间之间的关系。 WPR 指标也在 0 和 -100 之间振荡。 因为 WPR 是一个动量指标,它也可以用来衡量趋势的强度。 如果您需要了解更多关于趋势和趋势类型的信息,您可以阅读前一篇文章中的趋势定义主题,因为它可能有助于理解这一点。 通过观察 -80、-20 和中位 -50 的重要级别,该指标可能会有意义。

尝试将另一个技术工具与该指标相结合是很重要的,例如价格行动工具、图表形态、成交量、和移动平均线,就像我们在这篇关于策略主题的文章所做的那样,因为这样做非常有用,您能够厘清您所研究的工具中的更多层面,而这有助于做出适合的决策。

现在,我们需要知道如何计算 WPR 指标。 简单地说,我们可以按照以下步骤计算:

  1. 计算最高点的最高价 = 计算区间最高点的最高价。
  2. 计算最低点的最低价 = 计算区间最低点的最低价。
  3. WPR = (最高点的最高价 - 收盘价)/(最高点的最高价 - 最低点的最低价) * -100

为了更好地理解,我们需要举一个具有实际值的示例,应用它并计算 WPR,所以,如果我们有以下金融产品的数据。

周期最高价最低价收盘价
11.0781.06781.0733
21.07881.07261.0777
31.07661.06971.0727
41.07331.06621.0724
51.0741.06421.068
61.07491.06611.0734
71.06981.05581.0689
81.05991.05321.056
91.06081.0461.0586
101.05651.0461.0466
111.05561.04291.0547
121.04441.03881.0431
131.04211.0351.0411
141.0531.03531.0379
151.05771.05021.0511
161.05861.05251.0527
171.05941.04951.0555
181.06011.04821.0551
191.06421.04931.054
201.06321.05051.0621
211.05791.04911.052
221.05671.04911.051
231.06021.03811.0547
241.05091.03591.0443
251.04861.03961.0414
261.0521.041.0408
271.06441.05051.0515
281.07751.06111.0614
291.07491.06711.0714
301.07151.06521.0699

现在,我们通过计算步骤得到的 WPR 与下面的相同。 请注意,我们所采用的周期默认设置为 14。

1- 获取最高点的最高价。

2- 获取最低点的最低价。

3- 得到 WPR。

现在,我们已计算出 WPR 值。 它应是一条在 0 和 -100 之间振荡的曲线,用来衡量动量,就像我们提到的一样。 如今,我们不需要手工计算它,因为我们可以在 MetaTrader 5 交易终端中找到它,我们所需要做的就是在可用指标中选择它,步骤如下所示。

之后,我们将找到其窗口,以确定其参数,如下所示:

1- 设置期望的周期。

2- 确定 WPR 指示线的颜色。

3- 确定 WPR 指示线的样式。

4- 确定 WPR 指示线的宽度。

我们还可以通过 “Levels” 选项卡控制指标的级别,如下所示:

我们在前面的图片中看到,我们有两个级别 -80 和 -20,这两个级别是记录高位读数和低位读数的重要级别。 此外,我们还可以根据我们发现的其它有用级别,视情况添加,譬如,添加 -50 级别,按 “Add”,然后确定要在图表指标窗口上示意的级别。

确定所有所需参数,并按下“确定”后,指标将按如下所示加载到图表上。

正如我们在前一张图片中所见,图表下部窗口中的黑线在 0 和 -100 之间摇摆,可衡量动量。 此外,中位 -50 是一个重要的级别,它对价格走势有着重要的洞察力,因为当 WPR 高于 -50 级别时,这意味着价格在计算周期处于高低区间的上半部分,反之亦然,当 WPR 低于 -50 级别,这意味着价格在计算周期处于高低区间的下半部分。 否则,当我们看到指标读数低于 -80 区域时,这意味着低读数,表明价格接近其低点;但当我们看到指标读数高于 -20 区域,这意味着高读数,表示价格接近其高点。 -80 和 -20 的级别是非常重要的区域,因而它们表明价格达到超买和超卖的区域,这与我们稍后将看到的情况相同。

Williams' %R 策略

在这一部分中,我们将学习如何基于指标的主要概念在简单策略里运用 Williams' %R。 我们将根据 Williams %R 指标背后的思路学习三种不同的策略。 第一种策略,我们称之为 Williams %R - OB 和 OS(超买和超卖);第二种策略,可以称之为 Williams %R - 交叉;第三种策略我们将称之为 Williams %R - 均线。 在以下几行中,我们将辨别如何运用这些策略。

  • 策略一: Williams %R - OB 和 OS:

根据这一策略,我们需要根据具体情况在金融产品处于超买或超卖区域时得到通知。 当 Williams %R 值低于 -80 级别时,这将是超卖信号。 当 Williams %R 值高于 -20 级别时,这将是超买信号。

这一策略将有助于在价格达到超买或超卖区域时通知我们,而解读动量状态,能帮助我们预期即将到来的走势。

WPR 值 < -80 --> 超卖

WPR 值 > - 20 --> 超买

  • 策略二: Williams %R - 交叉。

根据这一策略,我们需要在当期 Williams %R、前期 Williams %R(WPR)、和 -50 级别之间出现交叉时产生并捕获买入或卖出信号。 若前期 WPR 低于 -50,而当期 WPR 大于 -50 时,这是买入信号。 若前期 WPR 高于 -50,而当期 WPR 低于 -50 时,这是卖出信号。

这一策略会非常有用,因为它根据交叉点生成买入和卖出信号,交叉点非常重要,即 -50,如果我们结合另一个技术工具来确认这些信号,将更加有效。

前期 WPR < -50 且当期 WPR > -50 --> 买入信号

前期 WPR > -50 且当期 WPR < -50 --> 卖出信号

  • 策略三: Williams %R - MA:

根据这一策略,当生成买入或卖出信号时,我们也需要得到通知,但这将基于另一个条件,因为当要求大于移动平均值,且 Williams %R 值大于 -50 级别时,我们需要得到买入信号。 而当出价低于移动平均值,且 Williams %R 值低于移动平均时,我们需要获得卖出信号。

这一策略令我们能够根据其条件获得更明确的买入和卖出信号,因为在此处,我们结合了另一种技术工具,即移动平均线,来确认当前信号,并过滤假突破。

要价 > 均线值,且 WPR > -50 --> 买入信号

出价 < 均线值,且 WPR < -50 --> 卖出信号

Williams' %R 策略蓝图

在本主题中,我们将设计一个循序渐进的蓝图,为每个提到的策略创建一个交易系统。 我认为这一步在任何交易系统创建过程中都是非常重要的一步,因为它能帮助我们通过有组织的步骤了解我们需要做什么。

  • 策略一: Williams %R - OB 和 OS:

基于这一策略,我们将设计一个循序渐进的蓝图,来创建一个交易系统,因为我们需要程序或智能系统在每次跳价时一次性检查三个值,并进行比较,从而判定其中一个值相对于其它值的位置,这三个值是当期 WPR、-80 和 -20 级别。 智能系统将在之前的比较后,决定当期 WPR 值是否低于 -80 级别,我们需要智能系统在图表上生成带有“超卖”的注释。 在另一个场景中,若当期 WPR 值大于 -20 级别时,我们需要智能系统在图表上生成一个不同的带有 “超买”的注释。

  • 策略二: Williams %R - 交叉。

基于此策略,我们需要程序根据检查前一个 WPR、当期 WPR 和 -50 三个值来生成买入或卖出信号。 智能系统在每次跳价时检查这三个值,并根据比较生成信号,从而确定前期和当期 WPR 值在 -50 级别的位置。 根据我们提到的内容,如果前期 WPR 低于 -50,而当期 WPR 值大于 -50,我们将在图表上生成注释,包含生成的买入信号、当期和前期 Williams %R 值。 如果前期 WPR 大于 -50,且当期 WPR 低于 -50,则图表上的注释应包含卖出信号,当期和前期 Williams %R 值。

  • 策略三: Williams %R 和 MA:

我们需要根据这一策略创建一个交易系统,并根据其它条件或其它度量生成买入或卖出信号。 因为我们需要创建一个简单的智能系统,它能够不断检查要价、出价、WPR 值、移动平均值、和 -50 级别,并据其生成信号。 当智能系统发现要价大于移动平均值,WPR 值大于 -50 级别时,我们需要智能系统生成买入信号、Williams %R 值、和指数移动平均值,作为图表上的注释。 另一种情况是,当出价低于移动平均值,且 WPR 低于 -50 级别时,生成卖出信号、Williams %R 值、和指数移动平均值,作为图表上的注释。

Williams' %R 交易系统

在这一部分中,我们将学习如何为每个提到的策略创建一个交易系统,这是本文最有趣的部分。 首先,我们将创建一个简单的交易系统,在图表上生成含有 Williams' %R 值的注释,以此作为所有策略的基础。

以下是编写的该交易系统的代码:

  • 创建 “double” 类型数组,可表达分数值。
double WPArray[];
  • 调用 “ArraySetAsSeries” 函数为数组设置排列顺序,该函数会返回布尔值 true 或 false。 此函数的参数是数组 [] 和 标志。
ArraySetAsSeries(WPArray,true);
  • 创建保存 Williams %R 定义的整数型变量后,调用 “iWPR” 定义 Williams' %R 属性。 "iWPR" 函数返回 Larry Williams 百分比范围指标的句柄。 参数包括品种名称、周期和均化周期。
    • 我们将采用(_Symbol)对应于当前所在品种,并采用(_Period)对应于当前所用的时间帧。
int WPDef = iWPR(_Symbol,_Period,14);
  • 调用 “CopyBuffer” 函数复制价格数据到所创建的数组,返回复制的数据计数,如果有错误,则返回 -1。 参数包括指标句柄、指标缓冲时间、开始位置、要复制的数量、和要复制的目标数组。
CopyBuffer(WPDef,0,0,3,WPArray);
  • 为当期 Williams' %R 值创建 WPValue 双精度变量后,调用 “NormalizeDouble” 函数获取当期 Williams%R 值。 “NormalizeDouble” 函数的参数是欲标准化的数字,和小数点后的位数。
double WPVal = NormalizeDouble(WPArray[0],2);
  • 调用 “Comment” 函数在图表上生成 Williams' %R 值作为注释。
Comment("Williams' %R Value is",WPVal);

我们可以查看以下完整代码,了解之前的交易系统:

//+------------------------------------------------------------------+
//|                                            Simple Williams%R.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   double WPArray[];

  }
//+------------------------------------------------------------------+

编译此代码后,我们可在导航器窗口的 “expert Advisors” 文件夹文件中找到智能系统,如下图所示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值