路线图和更新日志

路线图

PyPortfolioOpt 现在是一个成熟的软件包,它很稳定,我不打算添加大的新功能(但是我将努力修复错误)。

1.5.0

  • 后台的主要重新设计,感谢 Philipp Schiele 。 - 我们使用了 cp.Parameter ,现在可以用不同的常数(如风险目标)有效地重新运行优化问题。 - 这导致了绘图性能的显著提高,因为我们不再需要重复地重新确定 EfficientFrontier

  • 一些错误的修正(感谢 Eric ArmbrusterAyoub Ennassiri )

1.5.1

在 1.5.0 版本的发布中,把版本划分弄错了。Sorry!

1.5.2

小的错误修复

1.5.3

  • 重新包装:cvxpy 不再是必要依赖,因为我们默认使用 ECOS_BB 进行离散分配。

  • 将最小的 python 版本提升到 3.8 。我希望能保持尽可能多的版本兼容(我认为大部分的功能应该能在 3.6, 3.7 下工作,但依赖关系变得太棘手,难以管理)。

  • 改为 numpy 伪逆,以允许现金资产。

  • 有效前沿绘图支持 Ticker 标签

1.5.4

  • 修正了 cvxpy 废除了deepcopy。感谢Philipp的修复!

  • 其他一些微小的检查和错误修复。为大家的报告喝彩!

  • Fixed cvxpy deprecating deepcopy. Thanks to Philipp for the fix!

  • Several other tiny checks and bug fixes. Cheers to everyone for the PRs!

1.5.5

  • Tuan Tran 现在是 PyPortfolioOpt 的主要维护者。

  • 大范围的错误修复和代码改进。

1.4.0

  • 终于实现了 CVaR 优化! 这一直是人们要求最多的功能之一。非常感谢 Nicolas Knudde 的初稿。

  • 重新架构了绘图功能,因此用户可以传递一个坐标轴,允许复杂的绘图(见 cookbook)。

  • 计算最大收益组合的辅助方法(感谢 Philipp Schiele) 的建议)。

  • 一些错误修复和测试改进(感谢`Carl Peasnell <https://github.com/SeaPea1>`_ )。

1.4.1

  • 100%的测试覆盖率

  • 重新组织了文档;增加了 FAQ 页面

  • 重新组织了模块结构,使其更具可扩展性

  • 支持 Python 3.9、dockerfile 版本化、其他包装改进(如 cvxopt 可选)。

1.4.2

  • 完成了 CDaR 优化 - 完全归功于 Nicolas Knudde

  • 一些错误的修正

1.3.0

  • 大幅改进了绘图功能:现在可以绘制受限的有效前沿图了

  • 有效的半方差投资组合(感谢 Philipp Schiele )

  • 改进了空头投资组合的功能(感谢 Rich Caputo )。

  • 测试覆盖率大幅提高(感谢 Carl Peasnell )。

  • 一些错误的修复和可用性的改进。

  • 从 TravisCI 迁移到 Github Actions。

1.3.1

  • 小清理(被遗忘的 v1.3.0 的提交)。

1.2.0

  • 增加了 Idzorek 的方法,用于计算给定百分比置信度的 omega 矩阵。

  • 修正了最大夏普比率,以允许自定义约束。

  • 分组了区域约束

  • 改进了错误回溯

  • 增加了新的示例(正在进行中)。

  • 打包:添加了更好的 Windows 说明,添加了 docker 支持。

1.2.1

修复了区域约束中的关键排序错误

1.2.2

Matplotlib现在是必要依赖;支持 pandas 1.0。

1.2.3

  • 增加了对改变求解器和详细输出的支持

  • 将 dict 改为 OrderedDict 以支持 python 3.5。

  • 改进了打包/依赖性:简化了 requirements.txt,改进了推送前的流程。

1.2.4

  • 修正了 Ledoit-Wolf 收缩计算中的错误。

  • 修正了绘图文档中的错误,该错误导致它们无法绘制。

1.2.5

  • 修正了 cvxpy 中的复合问题(感谢 Aditya Bhutra )。

  • 改进了高级 cvxpy API(感谢 Pat Newell )。

  • 废弃了 James-Stein

  • 在 HRP 中公开了 linkage_method

  • 增加了对 cvxpy 1.1 的支持。

  • 增加了对 efficient_risk 的错误检查。

  • 对文档进行了小的改进。

1.2.6

  • 修正了 Black-Litterman market_implied_prior_returns 中的顺序依赖错误。

  • 修正了 BL cookbook 中的不准确之处。

  • 修正了指数协方差中的错误。

1.2.7

  • 修正了做空/做多投资组合需要保守的风险目标的错误。

1.1.0

  • risk_models 进行了多项补充和改进:

    • 引入了一个新的 API,其中函数 risk_models.risk_matrix(method="...") 允许调用所有不同的风险模型。这应该使测试更容易。

    • 如果你设置了标志 returns_data=True ,所有方法现在都接受返回数据而不是价格。

  • 自动修复非半正定协方差矩阵!

  • expected_returns 的增加和改进:

    • 引入了一个新的 API,其中函数 expected_returns.return_model(method="...") 允许调用所有不同的收益模型。这应该使测试更容易。

    • 增加了“适当”复合收益的选项。

    • 增加了 CAPM 收益模型。

  • from pypfopt import plotting : 将所有绘图功能移到一个新的类中,并添加了 新的绘图。所有其他绘图功能(分散在不同的类中)都被保留,但从现在已经开始 deprecated。

1.0.0

  • 将依赖从 scipy 迁移到 cvxpy ,并对 API 进行了重大的修改。

    • PyPortfolioOpt 现在更加强大和稳定。

    • 这些变化不会影响到基本用户,他们仍然可以使用 max_sharpe() 等功能。

    • 额外的目标和约束(包括 L2 正则化)被添加。

  • 增加了有效前沿、分层聚类和HRP树状图基本绘图功能。

  • 增加了一个基本的交易成本目标。

  • 对一些模块和类进行了突破性的修改,使 PyPortfolioOpt 将来更容易扩展:

    • BaseConvexOptimizer 替换了 BaseScipyOptimizer

    • hierarchical_risk_parityhierarchical_portfolios 取代,以便为其他分层方法留出空间。

    • 遗憾的是,暂时删除了 CVaR 优化,直到我能够正确修复它。

1.0.1

修正了 CLA 中的小问题:权重调用的错误,efficient_frontier 需要调用权重,set_weights 不需要。

1.0.2

修正了传递 expected_returns=None 失败的小而重要的错误。 现在如文档所写,用户如果他们只想优化最小波动率,可以只传递协方差。

0.5.0

  • Black-Litterman 模型和文档。

  • 每个资产可以自定义界限

  • 改进了 BaseOptimizer ,增加了一个将权重写入文本的方法并修复了 set_weights 中的一个错误。

  • 无约束二次效用优化(分析)

  • 修改了文档,增加了关于属性类型的信息和更多的例子。

0.5.1

升级 pandas,修正了点积的一个错误。

0.5.2

将 PuLP、sklearn、noisyopt 作为可选的依赖项,以改善安装体验。

0.5.3

  • 修正了 EfficientFrontier.efficient_risk 中的一个优化错误。如果优化失败,现在会抛出错误。

  • 增加了一个隐藏的 API 来改变 scipy 的优化方法。

0.5.4

  • 改进了 Black-Litterman 线性代数,以避免倒置不确定性矩阵。现在能够对观点有 100% 的信心。

  • 澄清了关于 tau 的作用。

  • 为使用 pipenv 的用户添加了一个 pipfile

  • 从文档中删除了 Value-at-risk 防止误用,直到它被正确修复。

0.5.5

开始向 cvxpy 迁移,将离散分配后端从 PuLP 改为 cvxpy。

0.4.0

  • discrete_allocation 的重大改进,增加了分配空头的功能;

  • 修改了 Dingyuan Wang 建议的线性编程规划;

  • 在用户指南中增加了后期处理部分。

  • 进一步重构了 HRPOpt 的内容和文档。

  • 重大文档更新,例如,支持自定义优化器

0.4.1

  • 在得到 Marcos López de Prado 博士的许可后,重新加入了 CLA。

  • 增加了对不同风险模型的测试。

0.4.2

  • clean_weights 的小修复

  • 删除了对 python 3.4 的支持。

  • 对半方差的小改进,感谢 Felipe Schneider

0.4.3

  • 增加了 prices_from_returns 实用函数,并为 returns_from_prices 提供了更好的文档。

  • 增加了 cov_to_corr 方法,从协方差矩阵生成相关矩阵。

  • 修正了 readme 例子。

0.3.0

  • 合并了 Dingyuan Wang 的一个牛逼的 PR,该 PR 重构了项目,使其更加自洽和易于扩展。

  • 新的算法: ML de Prado 的 CLA

  • 将连续分配转换为离散分配的新算法(使用线性规划)。

  • 合并了一个 PR 实现单因素和常数相关收缩。

0.3.1

合并了来自 TommyBarkPR 。 修正了调用 portfolio_performance 的参数中的一个错误。

0.3.3

迁移到使用 poetry 依赖管理器。仍保留 setup.pyrequirements.txt ,但 poetry 现在是推荐的方式。

0.3.4

重构了收缩模型,包括单因素和常数相关。

0.2.0

  • 分层风险平价优化

  • 半方差矩阵

  • 指数协方差矩阵

  • CVaR 优化

  • 更好地支持自定义目标函数

  • 多个错误修复(包括最小波动率与最小方差)。

  • 重构后使所有优化器都继承自 BaseOptimizer

0.2.1

  • 在travis构建中包含 python 3.7

  • 合并了来自 schneiderfelipe 的 PR,修正了一个错误信息。

0.1.0

初次发布:

  • 有效边界(最大夏普、最小方差、目标风险/收益)

  • L2 正则化

  • 离散分配

  • 历史平均收益,指数平均收益

  • 样本协方差,sklearn 包装器

  • 测试用例

  • 文档

0.1.1

错误修复和文档更新