未分类 · 2023年3月24日 0

有没有用数字信号处理的方法做量化交易策略的?【】

之前复现过这个John Ehlers大神的一个策略,其中头一步就是利用数字信号处理(DSP)技术对价格时序序列去噪(SuperSmoother低通滤波),用在国内的品种上效果还可以,下面可以展开唠一唠。

这是在交易杂志《股票与商品技术分析》(《Technical Analysis of Stocks and Commodities》,业内简称“S&C”)上,约翰•埃勒斯(John F. Ehlers)在2020年2月刊文章《Reflex: A New Zero-Lag Indicator》当中提出的两个指标,分别是Reflex和Trendflex。


咱先来唠唠这个Reflex~

先说第一个指标为啥叫这名儿。纯粹因为作者曾经也爱好玩弓耍箭,这个指标构造出来也很像一张弓,reflex在英文里就是“反曲弓”的意思,这是一种弓箭类型,与直拉弓相对,在复仇者联盟里面,鹰眼使用的就是一张反曲弓,于是乎,老约翰拍大腿觉得这名儿酷毙了,让他回想起那青葱的岁月,连文章的配图也是一张拉满弦的弓。

原文:I named this new indicator “reflex” because I used to be an archer, and the creation of the indicator reminded me of a bow and arrow. Reflex is a kind of bow with a cool name.


扯过闲篇儿,正儿八经说说Reflex这个指标怎么构造吧,跟把大象塞进冰箱流程一个样,总共分3步走。

Step1:首先对原始价格序列进行平滑处理,采用的是 SuperSmoother过滤器。

老约翰也是漂亮国量化界当中的翘楚了,非常善于用数字信号处理(DSP)技术对证券价格序列去伪存真,咱可以把SuperSmoother当成是一个低通滤波器就可以了,”过滤高频噪声,保留低频趋势“。

他在2014年1月刊的文章《Predictive And Successful Indicators》披露过SuperSmoother的计算细节,并通过试验证明SuperSmoother的去噪效果,比传统的指数移动均线EMA要好了不止一丢丢。



Step2:从当前点位到N个周期的点位画一条直线,计算价格曲线上的点到直线上距离,然后计算出它们的平均值,记为S。

学过微积分的小伙伴都清楚,这个将距离汇总的过程,就类似于积分求面积,跟我以前说的『K线面积交易法』很像,对总面积求均值,就相当于是求每个点到直线的平均距离。


Step3:然后计算平均距离S平方的指数移动平滑值MS,最后将平均距离S除以平滑值的平方根,MS平滑的意图就是保证分母每日变化不要过大。

T日MS = 0.04*S*S + 0.96*T-1日MS

Reflex = S / sqrt(MS)

文章当中公布的Reflex完整版源码如下,量化平台是TradeStation,配套的编程语言是EasyLanguage,从名字就可以看出来,这款编程语言so easy,TS平台在国外用的人还是很多的,之前介绍过的量化书籍,里面的指标和策略也都是基于这个平台。


Reflex指标画出来的效果如下,当价格从低点上升的过程中,Reflex值是逐渐变大的,但是过了临界点之后,即使是价格仍处在上涨趋势当中,Reflex值也会变小,这个临界点的判断,简单来说,就是在step2当中,与N个周期前那个点的连线,是否和K线围成了更大的面积。


了解完Reflex之后,弄清楚Trendflex那就是很简单的事情了,因为Trendflex是Reflex的兄弟版本,它们之间计算是相似的,最大的差别就在step2中平均距离的计算上,也就是红框当中的代码。


Reflex是在当前点跟N周期之前的点连一条直线,而Trendflex是直接以当前点的价位画一条直线,从step2的计算细节来说,一般情况下,Trendflex的直线会与价格序列之间围出来更大的面积,而且直线的前N个点都是当前价位,随着价格的持续上涨,相对来说面积的变化程度没有Reflex那么大,特别是过了临界点之后,对趋势的保留更为明显。


Trendflex指标画出来的效果如下,通过跟Reflex对比,可以看出,Trendflex在过了Reflex的临界点后,指标数值还是会随着价格上涨而增大,并且在之后会维持一个较为高位的数值。不过针没有两头尖的,有利就有弊,Trendflex相对来说比Reflex滞后。


由于Trendflex对趋势的衡量较优,所以在股票期货和大饼圈等领域,使用Trendflex的人会相对多一点。

老约翰在文章中只是详细阐明了这两个指标的来龙去脉,但没有说具体用法,各路宽客也只好八仙过海,各显神通了,没有先天约束,想怎么用就怎么用。

我就举个用法栗子,说个策略大伙儿参考一下,从Trendflex与价格走势图可以看出来,在上涨阶段,Trendflex在上涨初期,数值是随着价格上涨不断增大的,但上涨的中后段数值可能是不升反降;下跌阶段也是如此,在下跌初期,Trendflex数值是随着价格下跌不断减小,但下跌的中后段数值可能是不降反升。

因此,Trendflex非常适合作为趋势初期的捕捉指标,在Trendflex创区间新高时做多,创区间新低时做空,出场咱就使用动态止盈止损就可以了。

新鲜的食材,往往只需要(chun)简(cui)单(shi)的(xiang)做(tou)法(lan),咱就拿期货市场上,经常被折腾的小(R)白(B)鼠测试一下,净值曲线如下。


PS:本策略源码已分享至『量化藏经阁』和『量化藏经阁Max』社群内,群友请在社群量化兵器库原路径中自取。

看上去不是很惊艳,不是那种45度斜向上稳稳的曲线,但作为单品种单周期的朴素粗线条策略,我在上面还是看到了很多待挖掘的可能性,留待各位大神探索。

更多量化相关资料请见:

打赏 赞(0) 分享'
分享到...
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏