O EITEN é um kit de ferramentas de código aberto da Tradytics que implementa várias estratégias estatísticas e algorítmicas de investimento, como portfólios de eigen , portfólios de variação mínima , portfólios máximos de relação Sharpe e portfólios baseados em algoritmos genéticos . Ele permite que você construa seus próprios portfólios com seu próprio conjunto de ações que podem vencer o mercado. A rigorosa estrutura de teste incluída no Eiten permite que você tenha confiança em seus portfólios.
Se você deseja discutir essas ferramentas em profundidade e falar sobre mais ferramentas em que estamos trabalhando, sinta -se à vontade para participar do nosso canal Discord, onde também temos um monte de mais ferramentas.
Caminho | Descrição |
---|---|
eiten | Pasta principal. |
└ Figuras | Figuras para esses repositórios do GitHub. |
└ Estoques | Pasta para manter suas listas de ações que você deseja usar para criar seus portfólios. |
└ Estratégias | Um monte de estratégias implementadas em Python. |
backTester.py | Módulo de teste que os testes de backtestes e de encaminhamento de todos os portfólios. |
data_loader.py | Módulo para carregar dados do Yahoo Finance. |
portfolio_manager.py | Arquivo principal que recebe vários argumentos e gera vários portfólios para você. |
simulador.py | Simulador que usa retornos históricos e Monte Carlo para simular preços futuros para os portfólios. |
estratégia_manager.py | Gerencia as estratégias implementadas na pasta 'estratégias'. |
Você precisará instalar o seguinte pacote para treinar e testar os modelos.
Você pode instalar todos os pacotes usando o seguinte comando. Observe que o script foi escrito usando o Python3.
pip install -r requirements.txt
Vamos ver como podemos usar todas as estratégias fornecidas no kit de ferramentas para construir nossos portfólios. A primeira coisa que você precisa fazer é modificar o arquivo Stocks.txt na pasta Stocks e adicionar os estoques de sua escolha. Recomenda -se manter a lista pequena, ou seja, entre 5 e 50 ações, deve estar bem. Já colocamos uma pequena lista de ações contendo vários estoques de tecnologia, como AAPL, MSFT, TSLA etc. Vamos construir nossos portfólios agora. Este é o comando principal que você precisa executar.
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
Este comando usará os últimos 5 anos de dados diários, excluindo os últimos 90 dias e criará vários portfólios para você. Com base nesses portfólios, ele os testará nos dados fora da amostra de 90 dias e mostrará o desempenho de cada portfólio. Por fim, ele também comparará o desempenho com sua escolha de índice de mercado, que é o QQQ aqui. Vamos mergulhar em cada um dos parâmetros em detalhes.
Aqui estão alguns exemplos para a construção de diferentes tipos de portfólios.
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
Atualmente, quatro estratégias diferentes de portfólio são suportadas pelo kit de ferramentas.
Quando você executa o comando acima, nossa ferramenta gera portfólios de todas essas estratégias e as entregará a você. Vejamos alguns portfólios resultantes.
Para o objetivo desses resultados, usaremos as 9 ações no arquivo Stocks/Stocks.txt. Quando executamos o comando acima, primeiro obtemos os pesos do portfólio para todas as quatro estratégias. Para fins de teste, o comando acima usado nos últimos cinco anos de dados diários até 29 de abril. Os dados restantes para este ano foram usados para testes avançados, ou seja, as estratégias do portfólio não tiveram acesso a ele ao criar os portfólios.
E se meu portfólio precisar de ações diferentes? : Tudo o que você precisa fazer é alterar os estoques no arquivo Stocks.txt e executar a ferramenta novamente. Aqui está o comando final novamente que executamos para obter nossos portfólios:
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
Podemos ver que o portfólio de Eigen está dando um grande peso ao TSLA enquanto os outros estão dividindo seus pesos de maneira mais uniforme. Um fenômeno interessante que está acontecendo aqui é a cobertura com o SQQQ que todas as estratégias aprenderam automaticamente. Toda ferramenta está atribuindo algum peso positivo ao SQQQ, além de atribuir pesos positivos a outros estoques, o que indica que as estratégias estão tentando automaticamente proteger os portfólios do risco. Obviamente, isso não é perfeito, mas apenas o fato de estar acontecendo é fascinante. Vejamos os resultados do teste nos últimos cinco anos anteriores a 29 de abril de 2020.
Os testes parecem bastante encorajadores. A linha pontilhada preta é o índice de mercado, ou seja, QQQ . Outras linhas são as estratégias. Nossa implementação personalizada de algoritmo genético parece ter os melhores resultados de teste, porque é uma versão avançada de outras estratégias. O portfólio Eigen que pesava o TSLA mais tem mais volatilidade, mas seus lucros também são muito altos. Finalmente, como esperado, o MVP tem a variação mínima e, finalmente, os menores lucros. No entanto, como a variação é extremamente baixa, é um bom portfólio para quem deseja permanecer seguro. A parte mais interessante vem a seguir, vejamos os resultados de testes avançados ou futuros para esses portfólios.
Esses resultados são de 29 de abril, 2020 a 4 de setembro de 2020. O portfólio Eigen teve o melhor desempenho, mas também teve muita volatilidade. Além disso, a maioria desses retornos se deve ao TSLA disparado nos últimos meses. Depois disso, nosso algoritmo GA funcionou com bastante eficácia, ao vencer o índice de mercado. Novamente, como esperado, o MVP teve o menor risco e recompensa e subiu lentamente em 4-5 meses. Isso mostra a eficácia e o poder dessas estratégias de otimização de portfólio algorítmico, onde desenvolvemos diferentes portfólios para diferentes tipos de perfis de risco e recompensa.
Estamos felizes em compartilhar este kit de ferramentas com a comunidade comercial e esperamos que as pessoas gostem e contribuam para isso. Como é o caso de tudo no comércio, essas estratégias não são perfeitas, mas são baseadas em teoria rigorosa e alguns grandes resultados empíricos. Tome cuidado ao negociar com essas estratégias e sempre gerencie seu risco. Os resultados acima não foram escolhidos, mas o mercado foi altamente otimista nos últimos meses, o que levou aos fortes resultados mostrados acima. Adoraríamos que a comunidade experimente estratégias diferentes e as compartilhasse conosco.
Agradecimentos especiais ao blog de Scott Roma. Os portfólios de Eigen e os conceitos de portfólio de variação mínima vieram de suas postagens no blog. O código para filtrar os valores de auto -covariância também foi obtido principalmente de uma de suas postagens.
Um produto por traditica
Copyright (C) 2020-presente, tradytics.com