Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não é possível estabelecer conexão

Estou tendo problemas, no momento que rodo o primeiro código rola esse erro!
Ja tentei usar o meu código e o transcrito pelo professor, nenhum dos dois funcionou.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Olá Victor! Tudo bem?

Atualmente utilizando a versão yfinance do curso e o código da transcrição gera tabelas vazia. Abaixo deixo alguns ajustes para que a tabela seja exibida.

Não especifique as versões das bibliotecas

Você deverá editar o arquivo no bloco de notasrequirements.txt e apenas escrever os nomes das bibliotecas que iremos utilizar. Ele ficará assim:

pandas
numpy
matplotlib
seaborn
fundamentus
yfinance

Atualize no cmd com o comando:

pip install -r requirements.txt

Utilizei a versão 3.10.11 do Python. Recomendo primeiro tentar com a versão que está instalada em seus sitema, caso obtenha algum erro de incompatibilidade entre versão do Python e biblioteca, recomendo utilizar essa mesma versão que utilizei Python 3.10.11. Lembre-se que você deverá estar com o seu ambiente virtual ativo.

Alterações no código:

  1. Adicionei o parâmetro auto_adjust=False
    Isso evita que o yfinance ajuste os preços automaticamente (o que pode quebrar a estrutura dos dados com múltiplos ativos):

    df = yf.download(carteira_yf, start="2022-08-01", end="2023-08-01", auto_adjust=False)
    
  2. Renomeei a coluna do ticker após o empilhamento (stack):

    Troque level_1 por "Ticker":

    cotacoes = cotacoes.reset_index().rename(columns={'Ticker': 'Ativo'})
    

Código completo:

# Código completo da obtenção dos dados históricos das cotações da carteira de 01/08/2022 à 01/08/2023
# Importando a biblioteca
import yfinance as yf

# Definindo a carteira de ações
carteira_yf = ['ABEV3.SA', 'B3SA3.SA', 'ELET3.SA', 'GGBR4.SA', 'ITSA4.SA',
               'PETR4.SA', 'RENT3.SA', 'SUZB3.SA', 'VALE3.SA', 'WEGE3.SA']

# Carregando os dados da carteira
df = yf.download(carteira_yf, start="2022-08-01", end="2023-08-01", auto_adjust=False)


# Passando os ativos para o multindex do df
cotacoes = df.stack(level=1)

# Resetando os índices e renomenado a coluna dos ativos
cotacoes = cotacoes.reset_index().rename(columns={'Ticker': 'Ativo'})

# Organizando o df
cotacoes = cotacoes[["Date", "Open", "High", "Low", "Close", "Ativo"]]

del carteira_yf, df

Peço que testa esses novos ajustes e veja se o problema é solucionado,

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Solucionado
Obrigado Monalisa!