量信精选技术指标系列(3):FRAMA
引言
本期量信精选技术指标系列的主角是分形自适应移动平均FRactal Adaptive Moving Average,简称FRAMA。它是一种高级移动均线算法。与上期的HMA一样,我们重点讲一讲FRAMA作为移动平均线的特点和优势;仅以两个非常简单的择时策略例子说明它在择时方面的作用,但并不对择时策略做过多的参数优化或分析。
FRAMA的含义与计算公式
顾名思义,分形自适应移动平均利用了投资品价格序列的分形特征(对于不熟悉分形的读者,请参考量信文章《分形市场假说》)。简单地说,FRAMA是一个动态的指数移动平均。它的算法通过一个简单但有效的公式计算从当前时刻往前的长度为2T的时间窗口内时间序列的分形维数D,并利用分形维数进一步求解指数移动平均的衰减参数alpha。这使得FRAMA均线在保证移动平均线平滑的同时,大大降低了移动平均线的滞后性。(对于移动平均的详细介绍,请参阅量信文章《移动平均:你知道的与你不知道的》。)
分形维数描述时间序列的趋势,其取值在1到2之间,越大说明趋势越明显,越小说明时间序列越随机。因此,通过连续的计算时间序列局部的分形维数,该算法根据时间序列自身的统计相似性特征,动态、自适应地计算平滑所用的参数。由于alpha是D的减函数,因此D越大(趋势越明显),alpha越小,即指数平滑时对过去的数值衰减的越慢;D越小(随机性越强),alpha越大,即指数平滑时对过去的数值衰减的越快、对最新数据的变化越敏感。
具体的,对于当前时点t和给定的窗口2T,该方法用到了三个时间窗口,即t到t-T+1(记为窗口W1,长度为T),t-T到t-2T+1(记为窗口W2,长度为T),以及t到t-2T+1(记为窗口W,长度为2T)。不难看出,W=W1+W2。FRAMA的计算过程如下:
FRAMA的计算过程 1 用窗口W1内的最高价和最低价计算 N1 = (最高价 – 最低价) / T
2 用窗口W2内的最高价和最低价计算 N2 = (最高价 – 最低价) / T
3 用窗口T内的最高价和最低价计算 N3 = (最高价 – 最低价) / (2T)
4 计算分形维数 D = [log(N1+N2) – log(N3)] / log(2)
5 计算指数移动平均的参数alpha = exp(-4.6*(D-1)),并使其满足在0.01和1之间*
* 随着alpha向1逼近,指数平滑的衰减加剧,造成移动平均的平滑度大幅下降。因此如果将alpha的上限定为1可能带来不必要的高频扰动。在实际使用时,可以根据希望达到的最低平滑度来调整alpha的上限。在本文后续例子和实验中,如无特殊声明,我们将alpha的上限设为0.2。
6 将alpha带入指数移动平均的公式求解t时刻的FRAMA移动平均值
以上证指数周频交易数据为例,下图比较了计算窗口为52周时分形自适应移动平均和简单移动平均线(Simple Moving Average,或SMA)的平滑效果。由于利用了时间序列自身的分形特征,FRAMA均线对滞后性的提高非常明显,这意味着在价格趋势发生变化的时候它捕捉的更加及时。相比较而言,SMA的滞后性相当显著。
如果想让SMA达到相同的滞后效果,就必须使用更短的窗口来计算(但更短的窗口会保留一定的高频误差)。下图为52周窗口计算的FRAMA和8周窗口计算的SMA的比较。在使用了更短的窗口之后,SMA的滞后性大大减弱,效果和FRAMA相似,但同时SMA变的不够平滑、展现出了比FRAMA更大的波动。可见,SMA减小滞后性是以牺牲移动均线的平滑性为前提的。
基于FRAMA的简单择时
由于移动均线捕捉低频趋势,因此我们可以基于此构建一个简单的择时策略:
当移动均线向上时,满仓
当移动均线向下时,空仓。
假设不考虑任何交易成本,我们比较52周时间窗口下用FRAMA和SMA两个移动均线算法得到的策略在上证指数的择时效果:
图中,蓝色为FRAMA择时净值,而绿色为SMA择时净值。(为了突出它们的差距,我们特意没有将纵坐标对数化。)在过去15年里,FRAMA简单择时策略可以取得16.1%的年化收益;它的最大回撤为32.3%,平均回撤为13.6%;另一方面,因为计算均值的时间窗口较长(52期),SMA产生了巨大的滞后性,导致基于它的择时策略效果很差,其年化收益率仅为7.4%,最大回撤达到58.9%,平均回撤32.1%。
我们减少计算SMA的时间窗口,以8周为窗口计算,从而降低它的滞后性,得到的净值和52期窗口的FRAMA净值比较如下:
在选择了短的时间窗口后,SMA的滞后性大大降低,因此其净值大幅提高,达到了与FRAMA接近的收益率和回撤水平。在回测期内,基于8周窗口的SMA择时策略取得15.9%的年化收益率,最大回撤和平均回撤分别为32.9%和12.7%。
本文的目的是为了说明FRAMA的原理和特点。我们不继续深入探讨基于FRAMA的择时策略。
结语
移动平均线是技术分析中一种分析股票价格时间序列的常用工具。移动平均可抚平短期波动(高频噪声),反映出中长期趋势,辅助投资者做出投资判断。FRAMA是一个优秀的移动平均算法,它利用时间序列本身的分形特征,在保证均线平滑性的同时降低了移动平均的滞后性。这有助于投资者对趋势的变化做出及时的判断。
无论是什么技术指标,若想通过它持续地赚到钱,必须充分理解该指标的原理和它们反映的本质、并坚持使用它。对于任何指标,必须判断它是否适合我们面对的市场。通过严格的历史回测和分析,可以计算出技术指标的有效性。此外,随着市场自身内在的变化,回测中有效的技术指标也许会在将来的某一天失效。因此我们应用动态和发展的眼光看问题,不断的检验指标是否持续有效。