第4章:单资产收益与风险——收益率计算、年化处理与波动率
各位同学,欢迎来到第四讲。今天咱们聊点实在的——单资产的收益和风险怎么算。
说实话,我见过不少刚入行的朋友,一上来就搞复杂的多因子模型,结果连最基础的收益率都算错了。嗯,这其实挺要命的。我个人习惯是,先把单资产这关过扎实了,再去碰组合优化。你想想看,连一支股票的收益都算不明白,怎么去衡量几十支股票的组合风险?
4.1 简单收益率 vs 对数收益率
先问个问题:你今天买了100块的股票,明天涨到110块,你赚了多少?
大部分人会说10%。没错,这就是简单收益率。
简单收益率公式:
R_simple = (P_t - P_{t-1}) / P_{t-1}
说白了就是:今天的价格减去昨天的价格,再除以昨天的价格。
但我在项目中遇到过一个问题:当我们要计算多期收益率时,简单收益率就有点尴尬了。比如连续两天涨10%,总收益不是20%,而是21%——因为复利效应。这就引出了另一个概念:对数收益率。
对数收益率公式:
R_log = ln(P_t / P_{t-1})
为什么用对数?两个原因:
- 可加性:多期对数收益率可以直接相加。比如两天各涨10%,对数收益率加起来就是总的对数收益率。
- 正态性假设:金融数据里,对数收益率更接近正态分布。这对后续的统计建模很重要。
我的建议:做学术研究或风险建模时,优先用对数收益率。做日常汇报或绩效展示时,用简单收益率——因为老板更容易理解“我赚了10%”而不是“我的对数收益率是0.0953”。
4.2 年化处理——把不同时间尺度的收益拉到同一把尺子上
你有一个策略,一个月赚了2%。另一个策略,半年赚了10%。哪个更好?
没法直接比,对吧?因为时间尺度不一样。这时候就需要年化处理。
年化收益率的核心思想很简单:假设收益可以复利滚动,把短期收益换算成一年的收益。
年化收益率公式:
R_annual = (1 + R_period)^(252 / n) - 1
其中 n 是持有天数,252 是一年大概的交易天数。
举个例子:你持有某股票30天,收益5%。那年化收益就是:
(1 + 0.05)^(252/30) - 1 ≈ 49.8%
嗯,看着很诱人对吧?但我要泼盆冷水——年化收益率不代表你每年都能赚这么多。它只是一个标准化工具,方便你比较不同策略。
我曾经踩过的坑:有一回我拿一个高频策略的周收益做年化,算出来年化300%多。当时兴奋得不行,结果实盘跑了一个月就亏回去了。为什么?因为那周的收益是运气,不是能力。年化处理假设收益模式可以持续,但现实中很少有这么完美的事。
另外,年化处理也适用于年化波动率。公式类似:
σ_annual = σ_daily × √252
这里有个细节:波动率是用平方根法则,不是乘法。因为波动率是标准差,而标准差随时间的增长是平方根关系。
4.3 波动率计算——风险到底怎么量化?
说到风险,大部分人第一反应是“亏钱的可能性”。但在量化金融里,我们通常用波动率来度量风险。说白了,就是收益率的波动幅度。
波动率的计算分三步:
- 计算每日收益率(建议用对数收益率)
- 计算这些收益率的标准差
- 年化处理(乘以√252)
代码实现其实很简单:
import numpy as np
import pandas as pd
# 假设 prices 是价格序列
returns = np.log(prices / prices.shift(1))
daily_vol = returns.std()
annual_vol = daily_vol * np.sqrt(252)
print(f"日波动率: {daily_vol:.4f}")
print(f"年化波动率: {annual_vol:.4f}")
注意:这里用的是样本标准差(ddof=1),不是总体标准差。因为我们是拿样本估计总体,少一个自由度更准确。我见过有人直接用 np.std() 默认参数,结果算出来的波动率偏小——嗯,这种细节往往就是专业和业余的分水岭。
4.4 一张图看懂本章核心
下面这张SVG图,把本章的知识结构串起来了。你可以把它当作一个思维导图来看:
4.5 实战中的几个要点
最后,我分享几个实战中容易忽略的点:
- 数据频率问题:日数据用252,周数据用52,月数据用12。别搞混了。
- 分红和拆股:计算收益率时,要用复权价格。否则分红那天你会看到价格突然跳空,收益率算出来是负的——其实你并没有亏钱。
- 缺失值处理:如果某天没有交易(比如停牌),收益率应该用NaN,而不是0。用0会低估波动率。
我曾经犯过的错:有一回我处理美股数据,没注意节假日。结果周五到周一算出来一个3天的收益率,波动率一下子被拉高了。后来我改成只计算相邻交易日的收益率,才把问题解决。所以,永远检查你的数据是否有跳空。
好了,这一章的内容就到这里。收益率计算、年化处理、波动率计算——这三板斧看似简单,但用好了,你就能对任何单资产的风险收益特征有个清晰的判断。下一章我们会把这些工具用到多资产上,开始接触真正的组合优化。
公众号:蓝海资料掘金营,微信deep3321