QuantStats · Monte Carlo

QuantStats蒙特卡洛模拟:破产概率与目标概率风险分析

QuantStats 内置蒙特卡洛模拟:qs.stats.montecarlo(returns, sims, bust, goal) 按收益分布随机模拟路径,输出破产概率(bust_probability)与目标达成概率(goal_probability)。它不是对未来收益的确定性预测,而是基于历史收益分布的概率化风险画像。

蒙特卡洛模拟
破产概率
目标概率

QuantStats 蒙特卡洛风险分析示意;基于官方 README,非实测输出。

Parameters

蒙特卡洛参数对照表

依据官方 README Monte Carlo Simulations 段落;参数默认值以官方实现为准。

参数 / 属性含义如何取值注意点
returns收益序列(输入)qs.utils.download_returns('META') 或自备 pandas Series需日/周/月收益序列,非原始价格
sims模拟路径次数官方示例 1000;次数越大越稳定次数越大耗时越长,需权衡精度与时间
bust破产阈值(亏损比例)官方示例 -0.20;按可承受亏损设负数阈值越接近 0 越容易触发「破产」
goal目标阈值(盈利比例)官方示例 0.50;按目标收益设正数阈值越高越难达到,概率越低
mc.bust_probability破产概率(输出)直接读属性,返回 0~1 或百分比模拟路径中跌破 bust 阈值的比例
mc.goal_probability / mc.plot()目标概率 / 分布绘图读属性 + 调 mc.plot() 可视化plot() 生成模拟分布图,辅助直观判断
Steps

蒙特卡洛分步用法

1. 导入库:import quantstats as qs —— 引入 stats/plots/reports 三模块。

2. 取收益序列:stock = qs.utils.download_returns('META') —— 得到 Meta 的日收益序列,也可换自备 Series。

3. 运行模拟:mc = qs.stats.montecarlo(stock, sims=1000, bust=-0.20, goal=0.50) —— 生成 1000 条模拟路径,破产阈值 -20%、目标阈值 +50%。

4. 查看结果:mc.bust_probabilitymc.goal_probability 返回两个百分比;mc.plot() 绘制模拟分布。

Related

相关蒙特卡洛方法对照表

除主方法外,stats 与 plots 还提供按指标拆分的蒙特卡洛方法。

方法用途适用场景
montecarlo(主方法)模拟破产/目标概率整体风险画像,看「爆仓 vs 达标」概率
montecarlo_cagr模拟 CAGR(年化复合增长率)分布看长期收益的不确定区间
montecarlo_drawdown模拟最大回撤分布看未来可能遭遇多深的回撤
montecarlo_sharpe模拟夏普比率分布看风险调整收益的稳定性
montecarlo_distribution(plots)绘制模拟分布图直观展示模拟结果分布形态
Interpretation

结果解读:概率怎么读、sims 怎么选

bust_probability / goal_probability

前者是模拟路径中跌破 bust 阈值的比例,后者是达到 goal 阈值的比例。它们反映的是「在历史收益分布假设下」的风险暴露,不是对未来的确定性预言;分布一旦变化,结果可能明显偏移。

sims 次数的权衡

sims 越大,模拟结果越稳定(方差越小),但耗时线性上升。官方示例取 1000;对长收益序列或需要更精细尾部概率时,可适当提高,但要接受更长计算时间。

关键局限:蒙特卡洛基于「历史收益分布」随机重采样,隐含假设未来分布与历史相似。若未来出现分布漂移、结构性突变或尾部事件(黑天鹅),模拟概率可能低估真实风险,不构成收益保证或投资建议。
Compare

蒙特卡洛 vs 确定性指标:什么时候用哪个

两类指标回答不同的问题:确定性指标描述「历史发生了什么」,蒙特卡洛描述「在假设分布下未来可能发生什么」。

维度确定性指标(历史最大回撤等)蒙特卡洛模拟
回答的问题历史最大回撤是多少未来回撤超过某阈值的概率多大
输出形态单一数值(点估计)概率分布 / 百分比
依赖假设仅历史数据历史收益分布 + 随机模拟
适用场景复盘历史、对比策略前瞻风险画像、仓位压力测试
建议:两者配合使用——用历史指标做复盘基准,用蒙特卡洛补充「如果未来按历史分布重演」的概率视角;不把模拟概率当成保证。
FAQ

常见问题

蒙特卡洛模拟是什么?

按收益序列的历史分布随机生成大量路径,估算达到破产/目标阈值的概率,做概率化风险分析。具体算法与默认参数以官方 README/实现为准。

sims 设多少合适?

官方示例用 sims=1000;次数越多越稳定但越慢,需权衡精度与耗时,以官方文档为准。

破产/目标阈值怎么定?

按你的风险偏好设 bust(亏损比例,负数)与 goal(盈利比例,正数),官方示例用 -0.20 / 0.50;阈值设定会直接影响概率结果。

结果能预测未来吗?

不能。它基于历史收益分布模拟,隐含「未来分布与历史相似」的假设,不构成收益保证或投资建议。

蒙特卡洛和 EasyClaw 的量化分析有什么关系?

QuantStats 与 EasyClaw 无已证实集成。EasyClaw 的 quant-analyst(量化分析师)技能也涉及风险分析/回测,但实现与输出形式不同;两者是独立路线,选择前以各自官方说明为准。

看完能力,决定路线

自建 QuantStats 还是用 EasyClaw 免部署做量化研究,看对比页。