Repolode
skfolio

skfolio/skfolio

基于 scikit-learn 接口的 Python 投资组合优化、因子模型构建与风险管理库。

Star
2,596
Fork
303
未关闭 Issue
34
最近提交
昨天

本页只介绍开源项目,不构成投资建议。交易和投资可能造成亏损,使用前请自行评估风险,并遵守当地法律法规。

这是什么?

skfolio 是一个用于构建和评估投资组合的 Python 库。它提供从等权、逆波动率等朴素配置方法,到凸优化均值-风险模型、风险平价、层次聚类和堆叠集成等多种资产配置方法,并包含期望收益与协方差估计、Black-Litterman、熵池化以及基于特征或时间序列的因子模型。

由于遵循 scikit-learn 的 API,投资组合模型可以直接与 Pipeline、GridSearchCV 及交叉验证工具配合使用。库中包含滚动前推(walk-forward)和组合清洗交叉验证,便于在限制数据泄露的前提下调参。风险度量支持方差、CVaR、回撤类指标等,优化时还可加入换手率、交易成本、跟踪误差和基数等约束。

项目采用 BSD-3-Clause 许可证,需要 Python 3.10 及以上版本,并提供示例、用户指南和 API 参考文档。

核心功能

  • 01均值-风险、风险平价、层次聚类等多种组合优化模型
  • 02支持基于特征和时间序列的因子模型构建
  • 03提供协方差、期望收益和分布估计器,并包含 Black-Litterman 与熵池化
  • 04支持滚动前推与组合清洗交叉验证,兼容 sklearn 调参工具
  • 05基于 Copula 合成数据进行压力测试
  • 06支持交易成本、换手率、跟踪误差和基数等约束

适用场景

  • 在历史收益数据上比较和调优资产配置策略
  • 构建带行业中性风格因子的多因子股票模型
  • 对组合进行单一资产下跌等情景压力测试
  • 使用样本外交叉验证回测资产配置模型

快速上手

  1. 1

    从 PyPI 安装 skfolio

    pip install -U skfolio
  2. 2

    导入 MeanRisk,加载 S&P 500 示例数据集,然后拟合最小方差模型

使用前须知

  • 需要 Python 3.10 或更高版本。
  • 部分混合整数求解器需要在基础安装之外进行额外配置,详见安装指南。

标签

#portfolio-optimization#quantitative-finance#factor-models#risk-management#scikit-learn#backtesting#asset-allocation#factor-investing#investing#investment-analysis

常见问题

skfolio 是什么?
基于 scikit-learn 接口的 Python 投资组合优化、因子模型构建与风险管理库。 skfolio 是一个用于构建和评估投资组合的 Python 库。它提供从等权、逆波动率等朴素配置方法,到凸优化均值-风险模型、风险平价、层次聚类和堆叠集成等多种资产配置方法,并包含期望收益与协方差估计、Black-Litterman、熵池化以及基于特征或时间序列的因子模型。
skfolio 可以免费使用吗?用的什么许可证?
skfolio 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
skfolio 还在维护吗?
活跃维护中。skfolio 最近一次提交是在 2026年11月6日。
skfolio 适合用来做什么?
在历史收益数据上比较和调优资产配置策略 构建带行业中性风格因子的多因子股票模型 对组合进行单一资产下跌等情景压力测试 使用样本外交叉验证回测资产配置模型
skfolio 怎么安装和运行?
从 PyPI 安装 skfolio: pip install -U skfolio 导入 MeanRisk,加载 S&P 500 示例数据集,然后拟合最小方差模型
在哪里获取 skfolio?
源代码和安装说明在 GitHub 上:https://github.com/skfolio/skfolio

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目