skfolio/skfolio

Python library for portfolio optimization built on top of scikit-learn

What it solves

传统的均值-方差优化 (MVO) 通常面临对输入参数高度敏感、权重集中以及样本外表现不佳的问题。skfolio 提供了一个统一且以机器学习为导向的框架,用于构建、微调与验证投资组合模型,通过标准化 API 帮助用户缓解数据泄露与过拟合等风险。

How it works

基于 scikit-learn 之上的 skfolio 实现了广泛的投资组合优化与风险管理工具。它允许用户定义一个包含以下内容的 pipeline:

  • Estimators: 计算预期收益率、协方差与方差的工具,包括去噪与收缩等高级方法。
  • Optimization Models: 从简单配置 (Equal-Weighted) 到复杂的凸优化 (Mean-Risk, Risk Budgeting) 以及聚类方法 (Hierarchical Risk Parity) 的各种策略。
  • Prior Estimators: 通过 Black & Litterman、因子模型或使用 Vine Copulas 生成的合成数据来整合观点。
  • Validation Tools: 针对时间序列数据的专门化交叉验证技术,例如 Walk Forward 与 Combinatorial Purged Cross-Validation。
  • Constraints: 支持交易成本、管理费以及各种权重或分组约束。

Who it’s for

需要一个强大的、与 scikit-learn 相容的库,用于专业资产配置与风险管理量化研究员、投资组合经理与数据科学家。

Highlights

  • Scikit-learn Integration: 与 GridSearchCV, RandomizedSearchCV, 与 Pipeline 完全相容,可实现无缝的模型选择与超参数调优。
  • Extensive Model Library: 支援广泛的风险衡量指标 (CVaR, EVaR, Maximum Drawdown) 与优化目标。
  • Advanced Risk Management: 包含通过合成数据进行压力测试,以及使用熵池化 (entropy pooling) 来整合主观观点。
  • Robust Validation: 实现了专门的金融交叉验证,以防止前瞻性偏差 (look-ahead bias)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目