Eiten是传统工具包的开源工具包,它实现了各种统计和算法投资策略,例如Eigen投资组合,最小差异投资组合,最大Sharpe比率投资组合和基于遗传算法的投资组合。它使您可以使用自己的一套可以击败市场的股票来建立自己的投资组合。 Eiten中包含的严格测试框架使您对投资组合有信心。
如果您想深入讨论这些工具并讨论我们正在使用的更多工具,请随时加入我们的Discord频道,在那里我们也有很多工具。
小路 | 描述 |
---|---|
Eiten | 主文件夹。 |
└数字 | 该GitHub存储库的数字。 |
└股票 | 文件夹以保留您要使用的库存列表来创建投资组合。 |
└策略 | Python实施了一系列策略。 |
backtester.py | 对所有投资组合进行回测和前进测试的回测模块。 |
data_loader.py | 从Yahoo Finance加载数据的模块。 |
portfolio_manager.py | 主文件会引入一堆参数,并为您生成多个投资组合。 |
simulator.py | 使用历史回报和蒙特卡洛来模拟投资组合的未来价格的模拟器。 |
strategy_manager.py | 管理“策略”文件夹中实施的策略。 |
您将需要安装以下软件包来训练和测试模型。
您可以使用以下命令安装所有软件包。请注意,该脚本是使用Python3编写的。
pip install -r requirements.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
该工具包目前支持四种不同的投资组合策略。
当您运行上面的命令时,我们的工具将从所有这些策略中生成投资组合,并将其提供给您。让我们看看一些由此产生的投资组合。
为了这些结果,我们将使用股票/股票文件中的9个股票。当我们运行上述命令时,我们首先获得所有四种策略的投资组合权重。出于测试目的,上述命令使用了最后五年的每日数据,直到4月29日。今年剩余的数据用于进行正向测试,即投资组合策略在构建投资组合时无法访问它。
如果我的投资组合需要不同的股票怎么办? :您需要做的就是更改库存中的库存。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的博客。特征组合和最小差异投资组合概念来自他的博客文章。过滤协方差矩阵的特征值的代码也主要是从他的一个帖子中获得的。
传统的产品
版权(c)2020-resent,tradytics.com