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.