Previsão do Ibovespa com IA Generativa e Python

Prever séries financeiras, especialmente um índice de mercado como o Ibovespa, é uma tarefa complexa e desafiadora. Isso se deve à natureza errática e volátil desses dados, que são influenciados por uma infinidade de fatores, muitos dos quais são imprevisíveis. A imprevisibilidade do mercado torna a modelagem estatística tradicional uma tarefa árdua, pois mesmo os modelos mais sofisticados podem falhar em capturar todas as nuances e flutuações repentinas.

Entretanto, a introdução da Inteligência Artificial (IA) Generativa no campo da previsão financeira abre novas possibilidades. Diferente dos modelos tradicionais, a IA Generativa pode simular uma ampla gama de cenários possíveis, capturando as complexidades e incertezas inerentes ao comportamento dos mercados financeiros. Ao invés de se basear apenas em dados históricos e pressupostos lineares, a IA Generativa pode explorar um espaço muito maior de possibilidades, oferecendo previsões que incorporam tanto padrões observados quanto novos padrões gerados pela própria IA.

Para essa tarefa aplicamos técnicas avançadas de Engenharia de Prompt. A Engenharia de Prompt é um processo de construção e refinamento de instruções que guiam a IA Generativa a produzir resultados mais precisos e relevantes. Ao formular prompts de forma cuidadosa, podemos direcionar a IA para focar em aspectos específicos dos dados financeiros, como volatilidade ou tendências de longo prazo, melhorando a acurácia das previsões.

Por fim, integramos a técnica da Árvore de Pensamento. Essa abordagem permite que a IA siga uma estrutura lógica de decisão, simulando diferentes caminhos que o mercado pode seguir com base em diversas condições iniciais. A Árvore de Pensamento divide o problema de previsão em múltiplos ramos, cada um representando um cenário alternativo, o que ajuda a capturar a diversidade e complexidade do comportamento do mercado.

No nosso caso, usamos como ramos previsões criadas por diferentes profissionais: estatístico, data scientist e economista.

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

Este exercício é baseado no artigo Otimizando tarefas com técnicas de Engenharia de Prompt aplicadas em IA generativa.

Dados

Utilizamos dados dos pontos do Ibovespa mensal no período de jan/2010 até jul/2024. Usamos os 12 últimos meses (jul/2023 - jul/2024) como dados de teste, para verificar o erro das previsões geradas e comparar a trajetório das previsões de cada ramo com o realizado. Os dados foram obtidos através do Yahoo Finance por meio da biblioteca yfinance.

Modelo

Usamos a seguinte instrução para a IA:

"""Identify and behave as three different experts, an Economist, an Data Scientist and a Statistician, that are appropriate to forecasting a financial time series.

All experts will write down their forecast for the asked date period and their thinking about the forecasting value, then share it with the group. Then, all experts will go on to the next date period, etc.

At each date period, whenever possible, each expert refines their forecasting strategy and builds upon the thoughts and past forecast errors of others and itself, acknowledging their contributions. At each date period, the user will provide 1) the last forecast error, 2) the date period to be forecasted and 3) the historical data available.

They continue until the user says to stop. For clarity, your entire response should be in CSV table like format with 3 columns: expert, forecast value, and thinking. Return the CSV table with a ";" delimiter for columns and nothing more.

The question is:"""

Dessa forma, fazemos com que o modelo explore múltiplos caminhos, por múltiplas perspectivas diferentes, possibilitando análise e avaliação de erros entre cada possibilidade. Essa é uma estrutura de pensamento similar à humana.

Em seguida, fornecemos o seguinte prompt ao modelo para começar o processo:

"""User input: I want to forecast Brazil's Market Index, measured in monthly points by Ibovespa from B3. Provide a forecast value for July 2023. The historical available data is attached in this CSV file.
Answer:"""

Primeira Previsão

expert;forecast value;thinking Economist;106000.0;Considering the historical data and the current economic climate, I anticipate a slight decline in the Brazilian Market Index for July 2023. Inflationary pressures and potential interest rate hikes could contribute to this projected decrease. Data Scientist;108542.0;Using a simple moving average forecast on the past 12 months of data, I predict the index will be around 108542.0 for July 2023. This method assumes a continuation of recent trends in the data. Statistician;109025.45;Based on an ARIMA model fitted to the historical data, I forecast the index to be 109025.45 in July 2023. The model incorporates autoregressive, integrated, and moving average components to capture the time series patterns.

forecast value thinking
expert
Economist 106000.00 Considering the historical data and the curren...
Data Scientist 108542.00 Using a simple moving average forecast on the ...
Statistician 109025.45 Based on an ARIMA model fitted to the historic...

Várias previsões

Realizamos diferentes previsões iterando o processo, resultando em projeções em diversos meses subsequentes.

Com os resultados podemos avaliar que tipo de perfil profissional desempenharia melhor na tarefa proposta (considerando as limitações do exercício e que isso se trata apenas de uma simulação).

Os erros de previsão de cada profissional foram os seguintes:

As previsões geradas foram as seguintes:

Quer aprender mais?

Clique aqui para fazer seu cadastro no Boletim AM e baixar o código que produziu este exercício, além de receber novos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas diretamente em seu e-mail.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Coletando dados para monitoramento climático com Python

As condições climatológicas influenciam desde a safra de grãos até a decisão de um vendedor ambulante levar seu carrinho para a praia ou não. Por sua importância e impactos na economia do país, neste exercício mostramos como coletar e elaborar análises de dados sobre o clima usando o Python.

Coletando dados de secas e queimadas no Brasil com Python

Neste artigo exploramos fontes públicas de dados sobre secas e queimadas no Brasil. Mostramos como acessar, coletar e preparar os dados para elaboração de análises. Usamos a linguagem Python para desenvolver uma rotina automatizada.

Como analisar demonstrações contábeis usando IA

Neste post, vamos explorar como utilizar o modelo de linguagem Gemini do Google para analisar demonstrações contábeis anuais da Eletrobras e extrair informações relevantes para tomada de decisão. Através de um código Python, vamos importar os dados direto da CVM, conectar com o Gemini e gerar resumos sobre as contas das demonstrações e perspectivas futuras sobre as finanças da empresa.

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.