路线图和变更日志 ¶
作者:Robert Andrew Martin
译者:片刻小哥哥
项目地址:https://www.dafeiyang.cn/finance/stock/tools/PyPortfolioOpt/Roadmap
原始地址:https://pyportfolioopt.readthedocs.io/en/latest/Roadmap.html
路线图 ¶
PyPortfolioOpt 现在是一个“成熟”的包——它很稳定,我不打算实现主要的新功能(尽管我会努力修复错误)。
1.5.0 ¶
- 对后端进行了重大重新设计,感谢 Philipp Schiele - 因为我们使用
cp.Parameter
,我们可以有效地重新运行具有不同常量(例如风险目标)的优化问题 - 这导致绘图性能显着提高,因为我们不再需要 反复重新实例化EfficientFrontier
。 - 修复了一些杂项错误(感谢 Eric Armbruster 和 Ayoub Ennassiri)
1.5.1 ¶
搞乱了 1.5.0 发布时的版本控制。对不起!
1.5.2 ¶
修正了一些小错误
1.5.3 ¶
- 重新设计的包装:不再需要
cvxpy
,因为我们默认使用ECOS_BB
进行离散分配。 - 将最低 Python 版本提升至
3.8
。 我希望保持尽可能多的版本兼容(我认为大多数功能仍应与3.6
、3.7
兼容,但依赖关系变得太棘手而难以管理)。 - 更改为 numpy 伪逆以允许“现金”资产
- 用于有效前沿图的股票标签
1.5.4 ¶
- 固定的
cvxpy
弃用深层复制。感谢菲利普的修复! - 其他一些小的检查和错误修复。为大家的 PR 干杯!
1.4.0 ¶
- 终于实现了CVaR优化! 这是最受欢迎的功能之一。 非常感谢 Nicolas Knudde 的初稿。
- 重新设计了绘图,以便用户可以传递 ax,从而允许复杂的绘图(请参阅 cookbook)。
- 计算最大回报投资组合的辅助方法(感谢 Philipp Schiele)的建议)。
- 多项错误修复和测试改进(感谢 Carl Peasnell)。
1.4.1 ¶
- 100% 测试覆盖率
- 重新组织文档;添加了常见问题解答页面
- 重新组织模块结构,使其更具可扩展性
- 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
矩阵的方法。 - 修复了最大锐度以允许自定义约束
- 分组部门限制
- 改进了错误回溯
- 添加新的cookbook示例(正在进行中)。
- 打包:为 Windows 添加了更好的说明,添加了 docker 支持。
1.2.1 ¶
修复了扇区限制中的严重排序错误
1.2.2 ¶
Matplotlib 现在需要依赖项;支持熊猫1.0。
1.2.3 ¶
- 添加了对更改求解器和详细输出的支持
- 将 dict 更改为 OrderedDict 以支持 python 3.5
- 改进的打包/依赖:简化requirements.txt,改进推送前的流程。
1.2.4 ¶
- 修复了 Ledoit-Wolf 收缩率计算中的错误。
- 修复了绘制文档时导致文档无法渲染的错误。
1.2.5 ¶
- 修正了复利
expected_returns
(谢谢 Aditya Bhutra )。 - 高级 cvxpy API 的改进(感谢 Pat Newell )。
- 反对詹姆斯-斯坦
- 暴露
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
,所有方法现在都接受退货数据而不是价格。
- 引入了一个新的API,其中函数
- 自动修正非正半定协方差矩阵!
- 添加和改进
expected_returns
:- 引入了一个新的API,其中函数
expected_returns.return_model(method="...")
允许调用所有不同的返回模型。 这应该会让测试变得更容易。 - 添加了“正确”复合回报的选项。
- 添加了CAPM回报模型。
- 引入了一个新的API,其中函数
from pypfopt importplotting
:将所有绘图功能移至新类中并添加新绘图。 所有其他绘图函数(分散在不同的类中)均已保留,但现已弃用。
1.0.0 ¶
- 将后端从
scipy
迁移到cvxpy
并对 API 进行了重大突破性更改- PyPortfolioOpt 现在明显更加稳健且数值稳定。
- 这些更改不会影响基本用户,他们仍然可以访问
max_sharpe()
等功能。 - 然而,在优化某些“主要”目标之前,现在明确添加了额外的目标和约束(包括 L2 正则化)。
- 添加了有效边界、分层聚类和 HRP 树状图的基本绘图功能。
- 添加了基本交易成本目标。
- 对一些模块和类进行了重大更改,以便 PyPortfolioOpt 将来更容易扩展:
- 将
BaseScipyOptimizer
替换为BaseConvexOptimizer
hierarchical_risk_parity
被hierarchy_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 蛋白的作用。
- 添加了一个
pipfile
为了pipenv
用户。 - 从文档中删除了风险价值,以阻止使用,直到它得到正确修复。
0.5.5 ¶
通过将离散分配后端从 PuLP 更改为 cvxpy,开始迁移到 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
从协方差矩阵生成相关矩阵的方法。 - 修复了自述文件示例。
0.3.0 ¶
- 合并了 Dingyuan Wang 的一个令人惊叹的 PR,该 PR 重新架构了该项目,使其更加一致和可扩展。
- 新算法:ML de Prado 的 CLA
- 将连续分配转换为离散分配的新算法(使用线性编程)。
- 合并了实施单因素和恒定相关收缩的 PR 。
0.3.1 ¶
合并了 TommyBark 的 PR,修复了调用 Portfolio_Performance
的参数中的错误。。
0.3.3 ¶
在内部迁移项目以使用 poetry 依赖管理器。 仍将保留 setup.py
和 requirements.txt
,但 poetry 现在是与 PyPortfolioOpt 交互的推荐方式。
0.3.4 ¶
重构收缩模型,包括单因素和常相关。
0.2.0 ¶
- 分层风险平价优化
- 半协方差矩阵
- 指数协方差矩阵
- CVaR优化
- 更好地支持自定义目标函数
- 多个错误修复(包括最小波动性与最小方差)
- 重构,因此所有优化器都继承自
BaseOptimizer
。
0.2.1 ¶
- 在 travis 构建中包含 python 3.7
- 合并 PR 来自 schneiderfelipe 修复错误消息。
0.1.0 ¶
初始发行:
- 有效前沿(最大夏普、最小方差、目标风险/回报)
- L2正则化
- 离散分配
- 平均历史回报、指数平均回报
- 样本协方差,sklearn 包装器。
- 测试
- 文档
0.1.1 ¶
小错误修复和文档