第四章:市场中性策略

市场中性策略,说白了就是「不管大盘涨跌,我都要赚钱」。听起来有点玄乎?其实逻辑很简单——我们把市场涨跌这个风险完全对冲掉,只赚取选股带来的超额收益。

我刚开始做量化那会儿,总觉得这玩意儿太保守。后来经历了几次大熊市,看着身边做纯多头策略的朋友亏得底裤都不剩,我才真正体会到:活得久,比赚得快重要得多

4.1 市场中性策略原理

核心思想就一句话:多空对冲,剥离市场风险

具体做法是:

  • 买入一篮子你看好的股票(多头)
  • 卖空一篮子你看衰的股票(空头)
  • 让多空两边的市场风险(Beta)相互抵消

这样,无论大盘是涨是跌,你的组合净值只取决于你的选股能力。大盘涨了,多头赚、空头亏,但空头亏得少(因为你选的是差股票);大盘跌了,多头亏、空头赚,但多头亏得少(因为你选的是好股票)。

关键公式:

组合收益 = 多头收益 - 空头收益

组合Beta = 多头Beta - 空头Beta ≈ 0

嗯,这里要注意:Beta完全等于0几乎不可能。我在实盘中一般把目标设在±0.1以内,超过这个范围就要触发再平衡了。

4.2 Beta对冲与Alpha剥离

咱们把收益拆开看:

股票收益 = Alpha + Beta × 市场收益 + 残差

Alpha是你选股能力的体现,Beta是你承担市场风险的回报。市场中性策略要做的,就是把Beta那部分剥离掉,只留下Alpha。

具体怎么剥离?我习惯用回归法

# 计算每只股票的Beta
import numpy as np
import pandas as pd

def calc_beta(stock_returns, market_returns):
    cov = np.cov(stock_returns, market_returns)
    beta = cov[0, 1] / cov[1, 1]
    return beta

# 对冲比例计算
hedge_ratio = portfolio_beta / market_beta

举个例子:假设你的多头组合Beta是1.2,空头组合Beta是0.8。那你的净Beta就是0.4。要完全对冲,你需要调整空头仓位,让空头Beta也变成1.2。

我的经验:别用太短的时间窗口算Beta。我一般用过去60个交易日,太短了噪声大,太长了反应迟钝。

4.3 多空组合构建

多空组合的构建,我把它分成三步:

  1. 选多头:用多因子模型打分,选排名前10%-20%的股票
  2. 选空头:同样模型打分,选排名后10%-20%的股票
  3. 配权重:让多空两边的市值、Beta、行业暴露尽量匹配

这里有个坑——空头端不是随便选差股票就行。我曾经吃过一次大亏:空头选了一堆小市值垃圾股,结果遇到小盘股集体暴涨,空头端亏得比多头赚的还多。

避坑指南:空头端也要做基本面筛选。别选那些可能被做空机构狙击的股票,也别选流动性太差的。我一般要求空头股票日均成交额在5000万以上。

多空权重分配,我常用的是市值中性化

# 市值中性化示例
long_weight = long_market_cap / total_long_market_cap
short_weight = short_market_cap / total_short_market_cap

# 确保多空总市值相等
total_long = sum(long_weight)
total_short = sum(short_weight)
short_weight = short_weight * (total_long / total_short)

4.4 因子暴露控制

这是市场中性策略里最容易翻车的地方。你以为自己对冲了市场风险,结果在某个因子上暴露了一大堆。

举个例子:你的多头全是科技股,空头全是银行股。大盘涨的时候,科技股涨得比银行股多,你赚了。但万一科技板块暴雷呢?

我一般监控以下几个因子暴露:

因子 控制目标 监控频率
市场Beta ±0.1 每日
行业 各行业暴露±0.5% 每周
市值 ±0.2个标准差 每周
动量 ±0.3个标准差 每两周
波动率 ±0.2个标准差 每月

因子暴露的计算方法:

# 计算组合的因子暴露
def calc_factor_exposure(portfolio, factor_data):
    # portfolio: 持仓权重
    # factor_data: 每只股票在各因子上的得分
    exposure = portfolio.T @ factor_data
    return exposure

# 检查是否超限
def check_exposure_limits(exposure, limits):
    for factor, value in exposure.items():
        if abs(value) > limits[factor]:
            print(f"警告:{factor}暴露{value:.2f},超出限制{limits[factor]}")
            return False
    return True

再平衡触发条件:

  • Beta暴露超出±0.1 → 立即再平衡
  • 行业暴露超出±0.5% → 3天内调整
  • 其他因子超出限制 → 1周内调整
  • 定期再平衡:每月一次

说实话,因子暴露控制是市场中性策略里最磨人的部分。我见过太多策略,回测时漂亮得很,一上实盘就崩——原因就是回测时没控制好因子暴露,实盘遇到因子反转直接完蛋。

我的建议是:宁可少赚,也别在因子上赌方向。市场中性策略的核心是赚Alpha的钱,不是赚因子择时的钱。把因子暴露控制得死死的,虽然可能牺牲一点收益,但换来的是一条平稳的净值曲线。

一个小技巧:用Barra模型做因子暴露分析。虽然贵,但值得。我自己用Python写了个简化版,日常监控够用了。

市场中性策略核心逻辑 多因子模型打分 多头组合(Top 20%) 空头组合(Bottom 20%) Beta对冲(目标Beta=0) 因子暴露控制 定期再平衡 异常触发再平衡 Alpha收益(市场中性)

这张图把市场中性策略的完整流程串起来了。从多因子打分开始,到多空组合构建,再到Beta对冲和因子暴露控制,最后通过再平衡机制持续输出Alpha收益。每一步都环环相扣,缺一不可。

最后说一句:市场中性策略不是万能药。它赚的是稳定的、低风险的收益,但别指望它一年翻倍。我见过太多人,刚开始做中性策略赚了点钱,就飘了,开始加杠杆、放松因子控制,结果一次黑天鹅就回到解放前。

稳扎稳打,控制好风险,市场中性策略能成为你组合里最坚实的压舱石。


公众号:蓝海资料掘金营,微信deep3321