量化百科

有没有哪个趋势指标更好使?

由polll创建,最终由polll 被浏览 55 用户

摘要

趋势追踪策略成功的关键在于选择适当的时间尺度、仓位控制、投资组合构建以及风险管理等要素。与这些相比,具体使用哪个方法来计算趋势则没那么重要。

引言

市场中有句老话“趋势是你的朋友”。无论是表现不俗的 CTA 策略还是股票市场的动量因子,都是依靠追踪趋势而构建的成功策略的典范。

而在技术层面,各种捕捉趋势的方法也是层出不穷:基于收益率的时序动量、来自技术分析的均线交叉或通道突破、各种 state space 模型比如卡尔曼滤波、基于价格的线性回归、甚至是频域分析(如傅里叶变换、小波分析等)。

当某种方法的回测结果不是那么给力的时候,人们的第一反应总是寻找下一个(更复杂)的方法来计算趋势。然而究其核心,上述方法都是基于价格或者收益率的时间序列计算出来的,真的有哪种方法或者指标显著优于其他方法吗?这就是本文关心的问题。

为了回答这个问题,Levine and Pedersen (2016) 提出了 **trend signature plots(趋势签名图)**这个概念。其目的是把不同计算趋势的方法绘制成价格或者收益率的权重随时间变化的函数,以此来横向比较不同的趋势指标。

下面就来用时序动量和均线交叉来解释 trend signature plots。

时序动量 vs 均线交叉

为了便于讨论和数学推导,假设我们考虑对数价格 —— 因为对数价格的差分就是对数收益率,这样就可以非常简单的在价格和收益率之间转换,从而比较不同的趋势计算方法。

**时序动量一般的计算方法为使用过去一段时间的收益率进行加权平均(通常的做法是等权),以此得到趋势指标。**假设当前时刻为 t,则 t 时刻的时序动量(time series momemtum)指标 TSMOM_t 可以写成如下形式:

displaystylembox{TSMOM}

为不失一般性,上式写成了无穷级数的形式。在实际应用中,对于给定的计算窗口 N,只需要令所有 s > N 的权重 c_s 等于零即可。

再来看看均线交叉(moving average crossover)。**它是使用快、慢两个均线构成的趋势指标。每个均线都是给定窗口内价格序列的加权平均(因权重不同可以有简单移动平均、指数移动平均等),趋势信号则是快、慢两个均线之差。**均线交叉的数学表达式如下:

begin{array}{rll} displaystylembox{MA}^{mbox{fast}}

直观比较 TSMOM 和 MACROSS 两个计算趋势的方法,它们看上去似乎差别很大。但是,通过简单的数学推导可以发现 **MACROSS 可以很容易的表达为收益率序列按照某种特定权重加权的组合。**具体来说,从 TSMOM 的定义出发,将其转化为如下形式:

begin{array}{rll} displaystylembox{TSMOM}

比较上式和 MACROSS 的定义就可以看到收益率的权重 c_s 和 MACROSS 权重 w_s^{mbox{fast}}w_s^{mbox{slow}} 之间的关联:

begin{array}{rll} displaystyle c_1&=&displaystyle w_1^{mbox{fast}}-w_1^{mbox{slow}} displaystyle c_s&=&displaystyle c_{s-1}+w_s^{mbox{fast}}-w_s^{mbox{slow}} &=&displaystyle sum_{j=1}^s left(w_j^{mbox{fast}}-w_j^{mbox{slow}}right),sge 2 end{array}

该结果意味着,只要按照上述 c_s **对收益率进行加权平均,得到的趋势信号就等价于均线交叉。**利用这种等价性就可以把不同的趋势计算方法绘制成不同时刻收益率的权重随 s 的变化,以此得到 trend signature plot。需要指出的是,通过转换价格权重得到的收益率权重序列之和并不等于 1。为了比较不同方法的 trend signature plots,需要对收益率权重进行归一化处理。

上述基于均线交叉的推导也可以推广到更一般的情况。假设某种趋势计算方法是价格序列的加权: sum w_iP_i ,则其对应的收益率加权系数为:

displaystyle c_s=displaystyle Asum_{j=1}^s w_j,s=1,2,cdots

其中 A 是将 c_s 序列归一化的系数。下图展示了三种不同方法的 trend signature plots(横坐标最左侧 s = 0 代表着最新的时刻、横坐标增大代表时序 lag 增大),它们分别为:

  1. 窗口为 260 个交易日、使用等权重计算的 TSMOM 信号;
  2. 窗口分别为 20 和 260 日的简单移动平均线计算的均线交叉信号;
  3. 质心(center of mass)分别为 32 和 128 的指数移动平均计算的均线交叉信号。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='849' height='413'></svg>)

从上图不难看出,尽管时序动量和均线交叉听起来截然不同,但它们背后的趋势签名其实相差的并不大;而同属于均线交叉的简单平均和指数平均,它们之间的相似性就更高了 —— 这说明如果简单移动平均的效果不好而寄希望于指数移动平均发挥什么神奇的效果,实在是有些不切实际。

其他线性算法

本节再来考虑其他两种常见的计算趋势的线性方法:卡尔曼滤波(Kalman 1960)和线性回归。

**卡尔曼滤波是一种从带噪声的动态线性系统中估计隐含状态的有效方法。**以价格序列为例,最简单的模型是 random walk + local trend,而 trend 的取值是不可观测的,需要使用卡尔曼滤波来估计。Harvey (1984) 指出,当使用卡尔曼滤波分析 local trend 模型时,对 local trend 的最优估计是收益率序列的指数移动平均。

下图比较了三种不同趋势计算方法的 trend signature plots:

  1. 窗口为 260 个交易日、使用等权重计算的 TSMOM 信号;
  2. 质心(center of mass)分别为 32 和 128 的指数移动平均计算的均线交叉信号;
  3. 使用质心为 96 的指数平滑代表的卡尔曼滤波趋势信号。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='916' height='437'></svg>)

相比较其他两种方法,卡尔曼滤波偏重于赋予近期的收益率更高的权重。其他常见线性滤波器还有 HP filter(Hodrick and Prescott 1997),也可以得到类似的结果,这里不再赘述。

再来看看 OLS 线性回归。以下图为例,线性回归使用过去一段时间的价格序列在时序上进行线性拟合 P_s = α + βs + ε ;回归系数 β 的正负则代表着趋势上涨或者下降。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='892' height='603'></svg>)

具体而言,假设用于回归的(对数)价格序列窗口为 N,则 N 对样本点分别为 (1, P_{t-N+1}) , (2, P_{t-N+2}) , …, (N-1, P_{t-1}) , (N, P_t) 。由 OLS 的定义可知, hat beta 为:

begin{array}{rll} displaystyle hatbeta&=&displaystylefrac{sum_{s=1}^Nleft(P_{t-s+1}-bar Pright)left(frac{N+1}{2}-sright)}{sum_{m=1}^Nleft(frac{N+1}{2}-mright)^2} end{array}

其中 bar P 是 N 期价格均值。此外,通过简单的代数运算可知:

begin{array}{rll} displaystyle sum_{s=1}^Nbar Pleft(frac{N+1}{2}-sright)&=&displaystylebar Psum_{s=1}^Nleft(frac{N+1}{2}-sright) &=&displaystyle bar Pleft Nleft(frac{N+1}{2}right)-sum_{s=1}^N sright &=&displaystyle bar Pleft Nleft(frac{N+1}{2}right)-Nleft(frac{N+1}{2}right)right &=&0 end{array}

因此, hatbeta 可以进一步简化为如下形式:

begin{array}{rll} displaystyle hatbeta&=&displaystylesum_{s=1}^N leftfrac{left(frac{N+1}{2}-sright)}{sum_{m=1}^Nleft(frac{N+1}{2}-mright)^2}rightP_{t-s+1} end{array}

上式说明, hatbeta 是价格序列的线性加权。因此我们可以利用上一节提到的处理方法将它转化为收益率加权,从而得到 trend signature plot。

最后,下图比较了三种不同趋势计算方法的 trend signature plots,说明 OLS 计算的趋势信号和 TSMOM 以及 MACROSS 并无本质的区别:

  1. 窗口为 260 个交易日、使用等权重计算的 TSMOM 信号;
  2. 窗口分别为 20 和 260 日的简单移动平均线计算的均线交叉信号;
  3. 线性回归 OLS 得到的趋势信号。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='943' height='474'></svg>)

在本小节和上一节的对比中,我们在选取不同趋势计算方法的参数时,刻意要求它们计算趋势的时间尺度是相同的(只有这样的比较才有意义)。这一点是非常重要的,它说明**一旦选定了时间尺度,则不同的趋势计算方法的效果非常接近。**归根到底,这些趋势计算方法都可以转化成各自的 trend signature plot 来表示,虽然它们的形态有些差异,但其本质仍然都是收益率的某种加权平均。

一个例子

本节使用 Levine and Pedersen (2016) 的例子来对比 TSMOM 和 MACROSS 两种方法,并说明对于趋势策略,计算趋势的时间尺度远比给定尺度下选择哪种计算方法更重要。

具体来说,针对这两种方法,分别考虑一个月、三个月和一年这三个时间尺度。投资标的来自 Moskowitz et al. (2012) 中提及的 58 种资产(包括商品期货、债券、股票和外汇)。根据这三个时间尺度,分别选择 TSMOM 和 MACROSS 的参数如下(MACROSS 中的快、慢均线均使用指数移动平均,参数表示快、慢均线的质心):

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='727' height='193'></svg>)

使用这些方法构建的趋势追踪策略的收益率、波动率以及夏普率如下表所示。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='974' height='329'></svg>)

上述结果说明,对于给定的时间尺度,TSMOM 和 MACROSS 两种方法的结果非常接近;而选择正确的计算趋势的时间尺度则有助于提高策略的收益率和夏普率。

最后,我们可以通过回归进一步比较这两种方法。具体的,使用三个 TSMOM 策略作为解释变量来分别解释每一个 MACROSS 策略;反之用三个 MACROSS 策略作为解释变量来逐一解释 TSMOM 策略。回归结果如下。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='957' height='598'></svg>)

从上面的结果可以解读出如下信息:

  1. 这六个回归的 R-squared 都很高,说明这两种方法很高的相似性;
  2. 对于每一个级别的信号,解释变量中最显著的恰好是和它同级别的另一种方法计算的信号;
  3. 从截距来看,TSMOM 信号似乎有 MACROSS 无法解释的 α。

**对于第三点,它并不说明 TSMOM 就比 MACROSS 更好。**造成这种现象的原因是,三个 TSMOM 信号的 trend signature plots 的组合可以更好的模拟每一个 MACROSS 的 trend signature plot;而反观 MACROSS,它们的 trend signature plots 无法很好的逼近 TSMOM 的 trend signature plot(下图)。

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1163' height='402'></svg>)

结语

趋势追踪策略成功的关键在于选择适当的时间尺度、仓位控制、投资组合构建以及风险管理等要素。与这些相比,具体使用哪个指标或者方法来计算趋势则没那么重要。

之前我写过一些关于趋势(或动量)的文章,它们包括:

  1. 《移动平均:你知道的与你不知道的》:探寻均线背后的数学内在,解析不同均线计算方法的相似之处。
  2. 《什么样的收益率特性适合趋势追踪策略》:研究适合趋势策略的收益率特征,指出计算趋势的时间尺度对于趋势策略的成败至关重要。
  3. 《动量策略的是与非》:比较时序动量和截面动量的不同。

这些文章,以及今天这篇,都没有去介绍某种具体的趋势策略;相反的,它们是为了探究趋势策略本质而做的尝试。趋势策略容易吗?容易 —— 利用两根均线就可以“走两步”,然而做不好很容易;趋势策略困难吗?困难 —— 这里面有太多的细节需要分析、推敲,持续的做好很困难。

如果你因为文章的标题而点进来并希望看到哪个指标主宰其他的话,那么我向你表示歉意,可能让你失望了。但是希望本文能带给你一些别的启发。随着对趋势策略的进一步理解,我们就可以把有限的精力用到更重要的地方 —— 如仓位控制、风险管理这些 —— 提高趋势策略的风险收益特征。

The trend is your friend except at the end where it bends.

参考文献

  • Harvey, A. C. (1984). A unified view of statistical forecasting procedures. Journal of Forecasting, Vol. 3(3), 245 – 275.
  • Hodrick, R. J. and E. C. Prescott (1997). Postwar U.S. business cycles: an empirical investigation. Journal of Money, Credit, and Banking, Vol. 29(1), 1 – 16.
  • Kalman, R. E. (1960). A new approach to linear filtering and prediction problems. Journal of Basic Engineering, Vol. 82(1), 35 – 45.
  • Levine, A. and L. H. Pedersen (2016). Which trend is your friend? Financial Analysts Journal, Vol. 72(3), 51 – 66.
  • Moskowitz, T., Y. H. Ooi, and L. H. Pedersen (2012). Time Series Momentum. Journal of Financial Economics, Vol. 104(2), 228 – 250.

**免责声明:**文章内容不可视为投资意见。市场有风险,入市需谨慎。

标签

仓位控制风险管理
评论
  • 图片看不了呢