股市beta到底在说什么
你买过股票,肯定有过这种体验:大盘涨一个点,自己手里的票涨三个点;大盘跌一个点,它跌四个点。这种“比大盘更猛”的劲儿,量化上就叫做高beta。反过来,有些票大盘涨一个点它涨半个点,大盘跌一个点它跌零点几个点,这就是低beta。
beta值(贝塔系数)就是一个数字,衡量某只股票或者某个投资组合,相对于整个市场的波动幅度。市场本身beta等于1。股票beta等于1.5,意思是大盘动1%,它平均动1.5%。股票beta等于0.5,大盘动1%,它平均只动0.5%。beta等于0,意味着跟大盘没关系,比如现金或者某些对冲后的中性策略。beta是负的,那就跟大盘反着走,大盘涨它跌,这种品种很少,但黄金、某些债券在特定阶段可能出现负beta。

beta怎么算出来的,普通人不用怕公式
专业软件里beta是用历史收益率做线性回归得到的。把某只股票每天的涨跌幅,跟同期大盘指数的涨跌幅放在一起,画一堆散点,找一条最贴合这些点的直线,这条直线的斜率就是beta。
不用自己算,交易软件里按F10或者看行情页面的指标,基本都带beta值。看的时候注意两个坑。第一,beta用的是历史数据,过去猛不代表未来猛。第二,计算周期不同结果差很多,用最近60个交易日算出来的beta,和用过去250个交易日算出来的,可能一个1.8一个1.2。日内交易者看短周期beta,中长线持仓看长周期beta。
beta对选股的实际作用
选股的时候beta是一个过滤器。
牛市初期或者反弹行情里,想要弹性大,就挑高beta的票。券商、科技、小盘股通常beta高,大盘稍微一涨,它们蹿得快。熊市或者震荡市里,想少亏钱,就找低beta的票。公用事业、高股息、必需消费,这些板块beta低,大盘跌的时候它们跌得少。
beta还能帮你判断一只票的上涨到底是自身强还是大盘带的。一只票涨了5%,看着挺猛。查一下beta是2,同期大盘涨了3%。那它跑赢大盘的只有5%减去2乘以3%,等于负1%。实际上它跑输大盘了,只是被大盘抬着走。这叫剥离beta看alpha,alpha才是基金经理真正的选股能力。
beta在期货交易里的用法
期货交易带杠杆,beta的意义比股票更直接。
做股指期货的人,天天跟beta打交道。沪深300股指期货的beta就是1,中证500股指期货相对沪深300的beta通常大于1,因为中证500波动更大。你拿股票组合去对冲,不能一手股指期货对应一手股票市值,得用beta调整。
假设你持有100万市值的股票组合,组合的beta是1.3。你想用沪深300股指期货完全对冲掉市场风险。需要对冲的市值不是100万,而是100万乘以1.3等于130万。一手沪深300股指期货合约价值大约是点位乘以300。如果指数在3800点,一手合约价值就是3800乘以300等于114万。需要的手数就是130万除以114万,约等于1.14手,实际下1手或者2手看你想不想留敞口。
如果不用beta调整,只按100万市值去空1手,组合跌的时候期货赚的钱不够补股票的亏,因为股票跌得比大盘狠。
商品期货里的beta思维
商品期货本身没有直接跟股市大盘的beta,但可以把beta理解成“相对某个基准的波动放大倍数”。
原油和化工品有beta关系,螺纹钢和铁矿有beta关系,豆油和棕榈油有beta关系。做套利或者对冲的时候,不能按1比1的货值去配,得按波动率比例去配。这个比例就是beta的变体。
你买1手螺纹钢多单,想用铁矿石空单对冲。螺纹钢波动小,铁矿石波动大,直接1比1对冲会过度。算一下螺纹钢相对铁矿石的beta是0.7,那空铁矿石的手数应该是1乘以0.7等于0.7手,取整就是1手空单对应1手多单,但仓位管理上要清楚实际对冲比例不够,留了0.3的敞口。
用beta管理账户风险的实操
普通交易者不用天天算回归,但可以按beta给自己的账户定个规矩。
账户里全是高beta票,总仓位就要降。因为大盘跌5%,账户可能跌8%到10%。账户里全是低beta票,总仓位可以适当升,但收益预期也要降。
每个月看一次持仓组合的加权beta。加权beta等于每只票的市值占比乘以它的beta,加总。组合加权beta超过1.5,说明你进攻性太强,一旦市场转向回撤会很大。低于0.8,说明太保守,牛市来了跑不赢指数。
期货账户里,beta用来算保证金占用和强平风险。高beta品种的保证金比例通常更高,就是因为波动大。你开仓的时候,软件显示的保证金是按交易所标准算的,但你自己心里要按beta放大后的波动去算最坏情况能亏多少。
一段小代码帮你算组合beta
不用手动一个一个乘,Python几行就能算。
import numpy as np
# 假设有4只股票,市值权重和市场beta
weights = np.array([0.3, 0.25, 0.25, 0.2])
betas = np.array([1.6, 0.9, 1.2, 0.5])
portfolio_beta = np.dot(weights, betas)
print(f"组合加权beta是 {portfolio_beta:.2f}")
# 如果组合beta是1.24,大盘跌3%,组合预估跌多少
market_drop = -0.03
portfolio_drop = portfolio_beta * market_drop
print(f"大盘跌3%,组合预估跌 {portfolio_drop*100:.2f}%")
这段代码把权重和beta做点积,直接出组合beta。再用它乘大盘涨跌幅,就是粗略的预期波动。期货对冲的手数也可以用类似逻辑算出来。
beta不是万能钥匙,它只描述历史波动关系,不预测未来。遇到公司突发利好或者行业政策剧变,beta会失效。把它当作一个风险刻度尺,而不是买卖信号。看懂了beta,你至少知道自己的账户在大盘刮风下雨的时候,是打伞还是穿雨衣。
