Eiten 是Tradytics 的开源工具包,可实现各种统计和算法投资策略,例如Eigen Portfolios、Minimum Variance Portfolios、Maximum Sharpe Ratio Portfolios和基于遗传算法的投资组合。它允许你使用自己的一组可以击败市场的股票来建立自己的投资组合。Eiten 中包含的严格测试框架使你对自己的投资组合充满信心。
如果你想深入讨论这些工具并讨论我们正在开发的更多工具,请随时加入我们的Discord频道,我们也有更多工具。
小路 | 描述 |
---|---|
艾登 | 主文件夹。 |
└ 数字 | 这个 github 存储库的数字。 |
└ 股票 | 用于保存要用于创建投资组合的股票列表的文件夹。 |
└ 策略 | 一堆用python实现的策略。 |
回测程序.py | 对所有投资组合进行回测和向前测试的回测模块。 |
数据加载器.py | 从雅虎财经加载数据的模块。 |
投资组合管理器.py | 主文件接受一堆参数并为你生成几个投资组合。 |
模拟器.py | 使用历史回报和蒙特卡罗来模拟投资组合未来价格的模拟器。 |
策略管理器.py | 管理在“策略”文件夹中实施的策略。 |
你需要安装以下软件包来训练和测试模型。
你可以使用以下命令安装所有软件包。请注意,该脚本是使用 python3 编写的。
pip install -r requirements.txt
让我们看看如何使用工具包中给出的所有策略来构建我们的投资组合。你需要做的第一件事就是修改stocks.txt文件中的个股文件夹并添加你所选择的股票。建议保持列表较小,即5 到 50只股票之间的任何地方都可以。我们已经列出了一个包含一系列科技股的小股票清单,例如 AAPL、MSFT、TSLA 等。现在让我们建立我们的投资组合。这是你需要运行的主要命令。
python portfolio_manager.py --is_test 1 --future_bars 90 --data_granularity_minutes 3600 --history_to_use all --apply_noise_filtering 1 --market_index QQQ --only_long 1 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
此命令将使用过去 5 年的每日数据(不包括过去 90 天)并为你构建多个投资组合。基于这些投资组合,然后它会在 90 天的样本外数据上测试它们,并向你展示每个投资组合的表现。最后,它还会与你选择的市场指数(此处为QQQ)进行比较。让我们详细了解每个参数。
以下是构建不同类型投资组合的几个示例。
python portfolio_manager.py --is_test 1 --future_bars 30 --data_granularity_minutes 3600 --history_to_use 90 --apply_noise_filtering 1 --market_index QQQ --only_long 0 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
python portfolio_manager.py --is_test 0 --future_bars 0 --data_granularity_minutes 60 --history_to_use all --apply_noise_filtering 1 --market_index SPY --only_long 1 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
python portfolio_manager.py --is_test 1 --future_bars 90 --data_granularity_minutes 3600 --history_to_use all --apply_noise_filtering 0 --market_index SQQQ --only_long 1 --eigen_portfolio_number 1 --stocks_file_path stocks/stocks.txt
该工具包目前支持四种不同的投资组合策略。
当你运行上述命令时,我们的工具将从所有这些策略中生成投资组合并将其提供给你。让我们看看一些由此产生的投资组合。
出于这些结果的目的,我们将使用stocks/stocks.txt 文件中的9 只股票。当我们运行上述命令时,我们首先获得所有四种策略的投资组合权重。出于测试目的,上述命令使用了截至 4 月 29 日的过去五年的每日数据。今年剩余的数据用于前瞻测试,即在构建投资组合时投资组合策略无法访问这些数据。
如果我的投资组合需要不同的股票怎么办?:你需要做的就是更改stocks.txt 文件中的股票并再次运行该工具。这是我们再次运行以获取投资组合的最终命令:
python portfolio_manager.py --is_test 1 --future_bars 90 --data_granularity_minutes 3600 --history_to_use all --apply_noise_filtering 1 --market_index QQQ --only_long 1 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
我们可以看到,特征投资组合赋予 TSLA 很大的权重,而其他投资组合的权重分配更均匀。这里发生的一个有趣现象是所有策略都自动学习的SQQQ对冲。每个工具都为 SQQQ 分配了一些正权重,同时也为其他股票分配了正权重,这表明这些策略会自动尝试对冲投资组合的风险。显然这并不完美,但它正在发生的事实令人着迷。让我们看看 2020 年 4 月 29 日之前过去五年的回测结果。
回测看起来非常令人鼓舞。黑色虚线是市场指数,即QQQ。其他线路是策略。我们的自定义遗传算法实现似乎具有最好的回测结果,因为它是其他策略的高级版本。对 TSLA 权重最大的特征投资组合具有最大的波动性,但其利润也非常高。最后,正如预期的那样,MVP 的方差最小,最终利润最小。然而,由于方差极低,对于那些想要保持安全的人来说,这是一个很好的投资组合。接下来是最有趣的部分,让我们看看这些投资组合的未来或未来测试结果。
这些结果是从 2020 年 4 月 29 日到 2020 年 9 月 4 日。特征组合表现最好,但也有很大的波动性。此外,大部分回报是由于过去几个月 TSLA 飙升。在那之后,我们的 GA 算法运行得非常有效,因为它击败了市场指数。同样,正如预期的那样,MVP 的风险和回报最低,并在 4-5 个月内缓慢上升。这显示了这些算法投资组合优化策略的有效性和力量,我们针对不同类型的风险和回报情况开发了不同的投资组合。
我们很高兴与交易社区分享这个工具包,并希望人们喜欢它并为它做出贡献。与交易中的所有事情一样,这些策略并不完美,但它们基于严格的理论和一些出色的实证结果。使用这些策略进行交易时请小心,并始终管理你的风险。上述结果并非精心挑选,但过去几个月市场一直非常看涨,这导致了上述强劲的结果。我们希望社区尝试不同的策略并与我们分享。
特别感谢Scott Rome 的博客。特征投资组合和最小方差投资组合概念来自他的博客文章。过滤协方差矩阵的特征值的代码也主要从他的一篇文章中获得。
Tradytics的产品
版权所有 (c) 2020 年至今,Tradytics.com