- 显示:
- 5702
- 等级:
- 已发布:
- 2016.03.25 07:52
- 已更新:
- 2016.11.22 07:33
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
作者: 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 过滤器指标, 它发布在以下的论坛中 (俄语):
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/8663

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

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