)
量化金融笔记 —— 理解波动率目录波动率理论发展脉络为什么两只收益相同的股票体验完全不同什么是波动用收益率观察波动波动率是什么波动率度量与区间预测波动率的基础定义详解及公式推导高级主题方差修正与偏差校正三股票日/年化波动率对比10只Ticker批量波动率排名波动率为什么会让人亏钱作业解答本期学习总结与个人感悟完整代码附录一、波动率理论发展脉络时间人物贡献1900年路易·巴舍利耶《投机理论》首次用布朗运动描述股价1952年马科维茨现代投资组合理论用方差度量风险1973年布莱克-斯科尔斯BS期权定价模型引入隐含波动率1982年恩格尔ARCH模型波动率聚类现象1986年泰勒实现波动率Realized Volatility1993年摩根大通VaR风险价值模型RiskMetrics1994年丹斯肯-兰德随机波动率模型SV2003年安德森-玻勒斯莱夫实现波动率理论完善二、为什么两只收益相同的股票体验完全不同核心洞察收益率相同 ≠ 投资体验相同股票A股票B第1年10%第1年50%第2年10%第2年-30%两年总收益21%两年总收益5%年化收益10%年化收益2.5%体验安稳睡觉体验心脏病发作数学解释算术平均A(1010)/210%B(50-30)/210%几何平均实际收益Asqrt(1.11.1)-110%Bsqrt(1.50.7)-12.5%波动率侵蚀收益高波动导致复利衰减同样的算术平均波动越大实际几何收益越低。三、什么是波动波动 价格变动的幅度和频率类型定义例子上行波动价格上涨的剧烈程度利好消息后的暴涨下行波动价格下跌的剧烈程度黑天鹅事件后的暴跌双向波动价格上下震荡的幅度震荡市中的反复拉锯关键区分波动 ≠ 风险波动是中性概念风险是主观感受波动 ≠ 亏损高波动可能带来高收益波动 不确定性未来价格的不确定程度四、用收益率观察波动4.1 收益率的计算简单收益率R_t (P_t - P_{t-1}) / P_{t-1} P_t / P_{t-1} - 1对数收益率r_t ln(P_t / P_{t-1}) ln(P_t) - ln(P_{t-1})为什么用对数收益率时间可加性r_{t1,t2} r_{t1} r_{t2}对称性10%和-10%的绝对值相等近似等于简单收益率小幅度时4.2 收益率序列可视化通过观察收益率的分布可以直观感受波动波动大的股票收益率分布胖尾极端值多波动小的股票收益率分布瘦尾集中在0附近五、波动率是什么5.1 波动率的定义波动率 收益率的标准差sigma sqrt( (1/(N-1)) * sum((R_i - R_mean)^2) )其中R_i 第i期的收益率R_mean 平均收益率N 样本数量5.2 波动率的本质波动率不是预测未来价格而是量化未来价格的不确定性。波动率含义10%价格相对平稳日波动约±0.6%30%价格波动剧烈日波动约±1.9%60%价格极不稳定日波动约±3.8%100%价格可能翻倍或腰斩六、波动率度量与区间预测6.1 年化波动率日波动率 → 年化波动率sigma_annual sigma_daily * sqrt(252)252为一年交易日数量为什么是sqrt(252)而不是252波动率具有时间平方根法则方差波动率的平方具有时间可加性波动率本身不具有时间可加性6.2 期权交易中的区间预测在正态假设下未来价格落在某个区间的概率区间概率±1σ68.3%±2σ95.4%±3σ99.7%应用当前股价100美元年化波动率30%则1年后68.3%概率70美元 ~ 130美元95.4%概率40美元 ~ 160美元99.7%概率10美元 ~ 190美元七、波动率的基础定义详解及公式推导7.1 总体方差 vs 样本方差总体方差已知全部数据sigma^2 (1/N) * sum((R_i - mu)^2)样本方差仅知部分数据用均值估计s^2 (1/(N-1)) * sum((R_i - R_mean)^2)为什么样本方差分母是N-1因为用样本均值R_mean代替了总体均值mu样本均值已经拟合了数据导致偏差自由度修正N个数据估计了1个均值剩余N-1个自由变化7.2 价格序列调整除息调整P_adj P_close - D其中D为每股分红金额。分红后价格自然下跌需调整避免虚假波动。拆股调整P_adj P_close * (1/S)其中S为拆股比例如1拆2S2。拆股后价格减半需回溯调整历史价格。八、高级主题方差修正与偏差校正8.1 由样本推断总体方差自由度修正当用样本方差s^2估计总体方差sigma^2时E[s^2] sigma^2 * (N-1)/N无偏估计s^2_unbiased (N/(N-1)) * s^2 (1/(N-1)) * sum((R_i - R_mean)^2)8.2 詹森不等式与波动率偏差校正詹森不等式对于凸函数f有E[f(X)] f(E[X])波动率是标准差方差的平方根平方根是凹函数E[sqrt(s^2)] sqrt(E[s^2]) sigma结论样本标准差s是总体标准差sigma的有偏低估估计量。校正方法小样本用c_4系数校正 s_corrected s / c_4大样本N30偏差可忽略8.3 正态假设下的样本标准差分布若收益率服从正态分布则((N-1)*s^2) / sigma^2 ~ chi^2_{N-1}即样本方差服从自由度为N-1的卡方分布。九、三股票日/年化波动率对比9.1 数据来源与计算基于2024年7月至2026年7月的2年历史数据股票市场行业日波动率年化波动率美光 (MU)美股存储芯片3.61%57.3%SK海力士 (000660.KS)韩股存储芯片3.89%61.7%兆易创新 (603986)A股存储芯片5.68%90.2%9.2 波动率对比柱状图关键发现三只同为存储芯片股波动率差异巨大兆易创新波动率最高90.2%A股特性小市值SK海力士次之61.7%韩股波动较大美光相对最低57.3%美股大盘蓝筹特性十、10只Ticker批量波动率排名10.1 计算结果排名Ticker公司市场年化波动率1AMD超微美股80.1%2TSLA特斯拉美股76.8%3NVDA英伟达美股66.7%4BABA阿里巴巴港股62.0%5METAMeta美股51.7%6TCEHY腾讯港股49.4%7AMZN亚马逊美股44.0%8GOOGL谷歌美股40.8%9AAPL苹果美股34.9%10MSFT微软美股30.2%10.2 波动率排名图关键发现AMD波动率最高80.1%半导体行业高弹性微软波动率最低30.2%大型蓝筹稳定性芯片股AMD/NVDA波动率显著高于软件股MSFT/AAPL十一、波动率为什么会让人亏钱11.1 波动率侵蚀收益的数学原理算术平均 vs 几何平均几何平均 ≈ 算术平均 - (sigma^2)/2波动率税Volatility Tax高波动直接降低复利收益。算术平均收益波动率几何平均收益“波动税”10%10%9.5%-0.5%10%30%5.5%-4.5%10%50%-2.5%-12.5%10%80%-22%-32%11.2 行为金融学视角心理效应表现损失厌恶下跌1%的痛苦 上涨1%的快乐追涨杀跌高波动触发情绪化交易锚定效应以买入价为锚忽视波动本质过度自信误将波动视为机会频繁交易11.3 杠杆与波动杠杆放大波动的影响2倍杠杆波动率翻倍波动税翻4倍高波动高杠杆 爆仓的温床十二、作业解答作业1微软(MSFT)年化波动率计算数据MSFT 2024年7月-2026年7月指标数值日波动率1.90%年化波动率30.2%加入四票对比排名股票年化波动率市场1兆易创新90.2%A股2SK海力士61.7%韩股3美光(MU)57.3%美股4微软(MSFT)30.2%美股结论微软波动率最低仅为兆易创新的1/3体现了大型科技股的稳定性。作业2Histogram 正态对比收益率分布图上图四只股票收益率分布直方图 正态分布曲线叠加关键发现所有股票收益率分布均呈现尖峰厚尾Leptokurtic极端收益频率高于正态分布预测兆易创新尾部最厚极端波动最多微软最接近正态但仍存在厚尾作业3近1年波动率最高的股票排名股票近1年波动率1AMD80.1%2TSLA76.8%3NVDA66.7%4BABA62.0%5META51.7%近1年波动率最高AMD80.1%作业4自选5-10个ticker批量计算十三、总结13.1 核心内容回顾主题关键收获波动率定义收益率的标准差量化不确定性年化处理sigma_annual sigma_daily * sqrt(252)方差修正样本方差用N-1标准差有偏需校正詹森不等式波动率是凹函数样本估计有偏低估波动率税高波动直接侵蚀复利收益三票对比同板块不同市场波动率差异巨大MSFT波动率30.2%远低于芯片股体现蓝筹稳定性13.2 个人感悟波动率是量化投资的元概念。理解波动率才能理解风险、定价、对冲的一切。同样的收益不同的体验。两只股票算术收益相同几何收益可能天差地别。波动率就是隐形的收益税。A股波动率显著高于美股。兆易创新90% vs 美光57%这不仅是个股差异更是市场结构和投资者结构的差异。正态假设是危险的。所有股票都呈现尖峰厚尾黑天鹅比正态分布预测的更频繁。这就是为什么期权市场存在波动率微笑。波动率本身可以成为交易标的。VIX指数、波动率互换、方差互换——理解波动率就打开了衍生品世界的大门。十四、代码附录14.1 波动率计算函数importnumpyasnpimportpandasaspddefcalculate_volatility(prices,perioddaily):# 计算对数收益率log_returnsnp.log(prices/prices.shift(1)).dropna()# 计算日波动率 (样本标准差无偏估计)daily_vollog_returns.std(ddof1)# 年化ifperioddaily:returndaily_volelifperiodannual:returndaily_vol*np.sqrt(252)else:raiseValueError(period must be daily or annual)14.2 批量计算多股票波动率defbatch_volatility(tickers_data):results[]forticker,pricesintickers_data.items():log_returnsnp.log(prices/prices.shift(1)).dropna()results.append({ticker:ticker,daily_vol:log_returns.std(ddof1),annual_vol:log_returns.std(ddof1)*np.sqrt(252),mean_return:log_returns.mean(),skewness:log_returns.skew(),kurtosis:log_returns.kurtosis(),max_daily_gain:log_returns.max(),max_daily_loss:log_returns.min()})returnpd.DataFrame(results)14.3 收益率分布可视化importmatplotlib.pyplotaspltfromscipyimportstatsdefplot_return_distribution(returns,ticker,axNone):ifaxisNone:fig,axplt.subplots(figsize(10,6))# 直方图ax.hist(returns,bins50,densityTrue,alpha0.6,colorsteelblue,label实际分布)# 正态分布拟合mu,sigmareturns.mean(),returns.std()xnp.linspace(returns.min(),returns.max(),100)normal_pdfstats.norm.pdf(x,mu,sigma)ax.plot(x,normal_pdf,r-,linewidth2,label正态分布)ax.set_title(f{ticker}收益率分布 vs 正态分布)ax.set_xlabel(对数收益率)ax.set_ylabel(概率密度)ax.legend()returnax