超额收益的三大来源:择时能力、选股能力、交易执行能力

做指数增强,说白了就是跟指数赛跑。你跑得比它快,多出来的那部分就是超额收益。但问题来了——这多出来的收益到底从哪来的?

我见过不少刚入行的朋友,一看到净值跑赢了沪深300就兴奋得不行。但冷静下来想想,你真的搞清楚超额收益的来源了吗?

我个人习惯把超额收益拆成三块:择时能力、选股能力、交易执行能力。这三者看似简单,但实际区分起来,坑不少。

核心观点:超额收益 = 择时贡献 + 选股贡献 + 交易执行贡献。三者互不重叠,但现实中往往纠缠在一起。

超额收益三大来源 超额收益 择时能力 仓位择时 / 行业择时 选股能力 因子选股 / 基本面选股 交易执行能力 算法交易 / 冲击成本控制 三者共同构成超额收益,但来源和度量方式完全不同

一、择时能力:你猜对了市场的节奏吗?

择时能力,说白了就是你对市场涨跌的判断。你觉得下周要涨,就加仓;觉得要跌,就减仓。如果猜对了,这部分收益就归功于择时。

但这里有个问题——择时是零和博弈。你想想看,市场里有人加仓就有人减仓,有人赚就有人亏。长期来看,能靠择时稳定赚钱的人,凤毛麟角。

我在项目中遇到过一位基金经理,他特别喜欢做仓位择时。有一年他成功躲过了两次大跌,超额收益做得非常漂亮。但第二年,他连续三次踏空,超额收益全吐回去了。嗯,这就是择时的两面性。

我的建议:如果你不是做宏观对冲的,别把太多精力放在择时上。指数增强的核心是选股,择时只是锦上添花。

量化上怎么度量择时能力?我习惯用TM模型(Treynor-Mazuy)或HM模型(Henriksson-Merton)。简单说,就是看你的组合收益和市场收益之间是否存在非线性关系。如果市场涨的时候你涨得更多,市场跌的时候你跌得更少,那说明你有择时能力。

# 简单的择时能力检验(TM模型)
import statsmodels.api as sm

# Rp: 组合超额收益, Rm: 市场超额收益
# 回归方程: Rp = alpha + beta * Rm + gamma * Rm^2 + epsilon
X = sm.add_constant(np.column_stack([Rm, Rm**2]))
model = sm.OLS(Rp, X).fit()

# 如果gamma显著为正,说明有择时能力
print(f"择时系数 gamma = {model.params[2]:.4f}, p-value = {model.pvalues[2]:.4f}")

二、选股能力:这才是你的真本事

选股能力,是指你在给定仓位水平下,挑选出比指数成分股表现更好的股票。说白了,就是你的股票池比指数强。

我个人认为,选股能力是指数增强最核心的竞争力。为什么?因为择时很难持续,交易执行只能优化边际,但选股能力可以形成长期壁垒。

举个例子。沪深300里有300只股票,你从中挑出100只,构建一个组合。如果这100只股票的平均收益比沪深300高1%,那这1%就是你的选股贡献。

但要注意——选股能力要和择时能力严格区分。怎么区分?我常用的方法是Brinson归因

归因维度 择时贡献 选股贡献
定义 行业/板块配置偏离带来的超额 行业内个股选择带来的超额
度量方式 (组合行业权重 - 基准行业权重) × 基准行业收益 组合行业权重 × (组合行业收益 - 基准行业收益)
典型特征 波动大,持续性差 波动相对小,可持续性强

我曾经帮一家私募做业绩归因,发现他们某年超额收益高达15%。但一拆开看,其中12%来自重仓了白酒板块(择时),只有3%来自选股。第二年白酒板块回调,超额收益直接变负。这就是典型的「伪选股能力」——你以为自己会选股,其实只是赌对了行业。

避坑指南:我曾经见过一个策略,回测时超额收益漂亮得不行。但一做Brinson归因,发现90%的超额来自小市值因子暴露。这不是选股能力,这是风格择时。市场风格一转,超额就没了。

三、交易执行能力:细节决定成败

交易执行能力,很多人容易忽略。但说实话,在量化领域,交易执行往往是拉开差距的关键

你想想看,你的选股模型再牛,如果下单时滑点太大、冲击成本太高,超额收益就被吃掉了。我见过一个团队,他们的选股模型年化超额能做到8%,但实际跑下来只有4%。为什么?因为交易执行太粗糙了。

交易执行能力主要体现在三个方面:

  • 冲击成本控制:大单买入时,如何避免把价格推高?
  • 延迟成本控制:信号出来到成交之间,价格变了多少?
  • 算法交易优化:用TWAP、VWAP还是IS算法?

我个人习惯用实现差价(Implementation Shortfall)来度量交易执行能力。简单说,就是「理想成交价」和「实际成交价」之间的差距。这个差距越小,说明你的交易执行能力越强。

# 实现差价计算示例
def implementation_shortfall(decision_price, execution_prices, shares, side='buy'):
    """
    decision_price: 决策时的价格
    execution_prices: 各笔成交价格列表
    shares: 各笔成交股数列表
    side: 'buy' 或 'sell'
    """
    total_shares = sum(shares)
    avg_exec_price = sum(p * s for p, s in zip(execution_prices, shares)) / total_shares
    
    if side == 'buy':
        shortfall = (avg_exec_price - decision_price) / decision_price
    else:
        shortfall = (decision_price - avg_exec_price) / decision_price
    
    return shortfall * 10000  # 返回BP(基点)

我的经验:对于高频策略,交易执行能力可能贡献30%以上的超额收益。但对于低频策略(比如月频调仓),交易执行的影响相对较小,但也不能忽视。

三者如何区分?一个实战案例

说了这么多理论,咱们来个实战案例。假设你管理一个沪深300增强基金,某月超额收益为2%。怎么拆?

  1. 第一步:做Brinson归因
    • 择时贡献:0.5%(因为你超配了当月表现好的银行板块)
    • 选股贡献:1.2%(因为你在银行板块内选的股票比板块平均多涨了)
    • 交叉项:0.1%(择时和选股的交互作用)
  2. 第二步:扣除交易成本
    • 交易执行贡献:-0.3%(因为调仓时产生了冲击成本和滑点)
  3. 第三步:汇总
    • 净超额收益 = 0.5% + 1.2% + 0.1% - 0.3% = 1.5%
    • 还有0.5%去哪了?嗯,可能是模型误差或未被归因到的部分

你看,这样一拆,你就知道自己的超额收益到底靠不靠谱。如果大部分来自选股,那恭喜你,你的策略有可持续性。如果大部分来自择时,那你得小心了——市场不会永远站在你这边。

总结一下:择时能力看的是「赌方向」,选股能力看的是「挑好货」,交易执行能力看的是「买卖技巧」。三者缺一不可,但权重不同。我个人建议,把80%的精力放在选股上,15%放在交易执行上,5%放在择时上。这样长期来看,超额收益最稳定。

好了,这一章的内容就到这里。记住,超额收益不是玄学,它是可以被拆解、被度量的。下次你再看到某个策略的超额收益,不妨问问自己:这到底是择时的功劳,还是选股的本事,还是交易执行的优化?


专注资料整理