贡献
我希望大家能帮忙做一些事情:
提高现有代码的性能(但不能以牺牲可读性为代价)
增加新的优化目标。例如,如果想使用夏普比率以外的东西,请写一个优化器 (或者在 Issues 中提出建议,我会去看的)。
帮助我写更多的测试! 如果你是一个正在学习量化金融和 python 单元测试的人,还有什么比在一个开源项目上写一些测试更好的练习方式呢?请随时检查边界情况,或不常见的参数组合,这可能会导致不易察觉的错误。
准则
尽早寻求反馈
在你开始为你的贡献编码之前,在 GitHub 提出一个问题 ,讨论该贡献是否适合该项目,可能是明智之举。
代码风格
对于这个项目,我使用了 Black 作为格式标准,并使用了所有的默认设置。 如果任何 PR 都遵循这个标准,我将非常感激,因为如果不遵循,我将不得不在合并前进行格式化。
测试
任何贡献必须伴随着单元测试(用 pytest
编写)。这些测试非常简单,只要找到相关的测试文件(或创建一个新的),然后写一堆 assert
语句。
测试应适用于在 test/stock_prices.csv
中提供的数据集,并应涵盖核心功能、警告/错误(检查它们是否按预期提出),以及限制性行为或边界用例。
文档
内联注释在需要时是很好的,但不要太过分。文档串的内容应该在语义上遵循 PEP257 ,在语法上遵循 sphinx,这样 sphinx 就能自动记录方法和它们的参数。我个人不喜欢在文档串中写很长的段落:在我看来,文档串应该简要地说明一个对象如何被使用,而其余的解释和理论背景应该被放到 ReadTheDocs。
我希望在修改时能附上相关的文档,它不一定要漂亮,因为我可能会在它进入 ReadTheDocs 之前努力将其整理好,但写代码的人用他们自己的话来解释,会让事情简单得多。
问题
如果你有任何与项目有关的问题,最好 提出一个问题 ,我将把它标记为一个问题。
如果你有与项目无关的问题,请给我发电子邮件,联系方式可以在 我的网站 上找到。
Bug/问题
如果你发现任何错误或投资组合优化没有达到预期效果,请随时 提出一个问题 。 请在问题中提供以下信息:
描述性的标题,以便其他用户可以看到现有的问题
操作系统,Python 版本,以及 Python 发行版(可选)
重现该问题的最基本的例子
你预期会发生什么
实际发生的情况
错误信息的完整回溯(省略你认为合适的个人细节)