Search
Close this search box.
Previsão de tendências no mercado financeiro com Python
previsão de tendências

Posts Relacionados:

Golden Crosses e Death Crosses são duas técnicas tradicionais para previsão de tendências em dados do mercado financeiro facilmente calculadas com Python.

Receba nossa newsletter

Previsão de tendências com Python

No mundo das finanças, a análise técnica desempenha um papel crucial na previsão das tendências do mercado de ações. Dois indicadores populares usados por traders e investidores são Golden Crosses e Death Crosses (Cruzes de Ouro e Cruzes da Morte, respectivamente). Neste post, exploraremos como verificar esses padrões em dados de ações usando a biblioteca yfinance do Python.

O que são Cruzes de Ouro e Cruzes da Morte?

Uma Golden Cross ocorre quando a média móvel de 50 dias (MA) cruza acima da MA de 200 dias, indicando um sinal de compra potencial. Esse padrão é frequentemente visto durante os mercados em alta, sugerindo que a ação começou a subir de um ponto baixo. Por outro lado, uma Death Cross acontece quando a MA de 50 dias cai abaixo da MA de 200 dias, sinalizando um potencial sinal de venda. Esse padrão é normalmente observado durante os mercados em baixa, indicando que a ação começou a cair de um ponto alto.

yfinance para buscar dados de ações

Para começar, usaremos yfinance para buscar dados históricos de ações para o símbolo (ticker) escolhido (por exemplo, “AAPL” para Apple ou “MSFT” para Microsoft). Também importaremos as bibliotecas necessárias: pandas para manipulação de dados e matplotlib.pyplot para plotar as médias móveis.

				
					import matplotlib.pyplot as plt
import pandas as pd
import yfinance as yf

				
			

Em seguida, buscamos os dados históricos para as ações da Apple. Mas você pode usar outro ticker se desejar.

				
					# Define ticker da Apple
ticker = yf.Ticker("AAPL") 

# Busca dados
dados  = ticker.history(period="max")

				
			

Previsão de tendências com médias móveis

Para detectar previsão de tendências com Golden Crosses e Death Crosses, precisamos verificar a média móvel (moving average, MA) para uma janela curta e outra longa. Para a curta, usaremos uma janela de 50 dias de tamanho. Já para a longa, utilizaremos uma janela de 200 dias:

				
					# Calcula a média móvel para 50 e 200 dias de janela
ma_curta = dados["Close"].rolling(window=50).mean()
ma_longa = dados["Close"].rolling(window=200).mean()


				
			

As médias móveis podem ser visualizadas como mostrado abaixo:

				
					# Plot as médias móveis
plt.figure(figsize=(10,6))
plt.plot(ma_curta, color='coral', linewidth=2, label="Média móvel 50 dias")
plt.plot(ma_longa, color='lightskyblue', linewidth=2, label="Média móvel 200 dias")
plt.legend(loc="upper left")
plt.title("AAPL médias móveis para 50 e 200 dias")
plt.show()

				
			

A figura é mostrada abaixo:

previsão de tendências

Previsão de tendências com Golden Crosses e Death Crosses

Para detectar previsão de tendências com Golden Crosses e Death Crosses, usaremos as seguintes condições:

  • Uma Golden Cross ocorre quando a MA curta cruza acima da MA longa.
  • Uma Cruz da Morte acontece quando a MA curta cai abaixo da MA longa.

Podemos verificar essas condições usando Pandas para realizar declarações condicionais nos dados:
				
					#Detecta Golden Crosses
golden_crosses = dados[(ma_curta > ma_longa) & (ma_curta.shift(1) <= ma_longa.shift(1))]

# Detecta Death Crosses
death_crosses = dados[(ma_curta < ma_longa) & (ma_curta.shift(1) >= ma_longa.shift(1))]


				
			
Por fim, para visualizar as previsões de tendências obtidas, podemos criar gráficos adicionais:
				
					plt.figure(figsize=(10,6))
plt.plot(golden_crosses.index, ma_curta[golden_crosses.index], linewidth=2, label="MA 50 dias")
plt.plot(golden_crosses.index, ma_longa[golden_crosses.index], linewidth=2, label="MA 200 dias")
plt.scatter(golden_crosses.index, ma_curta[golden_crosses.index], color="green", marker="^")  # Golden Cross
plt.title("Golden Crosses nos dados da Apple")
plt.legend(loc="upper left")

plt.figure(figsize=(10,6))
plt.plot(death_crosses.index, ma_curta[death_crosses.index], linewidth=2, label="MA 50 dias")
plt.plot(death_crosses.index, ma_longa[death_crosses.index], linewidth=2, label="MA 200 dias")
plt.scatter(death_crosses.index, ma_curta[death_crosses.index], color="red", marker="v")  # Death Cross
plt.title("Death Crosses nos dados da Apple")
plt.legend(loc="upper left")
plt.show()

				
			
As figuras obtidas são mostradas abaixo:
golden crosses
Death crosses

Conclusão

Neste post, demonstramos como verificar Golden Crosses e Death Crosses em dados de ações usando a biblioteca yfinance do Python. Ao analisar esses padrões, traders e investidores podem tomar decisões mais informadas sobre suas estratégias de investimento. Lembre-se, a análise técnica não substitui a análise fundamental ou outras formas de pesquisa.

Imagem com IA Generativa – Dia 379

IA generativa - img379

Arte com IA generativa: imagem do dia

Todos os dias postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial