Um guia para automatizar sua análise de estoque com Python

Acorde de manhã com um e-mail com suas principais ações. Aqui está tudo o que você precisa para conduzir análises de estoque personalizadas e diárias.

Warren Buffet certa vez aconselhou os investidores a “ter medo quando os outros são gananciosos e gananciosos quando os outros estão com medo”. Hoje, segundo o gestor de fundos Guy De Blonay, oitenta por cento das movimentações diárias nos EUA são feitas por máquinas (CNBC). Os investidores raramente enfrentam a concorrência humana mais, portanto, não podem se beneficiar da extorsão do medo ou ganância de outra pessoa. Felizmente, o mercado é uma gangorra. É nosso trabalho ser medrosos ou gananciosos, mas precisamos de pura lógica para nos ajudar a decidir como nos sentir. Quando aproveitamos o que nossos computadores foram construídos para fazer, isso nos permite recorrer a nosso único ativo que não pode ser substituído: a humanidade.

Outro artigo da CNBC reforça a mesma ideia: “Não é segredo que as máquinas estão assumindo uma parcela cada vez maior dos investimentos, mas a extensão de sua influência está se aproximando de proporções chocantes.”

A seguir, descrevi um processo de codificação para automatizar completamente a análise diária baseada em algoritmos e entregar as 10 opções de estoque mais altas e mais baixas do dia diretamente na sua caixa de entrada. Automatizar esse processo de análise permite que investidores solitários tenham mais tempo para raciocinar sobre o sentimento, o que nos dá uma vantagem sobre a negociação cada vez mais robótica no mercado de hoje.

Automatizando a análise de estoque usando Python

Em um esforço para tornar esse processo de automação viável para pessoas com pouca ou nenhuma experiência em programação, vou revisar o código de cima a baixo e oferecer mais recursos. Se você for completamente novo no Python, recomendo a leitura deste artigo para uma explicação simples do processo de instalação e inicialização. Preste atenção extra aos comentários no código abaixo para obter uma melhor compreensão do que cada linha de código faz.

Programar é uma habilidade que se adquire melhor na prática do que em livros. – Alan Turing

Importando bibliotecas necessárias

Para fazer uso das funções existentes ao automatizar nossa análise de estoque, devemos primeiro importar as bibliotecas necessárias. Podemos fazer isso com algumas linhas simples de código.

Aqui está uma análise do caso de uso para cada biblioteca:

Coletando dados históricos de estoque

A obtenção de dados históricos sobre os estoques que queremos observar é um processo de duas etapas. Primeiro, devemos restringir uma lista de ações. Então, temos que fazer chamadas individuais para a API Yfinance para importar dados sobre cada empresa.

Escolhendo as ações que desejamos segmentar

A biblioteca get-all-tickers nos permite compilar uma lista das ações que se enquadram nos critérios que definimos. Atualmente, a biblioteca oferece suporte à filtragem de ações por região, setor, valor de mercado e bolsa. Para este exemplo, estou olhando para empresas que têm uma capitalização de mercado entre $ 150.000 e $ 10.000.000 (em milhões). Você notará que também incluí uma linha de código para imprimir o número de tickers que estamos usando. Isto é muito importante. Você precisará ter certeza de que não está almejando mais de 2.000 tickers, porque a API Yfinance tem um limite de 2.000 chamadas de API por hora.

Eu recomendaria usar esta biblioteca porque permite que nossa lista de ações observáveis ​​seja dinâmica. Se for mais adequado para sua análise, porém, forneci uma linha de código alternativa que permite que você digite as ações que gostaria que o programa analisasse.

Obtenção e salvamento de dados históricos

Utilizando a API Yfinance, seremos capazes de acessar e salvar os dados históricos de estoque para cada elemento (estoque) em nossa lista de “tickers”. Essa biblioteca nos dá acesso aos dados que o Yahoo Finance fornece gratuitamente ao público. Se você estiver procurando outras informações sobre um estoque (não dados históricos), verifique sua API.

O código a seguir percorrerá nossa lista de ações obtida na seção acima. Para cada ação, ele fará uma ligação para o Yahoo Finance para obter seus dados históricos. Se falhar, ele tentará novamente até cinco vezes para cada ação ou até que tenha feito 1.800 chamadas de API. Quando ele recupera com sucesso os dados do Yahoo Finance, ele os salva como um arquivo CSV individual na pasta chamada “Ações”. Para analisar cada estoque, devemos primeiro salvar seus dados em uma pasta central. No meu exemplo, estou chamando essa pasta de “Ações”. Por fim, toda vez que o código for executado, ele removerá e recriará a pasta “Stocks” para garantir que não esteja considerando os dados do dia anterior em sua análise.

Execução de análise de estoque

Escolher um modelo para seus dados é muito parecido com fazer o jantar, você está com muita fome, mas não tem ideia de como cozinhar. Qualquer que seja o tipo de análise que você queira incorporar a este programa, o aperfeiçoamento dessa receita leva tempo e desejo-lhe boa sorte. – Escrevo isso enquanto estou com fome

Esta seção fornece um exemplo de como você pode utilizar este programa para economizar tempo em seu processo de análise. Uma vez que o “processo de análise” é diferente para cada investidor, não vou perder muito tempo focando em minha análise aqui. Se você estiver interessado em implementar outras técnicas de análise em Python, verifique este artigo sobre como calcular o MACD e sua precisão.

O indicador técnico de volume no balanço que estou calculando em minha análise é usado para relacionar o volume e o preço de uma ação. É um cálculo relativamente simples. Primeiro, você decide por quanto tempo deseja observar o estoque. Optei por olhar os últimos dez dias de dados para cada ação. Se o preço de abertura do dia para uma empresa for maior do que seu preço de fechamento, ela adicionará o volume de dias ao total. Se for menor, o volume é subtraído do total. Ao final dos dez dias, você tem uma imagem do volume acumulado de cada estoque.

Para comparar melhor cada ação, também estou normalizando o volume antes de adicioná-lo ou subtraí-lo. A última etapa neste processo é criar um CSV de todas as ações classificadas por seu valor OBV. Isso é importante, pois é a informação incluída no relatório que deve ser enviada por e-mail todas as manhãs.

Enviando um relatório diário para si mesmo por e-mail

Terminamos a análise dos estoques. Agora, queremos ler um relatório sobre as descobertas. A melhor maneira de fazer isso é aproveitar as vantagens das bibliotecas Smtplib e SSL. Isso nos permitirá fazer o login e enviar um e-mail em Python. No código abaixo, o programa abrirá o documento que contém as ações classificadas e anexará as 10 melhores e as 10 últimas empresas classificadas à mensagem do relatório diário.

Duas coisas que você precisa fazer:

Execute seu código sem usar as mãos com o Agendador de tarefas

Executar todo o código acima corretamente deve resultar no recebimento de um e-mail com o seu relatório diário de estoque. Agora você tem um produto completamente acabado, pronto para personalização com sua própria análise. A última etapa para receber uma análise de estoque totalmente automática todas as manhãs é informar ao seu computador quando executar este arquivo Python. Este processo é tão simples quanto configurar uma tarefa no Agendador de Tarefas (Windows). Eu recomendaria configurar o arquivo Python para ser executado todas as manhãs, de segunda a sexta-feira, para que você possa acordar com um relatório de ações totalmente personalizado todos os dias de negociação.

Utilize sua humanidade

Agora que sua análise baseada em algoritmos foi feita antes mesmo de tomar seu café da manhã, você deve ter bastante tempo para avaliar cada ação por meio de sua própria análise de sentimento. Neste novo mercado mecanizado, onde os programas são responsáveis ​​por 80% das negociações do mercado, espero que este programa permita aos investidores comuns não apenas competir, mas ganhar vantagem sobre a concorrência.

Para aprender mais técnicas de automação de análise de estoque, aprendizado de máquina e inteligência artificial, confira minha nova publicação, Hands-Off Investing .

Se você gostou deste artigo, dê um like e me diga o que você achou. Eu adoraria ouvir algum feedback! Além disso, conecte-se comigo no LinkedIn aqui. Fico sempre feliz em fazer novas conexões!

** Isenção de responsabilidade: o conteúdo deste artigo não é um conselho financeiro.