Riskfolio-Lib 这个 Python 库,专门做投资组合优化,把复杂的数学模型封装好,几行代码就能跑起来。
做量化投资,最劝退人的其实不是策略本身。
而是你明明知道“资金怎么分”这件事很关键,但一往下走,就全是协方差矩阵、约束条件、风险预算、优化器。很多人不是不想做资产配置,是刚打开这扇门,就先被数学门槛劝退了。
我最近在 GitHub 上刷到一个挺实用的项目,叫 Riskfolio-Lib。它本质上是一个做投资组合优化的 Python 库,底层基于 CVXPY,把很多原本写起来很重的组合优化模型,封装成了比较直接的调用方式。仓库自己的介绍也很直白:就是想让学生、研究者和实务用户,能用更低成本把复杂模型跑起来。
这个库有意思的地方,不只是“能算权重”,而是它把量化配置里那套常见框架,基本都给你备齐了。
经典的均值-风险优化当然有,支持最小风险、最大收益、最大效用、最大风险调整收益这几类目标函数;风险侧也不是只看波动率,而是内置了 24 种凸风险度量,从标准差、MAD、CVaR,到 Ulcer Index、CDaR、最大回撤这类更偏下行和回撤视角的指标,都能直接切。
这点其实很重要。因为很多人在回测里看着收益挺好,一上实盘才发现,自己真正受不了的未必是“波动”,而是连续下跌、深度回撤,或者某段时间里组合非常难拿住。Riskfolio-Lib 至少给了你一个机会:别只用一种风险语言看市场。
再往前走一点,它也不只是停在 Markowitz 这套老经典上。仓库里明确支持 Black-Litterman、层次聚类组合优化里的 HRP/HERC、风险平价、最坏情形均值方差优化这些更进阶的配置方法。你会明显感觉到,它不是给人做课堂演示用的,而是真想把“组合优化工具箱”一次性铺开。
还有一个很现实的点是,约束条件也考虑得比较细。比如做空、杠杆、持仓数量上限、跟踪误差、换手约束、整数约束这些,它都给了接口。很多库的问题不是模型少,而是论文里很美,落到真实组合里就不太能用。Riskfolio-Lib 至少在这一层,多想了一步。
可视化这块也做得不错。文档里直接提供了有效前沿、权重饼图、风险贡献、回撤等图表函数,还能生成 Jupyter 和 Excel 报告。你不一定要自己再补一轮画图,验证思路会快很多。
说白了,这个项目最值钱的地方,不是它帮你“找到必胜策略”,而是它把原本很容易卡在公式和实现细节里的那一步,先帮你填平了。
你可以先别急着证明自己多懂优化理论,先把模型跑起来,先看看不同风险定义下,权重到底会怎么变;再去想,哪些设定适合你的市场、你的频率、你的资金约束。
对量化研究来说,这种工具很有价值。不是因为它替你思考了,而是因为它让验证成本终于没那么高了。
GitHub地址:dcajasn/Riskfolio-Lib