Inteligência Artificial no mercado financeiro

De forma que se possa tomar as melhores decisões de investimento, realiza-se cálculos numéricos complexos de forma que possamos mitigar o risco ou maximizar o retorno. E para caso não queiramos utilizar métodos numéricos? Podemos utilizar nosso conhecimento subjetivo para tomar as decisões. Apesar de complicado para a mente humana, é possível criarmos uma inteligência que segue uma lógica qualitativa e pode auxiliar na criação de uma estratégia de investimento. No post de hoje, mostramos como podemos obter isso através do lógica fuzzy no Python.

 

O objetivo do uso da lógica fuzzy aqui será de traduzir o que os números dizem por meio de palavras, utilizando uma lógica e um aditivo. Iremos utilizar como exemplo o preço e o volume de negociações da ITUB4. A transformação da lógica pode ser obtida como:

  • SE (preço ~ barato) E (volume ~ baixo) ENTÃO (decisão ~ comprar)
  • SE (preço ~ barato) E (volume ~ alto) ENTÃO (decisão ~ comprar)
  • SE (preço ~ ideal) E (volume ~ baixo) ENTÃO (decisão ~ comprar)
  • SE (preço ~ ideal) E (volume ~ ideal) ENTÃO (decisão ~ manter)
  • SE (preço ~ ideal) E (volume ~ alto) ENTÃO (decisão ~ vender)
  • SE (preço ~ caro) E (volume ~ alto) ENTÃO (decisão ~ vender)

Através dessa lógica, podemos construir uma estratégia de investimento em um dado horizonte de tempo. Para isso, utilizaremos algumas biblioteca a nosso favor.

O primeiro passo será obter os dados do preço de fechamento e do volume do ativo. Utilizamos como janela o período entre 2021 e março de 2022. Como queremos construir uma lógica de subjetiva de baixo, ideal e alto, devemos entender através dos dados, calculandos o valores médios, o desvio padrão, os valores mínimos e máximos, bem como os quintis de 25% e 75%.

Definido os valores, montamos a lógica.

Construímos a função de pertinência (que nos auxiliará na construção dos pontos de decisão de compra, venda e manter). Aqui selecionamos o espaço dos dados.

Veja que em alguns pontos utilizamos a criação na "mão" (para as decisões e vol) ao invés dos valores dos quantis da média, isto por conta da quantidade de memória utilizada pelo código. Como forma de exemplificar, utilizamos dados não tão próximos da realidade.

Com o código abaixo, realizamos a fuzzificação da nossa lógica, construídos os pontos das regras da estratégia.

Com as regras em mãos, o que devemos é iterar em cada ponto de tempo a decisão baseada na lógica construída.

Com o código acima, obtemos os pontos de cada decisão criado pela estratégia salvo no objeto dec_fuzzy.

 

Por fim, visualizamos o gráfico com os pontos de cada decisão da estratégia. A infelicidade aqui está que visualmente é possível ver que há somente pontos de compra, o que pode ser irreal, devido ao fato de que utilizamos uma aproximação da distribuição do dados por conta de gargalos computacionais.

Referências

Caetano, M. A. L. (2021). Python e mercado financeiro: Programação para estudantes, investidores e analistas. Brasil: Editora Blucher.

Veja mais sobre nossos cursos aplicado para R e Python!

Nossos cursos oferecem o conhecimento necessário para que você possa adentrar no mundo da Análise de dados e consiga por em prática os seus códigos. Veja todos nossos cursos de Data Science aqui.

 

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise regional do mercado de trabalho com dados do CAGED usando Python

Os microdados dos CAGED fornecem informações detalhadas a nível de cidade, sexo, raça, nível de instrução, idade, salário e outras sobre os trabalhadores formais do Brasil, possibilitando ricas análises regionais de dados. Neste artigo mostramos como acessar, processar e analisar estes dados utilizando o Python.

Transfer Learning: mostrando porque o Python está na ponta do desenvolvimento

A aprendizagem por transferência (transfer learning) é o reuso de um modelo pré-treinado em um novo problema. Portanto, sua utilização torna-se um avanço enorme para a previsão de diferentes tipos de variáveis, principalmente para aquelas ordenadas no tempo. Mostramos nesta postagem o uso do Transfer Learning com o Python para o caso de Séries Temporais.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.