下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

2016.03.25 07:52
指标

HP Extrapolator - MetaTrader 4脚本

| Chinese English 日本語 Русский Español Deutsch Português

显示:
2022
等级:
投票: 5

作者: gpwr

Hodrick-Prescott 过滤器的独特特点是它不会有延迟. 它是通过最小化对象功能计算的

F = Sum((y[i] - x[i])^2,i=0..n-1) + lambda*Sum((y[i+1]+y[i-1]-2*y[i])^2,i=1..n-2)

其中 x[] - 价格, y[] - 过滤值. 以下是过滤器行为的实例 (参见附件中的 HP.mq4 文件)

如果 Hodrick-Prescott 过滤器能够预测未来, 那么它会提出怎样的未来数值呢?为了回答这个问题, 我们需要找到低频过滤器, 它的频率参数与 Hodrick-Prescott 过滤器的频率类似, 但是它使用的数值是来自"双胞胎过滤器"本身的过去的数据, 也就是

y[i] = Sum(a[k]*x[i-k],k=0..nx-1) - FIR filter

或者

y[i] = Sum(a[k]*x[i-k],k=0..nx-1) + Sum(b[k]*y[i-k],k=1..ny) - IIR filter

最好能够让这个"双胞胎过滤器" 独立的频率延迟 Tdel (固定组延迟). IIR 过滤器并不适合. 对于 FIR 过滤器, 独立于频率的延迟条件如下:

a[i] = +/-a[nx-1-i], i = 0..nx-1

使用固定延迟的 simplest FIR 过滤器是简单移动平均 (SMA):

y[i] = Sum(x[i-k],k=0..nx-1)/nx

如果 nx 是一个偶数, Тdel = (nx-1)/2. 如果我们把SMA过滤器的转换值设为等于Tdel的柱数, SMA 的数值就和 Hodrick-Prescott 过滤器的数值一致了. 不可能达到数学上的绝对相等, 因为这两个过滤器的频率参数差距很大(参见以下图表):

为了使得过滤器之间的匹配更加接近, 我推荐它们的通道宽度近似(例如, -6dB). 通道宽度为 -6dB 的 Hodrick-Prescott 过滤器值计算如下:

wc = 2*arcsin(0.5/lambda^0.25).

通道宽度为 -6dB 的 SMA 过滤器使用以下公式进行计算:

|H(w)| = sin(nx*wc/2)/sin(wc/2)/nx = 0.5

下面的图表比较了这两个通道宽度一样的过滤器的值: 红色 - Hodrick-Prescott 过滤器 (FiltPer = 25), 蓝色 - SMA (Period = 15, Shift = -7). 请注意, 最近7个柱没有SMA数据, 因为它需要知道未来的价格. 相反, Oppositely, Hodrick-Prescott 过滤器 (红色) 显示了一些数值. 如果转移过的SMA当未来的价格出现以后, 在最后7个柱重复了 Hodrick-Prescott 过滤器的值, 那么这些价格值是什么呢?

预测算法:

本指标有两种预测方法:

方法 1:

1. 把SMA的长度设为3而向过去转移一个柱. 使用这样的长度, 转换的SMA只有在最后一个柱 (Bar = 0) 才没有数值, 因为它需要下一个未来的柱的价格 Close[-1].

2. 计算SMA过滤器的通道宽度. 使它等于 Hodrick-Prescott 过滤器的数值. 寻找 lambda.

3. 在最后一个柱HP[0]计算 Hodrick-Prescott 过滤器的数值并假定使用了Close[-1] 的 SMA[0] 具有相同的数值.

4. 寻找 Close[-1] = 3*HP[0] - Close[0] - Close[1]

5. 把 SMA 的长度增加到5. 重复所有的计算并寻找 Close[-2] = 5*HP[0] - Close[-1] - Close[0] - Close[1] - Close[2]. 继续直到计算了指定数量的未来柱 FutBars 的价格.

方法 2:

1. 把 SMA 长度设为 2*FutBars+1 并把 SMA 转换到过去FutBars 个柱

2. 计算SMA过滤器的通道宽度. 使它等于 Hodrick-Prescott 过滤器的数值. 寻找 lambda.

3. 在最后FutBars计算Hodrick-Prescott过滤器的值并假定SMA在新的价格出现时表现相同.

4. 寻找 Close[-1] = (2*FutBars+1)*HP[FutBars-1] - Sum(Close[i],i=0..2*FutBars-1), Close[-2] = (2*FutBars+1)*HP[FutBars-2] - Sum(Close[i],i=-1..2*FutBars-2), 等等.

指标有如下的输入参数:

Method - 预测方法

LastBar - 用于根据已有价格预测的最后的柱数 (LastBar >= 0)

PastBars - Hodrick-Prescott 过滤器计算的柱数 ( 至少 PastBars>2*FutBars 或者更多 )

FutBars - 预测未来的柱数

指标把未来的数值使用红色增强显示. 以下实例使用了方法 1:

方法 2:

第二种方法更加精确, 但是预测的第一个价格经常有大的波动. 所述的预测方法可以通过寻找与Hodrick-Prescott过滤器频率类似的FIR过滤器来改进. 例如, 您可以尝试 Hanning, Blackman, Kaiser, 以及其他过滤器, 使用固定延迟来替代 SMA.

作者非常感谢使用了 Korey 最初的 Hodrick-Prescott 过滤器指标, 它发布在以下的论坛中 (俄语):

http://forum.mql4.com/ru/18404/page2

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/8663

Daily Channel Daily Channel

显示任一时区下每天简单通道

MACDChannels MACDChannels

这是一款在主图关于MACD的指标

价格与交易量趋势 - PVT 价格与交易量趋势 - PVT

价格与交易量趋势指标 (PVT), 与量价平衡 (OBV) 指标类似, 代表交易量的累计和, 计算时考虑了收盘价格的变化。

斯皮尔曼相关等级 斯皮尔曼相关等级

斯皮尔曼相关等级是一种非参数化方法, 用于统计研究现象之间的关系。在此情况下, 将会检测两组数字序列之间的实际平行度。