前一阵子有人在围观里说我天天开发土狗策略,是是是,土狗策略就完事了。今天向大家分享一个土狗最近在用的择时策略(doge)。 一.前提 ●让我们严肃一点进入正题,经典的择时策略其实分为几大类:短期事件驱动(在币圈表现为监视各大交易所公告和推特,涉及到文本分析),统计意义上的回归与预测(统计套利,配对交易,各类ML和DL模型,分层隐马尔可夫等),GSISI类投资者情绪择时,以及传统的经典技术指标择时。技术指标择时是大多数投资者所使用的,相比于各类复杂模型,过度拟合的风险较小,但是缺陷也很明显。币圈的量化新人一定会接触到一个东西:
N日移动平均线=N日收盘价之和/N
●这个东西一般被广大投资者称为均线(MA),一根均线,突破买入,跌破卖出,无数的*菜为交易所贡献了自己的手续费。 ●均线可以很好地描述价格的走势,并且紧紧地追踪这个趋势,不轻易发生改变。期货CTA的开发中,均线可以说是非常重要的参考指标——然而,普通投资者对于均线的运用却存在以下的一些问题:其一,均线延后性严重,往往出现信号时趋势已经走完大半,来回打脸;其二,币圈的普通投资者往往对着分钟级别的指标进行操作,15min,5min甚至1min,在这么小的周期内,币圈80%以上的特征都是震荡(马丁喜欢的那种),趋势行情很少发生,投资者依据均线来回开仓损失了大量的手续费和滑点。 ●本文旨在构造一种对于均线类指标进行滤波,降低其延迟性的算法供大家参考和使用。
二.Z变换,传递函数 ●在本文之前,笔者在各大网站上了解了一些关于指标的滤波算法,比如最常见的傅里叶滤波(在松鼠宽客的几期CTA中出现),以及joinquant上有作者研究的卡尔曼滤波方法在回测中成功逃顶了2015年股灾。TB上有ER过滤模块使用起来极为方便——然而当笔者发现joinquant上提供的卡尔曼滤波模块装不进服务器,而它开源的代码有几千行时,果断放弃了将它移植到币圈的尝试。Z变换的滤波是一种更为简单的替代方案–笔者并不是理工科出身,因此逻辑疏漏和错误难免,恳请看得起土狗策略的读者指正。 ●Z变换来自拉普拉斯,常用于数学信号处理领域。对于一个离散的时间序列f(k)以及定义在复频域的z,其公式定义如下:
●EMA均线相比于MA具有更低的延迟(实质就是使用EWMA算法对MA序列进行处理后得到的结果),因此我们在此使用EMA序列而不是MA,从而提高滤波的效果。我们定义输入量为为币种的价格(收盘价),记为p(z),输出量为和价格对应的EMA指标,记为EMA(z)————因此传递函数在此实质就是币种EMA及其对应收盘价的强度比值,它是一个具有反馈性质的系统,记传递函数为H(z),则有:
●将此式子代入EWMA的算法中,可以得到EMA的初始传递函数:
●其中,a为一个可变参数,下同。
三.传递函数的分析 ●在传递函数中,输入信号与函数值并没有关联。通过对该函数分析可知,当z**-1=-1时,H(z)取最大值,即此时达到了最高频率,传递函数为H(z)=a/(2-a),近期高频数据的噪声被最大衰减;当z**-1=1时,H(z)为常数,此时系统频率为0,输入与输出结果完全相同,如果此时时间序列是一个常序列,那么EMA值将会在此收敛。在输入的币的价格进入H(z)时,产生EMA信号,此时的H(z)可以看作是一个简单的一阶滤波器。 ●当H(z)是一个低通滤波器,且H(z)=1时,输出的信号包含了输入信号的所有分量,也就是说全部的输出信号中,若减去所有的低频信号,1-H(z)可以被构造成为一个新的滤波器,记为H’(z),与H(z)正好相反,它是一个高通滤波器。 ●记P(T)为币当根k线的价格,我们取当日价格和前一日价格来平滑这个函数关系式,从而对输出的EMA进行进一步修正(这是因为原传递函数H(z)=a/(2-a)时,高频信号没有被有效过滤,因此取前一个值来加以平滑,如若效果还是不佳,可以多取几个加权),因此当日输入的EMA修正表达式为: ●此为低通滤波器,高通滤波器的表达式只需要用1减去它: ●现在滤波器的表达式已经被构建完成了!通过Z变换,我们可以构建出低延迟的趋势线,且它只有一个参数a,a越大,延迟性越低,平滑性越好。对于不同的品种,都有各自不同的最适参数。
四.总结与注意事项 ●在上述步骤中构建出的滤波器只是一阶的,由于过渡带过长,其滤波效果不是十分理想,而提高阶数后,H’(z)函数表达式的复杂程度呈现指数级上升,过高的阶数也容易出现滤波均线出现不规则跳跃的情况。从过往经验来看,2或3阶是较为合适的阶数,读者也可以自行用线性组合来串联多个相同或者不同阶数的滤波器观察其效果,由于笔者实在公事繁忙,故无法一一试验验证。 ●这种基于Z变换的滤波算法不只适用于均线类指标,所有存在假信号的指标,如boll和atr,通过滤波算法,都能达成一定的过滤的效果,确定开仓突破阈值的大小,从而降低原指标延迟性严重后知后觉的情况。 ●本篇在此告一段落,无暇提供相关算法代码而只是给出一种思路,有兴趣的读者可以自行试验。
●Promise Quant明诺专注各类以马丁为核心的奇妙土狗策略的开发,如若您有租用需求或者大资金托管需求可以联系vx:15001733415