尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

gs-quant:3 行代码算出指数加权波动率,告别手写公式

发布时间:2026/9/13 11:03:23

资讯中心
01
ARTICLE

gs-quant:3 行代码算出指数加权波动率,告别手写公式

gs-quant:3 行代码算出指数加权波动率,告别手写公式
gs-quant3 行代码算出指数加权波动率告别手写公式【免费下载链接】gs-quantPython toolkit for quantitative finance项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant第一次拿到一串汇率收盘价想给它标一条波动率曲线我光对着 EWMA指数加权移动平均公式和 pandas 的.ewm().std()就折腾了半天要自己算对数收益、自己选窗口、还得手动年化一个参数写错整条曲线就飘了。后来发现 gs-quant 把这件事封装成了timeseries.technicals里的一行函数输入价格序列、给一个衰减因子直接返回年化波动率——本文就带你用这个真实存在的模块把它跑通、调透。timeseries 模块到底解决什么问题gs_quant.timeseries.technicals是一个面向金融的时间序列指标库你喂价格序列它吐波动率、均线、布林带、MACD 这类成品指标。它和你手写 pandas 的最大区别是每个函数都内置了收益换算、年化和窗口归一并带plot_function装饰器、可被 Marquee 画图服务自动识别省掉一堆样板代码。核心能力一览均位于 gs_quant/timeseries/technicals.py函数一句话说明exponential_volatility指数加权波动率年化、百分数bollinger_bands布林带上/中/下轨macd默认 12/26/1 的 MACDmoving_average任意窗口均线最小可行示例几行算出波动率下面这段本地就能跑generate_series先生成一条 100 天的样例价格序列gs_quant/timeseries/statistics.py 里的辅助函数再算波动率。from gs_quant.timeseries import generate_series, exponential_volatility prices generate_series(100) # 造 100 天价格序列 vol exponential_volatility(prices, 0.9) # beta0.9更看重近期 print(vol.tail(3)) # 看最近 3 天年化波动率运行后你会看到最近几个交易日的年化波动率单位是百分数函数内部做了年化再 ×100。值得深入展开的三个点调节 beta 看曲线怎么变beta是衰减因子越大越听最近的价格。想直观感受把两个 beta 放一起对比即可——这段代码同时算 beta0.5 和 0.9 两条曲线from gs_quant.timeseries import generate_series, exponential_volatility import pandas as pd prices generate_series(100) df pd.DataFrame({ beta_0.5: exponential_volatility(prices, 0.5), beta_0.9: exponential_volatility(prices, 0.9), }) print(df.iloc[-5:]) # 对比两条曲线末段运行后你会看到 beta 越大曲线对近期跳动的反应越快、数值也越高。你可以这样验证把 beta 从 0.9 一路降到 0.5观察数值变平稳、幅度变缓。同一根价格线换个指标视角波动率之外同一组价格还能一行算出布林带和 MACD方便交叉验证行情状态。from gs_quant.timeseries import bollinger_bands, macd print(bollinger_bands(prices, 20)) # 20 日布林带上/中/下轨 print(macd(prices)) # 默认 12/26/1 的 MACD运行后你会得到两条轨道与 MACD 的取值可直接和波动率曲线对照。你可以这样验证在价格明显放大波动的区间布林带张口与exponential_volatility抬升应同步出现。波动率数字到底从哪来exponential_volatility内部就是三步先取对数收益再做指数加权标准差最后年化并 ×100。它的加权方差本质上是$$\hat{\sigma}t \sqrt{(1-\beta)\sum{i0}^{\infty}\beta^{i}, r_{t-i}^{2}}$$这里 $r_{t-i}$ 是对数收益率$\beta$ 就是衰减因子权重按 $\beta$ 的幂次向历史指数递减所以近期收益天然占大头。理解了这点你就知道调 beta等于调你有多在乎最近的市场。容易踩坑和调参的地方beta 越界现象是传beta1直接报错 → 原因是 beta 必须落在 [0,1) → 解法是在 0.75~0.95 之间试探。把百分数当小数现象是波动率比预期大 100 倍 → 原因是函数已 ×100 → 解法是需要小数时自己/100。输入量纲混用现象是布林带、MACD 数值异常 → 原因是部分函数对输入敏感 → 解法是确认喂的是收盘价必要时先归一化。延伸与下一步把波动率接进定价与风险可以看 gs_quant/risk/ 的场景与冲击测试以及 gs_quant/markets/scenario.py完整的 timeseries 函数清单与官方说明见 docs/timeseries.rst。想往下走先用上文那张 beta 对比表把一条真实汇率线的曲线跑出来再把它喂给一个简单情景看冲击下价格怎么动。【免费下载链接】gs-quantPython toolkit for quantitative finance项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。