前面两节讲了因子的选择和“残差”的处理,现在我们再来看信号的生成。
4 信号生成
基于前面所述的这一简单模型,我们可以定义几个交易信号。我们考虑一个 60 个工作日的估计窗口,即 T1 = 60/252。这个估计窗口至少包含了公司的一个业绩盈利周期。我们希望它能在一定程度上反映周期内的价格波动。我们选择均值回复时间小于 1/2 周期(κ > 252/30 = 8.4)的股票。下图展示了这样一个信号估计的描述性统计。
4.1 纯均值回复
这里我们只关注过程 Xi(t),而忽略漂移 αi。我们知道均衡方差为:
相应地,我们定义无量纲变量
我们把这一变量称为s分数( s-score)。下图显示了 JPM 相对于金融 SPDR XLF 的残差的 s-score 变化情况。s-score 以单位标准差来衡量协整残差与均衡中值的距离,即特定股票与我们模型相关的理论均衡值的距离。
可以看到这个值上下变化,我们依赖这个信号来做交易。
我们基于均值回复的基本交易信号是:
上面这个规则分别对应于:
s分数小于一个很负的阀值时买入
大于一个很大的正阀值时做一个卖空,
小于某一个正的阀值时把买空的头寸关闭掉
大于某一个正的阀值时把买入的头寸卖掉。
这些阀值(临界值)根据数据确定。进入一笔交易,例如买入开仓,意味着买入一美元的相应股票,并卖出βi美元的其行业ETF,或者,在使用多个因子的情况下,βi1美元的ETF #1,βi2美元的ETF #2,......,βim美元的ETF #m。
同样,关闭多头头寸意味着卖出股票,买入 ETF。由于我们用无量纲变量来表示所有的量,我们希望截点在不同的股票上都是有效的。在 ETF 因子的情况下,我们根据 2000 年至 2004 年的模拟策略经验数据选择了临界值。在这样的分析基础上,我们发现较好的分界线选择是
当然,这只是个例子,你可以以此了解前面说的规则的尺度。具体来说,当 s 值的绝对值超过 1.25 时,我们就开始交易(看它是正还是负)。在0.75时结束空头交易,用0.75而不是0.5,相当于是稍提前结束空头交易,因为0.75结果略好于 0.50。对于关闭多头交易,我们选择 0.50。示意图如下。
可以看到,买入股票是在s值很低很负(-1.25)的那个位置,卖空是在很高很正的位置(1.25)的那个位置。只在 s值 si 远离均衡时才开始交易的理由是,只有当我们认为检测到协整残差出现异常偏移时才进行交易。
然后,我们需要考虑何时平仓。当 s 分数接近于零时平仓也是合理的,因为我们预计大多数股票在大多数时间都接近均衡状态。因此,我们的交易规则会检测出 “偏离 ”较大的股票,并假定这些偏离的股票会在均值回复时间 τi 的数量级内回复到均值。