组合权重

1. 前言

在前面的章节中,我们一直有意忽略了交易成本,一方面原因是:我们想要重点讨论建模和构建组合的思想;另一方面原因是:对于初始组合的构建,交易成本并不会产生重要的影响。

然而,由于现实中存在现金的流入流出、模型的参数变化等情况,几乎所有的组合在其存续期间都需要进行一定的调整,因而由此引发的周期性交易成本是不可避免的,我们将这类调仓频率与交易成本大小的问题称为再平衡决策(rebalancing decision)

2. 再平衡的触发

触发再平衡的原因一般有三种,分别是模型的周期性参数的改变现金流入流出。我们下面依次来讨论这三种原因。

2.1 模型的周期性

从计量经济学的观点来看,由于我们用于选股的因子模型隐含了再平衡的确切时间,所以收益率对应的时间间隔就是我们需要进行再平衡的时间间隔:假设我们使用月度收益率对模型进行估计,那么我们的最优组合仅在一个月内保持最优,组合应当按月度进行调整。这就是模型的周期性

日度收益率、季度收益率、年度收益率以此类推。

我们曾在因子模型中讲过:

我们一般在估计模型参数时采用月度数据,其次使用周度数据,通常不使用日度数据或年度数据。

这里我们对此做进一步的说明。

当前的研究表明,股票收益率模型对股票日收益率的预测能力不佳,这是因为日收益率会受到模型未考虑到的特定事件的严重影响,在更为极端的小时收益率与分钟收益率的例子中,模型的预测能力几乎为0。将模型应用于预测周收益率时,可以取得一定的成果,但总体而言还是会受到特定事件一定的影响。

另一方面, 和之前讲过的一样,将模型应用于更长的期限约存在风险,因为模型的参数可能会发生改变。例如,为了预测股票年收益率的 β\beta 值,我们需要至少跨越20年的样本。然而,一个股票的 β\beta 值是不可能在20年中保持恒定的。类似的问题也会出现在股票的季度收益率预测中。

综合以上考虑,我们认为月度收益率是一个折中可接受的解决方案。当然,是否要进行月度再平衡取决于市场环境——市场是保持平稳还是大幅波动。

我们的建议是:如果采用月度收益率,那么每个月至少更新一次模型的估计。更新模型的估计并不一定导致组合的再平衡,而是确保所获得的信息已经更新,再根据最新的信息决定是否进行再平衡。

2.2 参数变化

回顾我们的收益率公式模型:

ri=αi+βi1λi1++βikλik+ϵir_i = \alpha_i + \beta_{i1}\lambda_{i1} + \dots + \beta_{ik}\lambda_{ik} + \epsilon_i

对于经济因子,我们应当关注 α\alpha 与其因子暴露的变化;对于基本面因子,我们应当关注 α\alpha 与其因子溢价的变化。

公司行为与商业环境的变动均会影响到模型的参数,例如公司间的合并、监管政策变化乃至公司高管变动。一旦我们认为事件影响到了参数,那么我们就需要重新估计模型了。

由于要量化突发事件对参数的影响,是一个相对困难的问题,因此我们在这里暂时不加以讨论。

2.3 现金流的影响

当我们将更多的资金投入投资组合,或是需要从中赎回时,仓位会发生自然偏离,因此需要加以调整。

我们在4.2节 - 现金流的处理中对现金流的问题加以详细讨论。

3. 交易成本

在学习再平衡的具体内容之前,我们先来对交易成本做一个说明。

3.1 交易成本的类型

在投资中,我们一般将交易成本分为显性成本(Explicit Costs)和隐性成本(Implicit Costs)两类。

3.1.1 显性成本

显性成本主要指交易股票时支付给券商的佣金(Commission),佣金一般按交易额的一定比例或按固定金额计算。

例如,若佣金为万3(万分之3),这意味着当我们买入1000股价格为10元的股票时,需要支付给券商1000100.03%=3元。而在现实中,佣金一般还有最低下限,当根据比例计算得到的佣金小于最低下限时,按照最低下限支付佣金。

对A股来说,佣金一般万2至万5,部分较小的券商可以做到万1。最低佣金默认为5元,部分券商可以免除最低佣金(即所谓的“免5”)。

此外,值得一提的是,在A股卖出股票时,还需要向国家税务局缴纳印花税,金额为卖出价格的0.1%,但自2023年8月28日起实行减半征收(关于减半征收证券交易印花税的公告),因此当前的印花税税率为0.05%

对美股而言,多数券商已经基本免除了佣金,只有少数券商仍在收取佣金,这里以盈透证券(IBKR)为例展示收取方法:

佣金示例

3.1.2 隐形成本

除了明确的佣金成本之外,如果我们交易的金额较大,那么隐形的交易成本同样值得我们关注。隐形成本主要包括两类,分别是买卖价差(Bid-Ask Spread)与价格冲击(Price Impact)。

买卖价差是指投资者买入股票的价格与卖出股票价格之间的价差,它反映了做市商的利润——如果想要立刻成交,就必须以高价买入或低价卖出。

价格冲击则是指大额交易对所观察的股票价格的影响——大单交易会影响股票的价格,从而导致我们买入股票时所支付的价格高于交易前的报价,或是卖出时获得的价格低于交易前的报价。

实际上,计算隐形成本的具体金额是非常困难的,因为我们很难区分价格变动究竟因为隐形成本导致的,还是仅仅反映了均衡价格的变动。

3.2 交易成本模型

3.2.1 线性成本假设

由于交易成本具有复杂且难以预测的特性,因此我们通常设交易成本为交易额的一个固定比例,记该比例为 cc ,即若交易额为10元,那么交易成本为 10c10c

3.2.2 交易总额与总成本

在定义交易成本 cc 之后,交易总额的确定是比较容易的。

我们记 VtV_t 为当前组合的总市值, {w1b,...wNb}\{w_1^b,...w_N^b\} 为当前组合中个股的权重(before), {w1a,...wNa}\{w_1^a,...w_N^a\} 为调整后组合中个股的权重(after),则总交易额( TVTV )为个股交易额的简单加总:

TV=i=1nViwiaViwibTV = \sum_{i=1}^{n} |V_i w_i^a - V_i w_i^b|

因为我们作出了线性成本假设,所以总交易成本( TCTC )为总交易额的常数:

TC=cTV=cVii=1nwiawibTC = c \cdot TV = c \cdot V_i \cdot\sum_{i=1}^{n} | w_i^a - w_i^b|

再进一步,为了解决绝对值带来的不可导性,我们将总交易成本改写为线性函数:

TC=Vii=1nci(wiawib)TC = V_i \cdot \sum_{i=1}^{n} c_i (w_i^a - w_i^b)

其中:

ci={c,若 wia>wib (买入)c,若 wia<wib (卖出)c_i = \begin{cases} c, & \text{若 } w_i^a > w_i^b \text{ (买入)} \\ -c, & \text{若 } w_i^a < w_i^b \text{ (卖出)} \end{cases}

最后,如果需要的话,我们还可以将交易成本的讨论一般化:允许不同的股票有不同的交易成本。此时交易成本 cc 为:

ci={ci,若 wia>wib (买入)ci,若 wia<wib (卖出)c_i = \begin{cases} c_i, & \text{若 } w_i^a > w_i^b \text{ (买入)} \\ -c_i, & \text{若 } w_i^a < w_i^b \text{ (卖出)} \end{cases}

3.3 有交易成本的组合构建

我们在这一部分将演示如何构建存在交易成本的组合,正如开头提到的,虽然交易成本被作为一个新的变量被引入到决定最优决策的过程中,但其实并没有改变组合构建的原理,模型的逻辑与组合权重中介绍的并没有实质性区别。

3.3.1 有交易成本的最优组合

回顾方差-均值优化法(MVO):如果不考虑交易成本,组合的预期收益率是 μp=waμ\mu_p = w^a{}' \mu 。但在实际交易中,会产生交易费用占 (wawb)c(w^a - w^b)' c 。因此,有效收益率为:

μreal=μp(wawb)c\mu_{real} = \mu_p - (w^a - w^b)' c

代入 μp\mu_p 的值并按照矩阵分配律展开,得到:

μreal=waμwac+wbc=waμ(wawb)c\mu_{real} = w^a{}' \mu - w^a{}' c + w^b{}' c = w^a{}' \mu - (w^a{}' - w^b{}')c

若引入风险厌恶系数 AA ,则可以得到风险调整后的有效收益率:

μrealafterrisk=waμ(wawb)cAwaΣwa\mu_{real-after-risk} = w^a{}' \mu - (w^a{}' - w^b{}')c - A w^a{}' \Sigma w^a

我们需要做的是在满足权重之和等于 1( wal=1w^a{}' l = 1 )以及其他约束条件的情况下,求上式的最大值:

maxwawaμ(wawb)cAwaΣwa\max_{w^a} \quad w^a{}' \mu - (w^a{}' - w^b{}')c - A w^a{}' \Sigma w^a

我们可以看到,以上公式与之前 MVO 公式唯一的区别就是加入了交易成本 cc

maxwwμAwΣw\max_{w} \quad w'\mu - A w'\Sigma w

3.3.2 有交易成本的跟踪组合

与最优组合的改变类似,加入交易成本后,唯一的区别也是加入了交易成本项:

maxwawpμ预期收益(wpwprev)c交易成本项A(wpwb)Σ(wpwb)跟踪误差惩罚项\max_{w^a} \quad \underbrace{w_p' \mu}_{\text{预期收益}} - \underbrace{(w_p - w_{prev})' c}_{\text{交易成本项}} - \underbrace{A (w_p - w_b)' \Sigma (w_p - w_b)}_{\text{跟踪误差惩罚项}}

注意其中变量定义与之前的定义稍有不同:

  • wpw_p:目标权重。
  • wbw_b:基准权重。
  • wprevw_{prev}:当前权重。

4. 再平衡的数学处理

4.1 标准的再平衡

当我们决定进行一次完整的再平衡时,需要将数学模型算出的权重 ww 转化为具体的股票交易量。

我们定义以下变量:

  • pi,tp_{i,t}:股票 iitt 时刻的价格。
  • si,tbs_{i,t}^b:调仓前持有的股数。
  • si,tas_{i,t}^a:调仓后持有的股数。
  • wi,tbw_{i,t}^b:调仓前的权重。
  • wi,taw_{i,t}^a:目标权重。
  • VtV_{t}:组合在 tt 时刻的总市值(不含新流入流出的现金)。
  • Ct+1C_{t+1}:新流入的现金。

在任意时刻 tt ,当期组合权重与目标组合权重分别记为:

wi,tb=pi,tsi,tbVtw_{i,t}^b = \frac{p_{i,t} s_{i,t}^b}{V_t} wi,ta=pi,tsi,taVtw_{i,t}^a = \frac{p_{i,t} s_{i,t}^a}{V_t}

在任意时刻 t+1t+1 ,对于股票 ii ,我们需要买入或卖出的股数为:

xi,t+1=si,t+1asi,t+1b=wi,t+1api,t+1(Vt+1+Ct+1)si,tbx_{i,t+1} = s_{i,t+1}^a - s_{i,t+1}^b =\frac{w_{i,t+1}^a}{p_{i,t+1}} (V_{t+1} + C_{t+1}) - s_{i,t}^b

以上公式可以理解为:交易股数 = ( 包含新现金在内的总资产*新目标权重/当前股价 ) - 手上现有的股票数量。

4.2 现金流的处理

在常规的再平衡计划之外,当投资组合发生现金流入流出时,我们也需要对组合进行再平衡。

显然,如果组合较少发生现金的流入流出,那么我们在现金流入流出时按照常规再平衡的方式处理即可。但如果发生频率较高,我们就需要一些方法来降低交易成本了。

对于将资金投入组合的情况,我们这里介绍两种降低交易成本的方法,分别是临时性买入股指期货与ETF,以及仅买入再平衡

4.2.1 节省交易成本的方法

4.2.1.1 方法一:临时性买入股指期货与ETF

对于一些大型基金而言,每天都有频繁的申购(流入)和赎回(流出),逐笔去买卖成分股不仅成本高昂,而且由于成交时间差,会产生跟踪偏离。

所以,这些大型机构的通常做法是:先将流入的现金购买股指期货或ETF, 等到下一次定期调仓日,再将期货头寸平掉,换成具体的个股。

4.2.1.2 方法二:仅买入再平衡

仅买入再平衡(Inflow-only Rebalancing)的基本思想是:我们只通过买入股票来靠近最优组合

通过只买入那些当前权重低于目标权重的股票,尽管无法和标准再平衡一样,使组合立即回到最优权重,但却可以降低再平衡过程中产生的交易成本与税务成本,同时使得组合渐进式趋向最优权重。

要实现仅买入的再平衡,主要有“简单比例法”与“缺口填补法”两种具体方法。

(1)简单比例法

简单比例法指的是不在意当前权重,直接将新的现金流入流出按照目标权重 wi,t+1aw_{i,t+1}^a 的比例分配到每只股票上:

xi,t+1=Ct+1wi,t+1api,t+1x_{i,t+1} = \frac{C_{t+1} \cdot w_{i,t+1}^a}{p_{i,t+1}}

这样处理的优势在于操作非常简单,不需要复杂的优化算法,缺点是纠偏速度慢。

(2)缺口填补法

缺口填补法指的是仅买入那些当前权重低于目标权重的股票,从而实现更快的纠偏速度。

缺口填补法主要有以下三个步骤:

步骤一:计算注入资金后的当前权重,并与目标权重比较

计算股票 ii 注入资金后的当前权重:

wi,t+1b=si,t+1bpi,t+1Vt+1+Ct+1w_{i,t+1}^b = \frac{s_{i,t+1}^b \cdot p_{i,t+1}}{V_{t+1} + C_{t+1}}

wi,t+1bw_{i,t+1}^b 低于目标权重 wi,t+1aw_{i,t+1}^a ,则股票 ii 应当执行买入操作。

步骤二:计算需要买入的每只股票的“资金缺口”

股票 ii 应当买入的金额 ci,t+1c_{i,t+1} 为:

ci,t+1=wi,t+1a(Vt+1+Ct+1)si,t+1bpi,t+1c_{i,t+1} = w_{i,t+1}^a (V_{t+1} + C_{t+1}) - s_{i,t+1}^b p_{i,t+1}

步骤三:处理资金不足的问题

实务中,新流入的现金 Ct+1C_{t+1} 往往不足以填补所有的缺口(即 Ct+1<ci,t+1C_{t+1} < \sum c_{i,t+1})。此时我们需要按比例缩减买入量:

xi,t+1=ci,t+1pi,t+1Ct+1ci,t+1x_{i,t+1} = \frac{c_{i,t+1}}{p_{i,t+1}} \cdot \frac{C_{t+1}}{\sum c_{i,t+1}}