Search
Close this search box.
Como usar o Yahoo Finance com Python

Posts Relacionados:

O Yahoo Finance é uma ótima fonte para obter dados do mercado financeiro gratuitamente. Neste post, explicaremos como usá-la com Python.

Receba nossa newsletter

Uma aplicação importante de técnicas de machine learning e inteligência artificial é o trading. Mas, as aplicações destas técnicas devem ser feitas apenas após os algoritmos terem sido testados exaustivamente com dados do mercado em situações controladas. Portanto, a obtenção de dados é uma etapa essencial em machine learning e outras técnicas de inteligência artificial. Neste post, vamos explicar como é possível obter facilmente dados do mercado financeiro com o Yahoo Finance acessado através do Python.

Yahoo Finance é um portal e API que oferece uma gama excelente de dados de mercado sobre ações, moedas, criptomoedas, entre outros.  Ele possibilita a obtenção tanto de informações sobre diferentes empresas quanto de dados históricos de mercado e tudo isso sem nenhum custo.

Como acessar os dados do Yahoo Finance com Python?

Os dados do Yahoo Finace podem ser acessados facilmente com a biblioteca yfinance. Ela é simples de usar, retorna dados como dataFrames do Pandas e tem granularidade de até 1 minuto.

Instalação

Para instalar através do pip:

				
					pip install yfinance
				
			

Para instalar através do conda:

				
					conda install -c conda-forge yfinance
				
			

Baixando dados

Primeiro, a biblioteca precisa ser importada.

				
					import yfinance as yf
				
			

Para obter dados, é possível fazer download de um único ticker com o objeto Ticker ou de múltiplos tickers com o método download. Abaixo mostramos como acessar um único ticker usando como exemplo a Microsoft (MSFT):

				
					msft = yf.Ticker("MSFT")
				
			

Existem vários métodos que podem ser usados para obter dados do objeto retornado como mostrado na imagem abaixo.

No exemplo abaixo, selecionamos o método history. A maioria dos métodos tem significado bem intuitivo. No caso do history, ele retorna o histórico de dados de um ticker.  Ele pode ser usado com um período especificado como no exemplo, mas também tem várias outras opções como intervalo e ajustes.

				
					hist = msft.history('MSFT', start='2010-1-1', end='2020-1-1', auto_adjust=True)
print(hist)    
				
			

Esse é o resultado obtido para o código acima.

				
					                                 Open        High         Low       Close    Volume  Dividends  Stock Splits
Date                                                                                                        
2010-01-04 00:00:00-05:00   23.271758   23.636566   23.248957   23.522564  38409100        0.0           0.0
2010-01-05 00:00:00-05:00   23.446569   23.636574   23.286965   23.530170  49749600        0.0           0.0
2010-01-06 00:00:00-05:00   23.469362   23.621367   23.195757   23.385761  58182400        0.0           0.0
2010-01-07 00:00:00-05:00   23.279353   23.332556   22.944947   23.142551  50559700        0.0           0.0
2010-01-08 00:00:00-05:00   23.013348   23.469358   22.982947   23.302155  51197400        0.0           0.0
...                               ...         ...         ...         ...       ...        ...           ...
2019-12-24 00:00:00-05:00  152.061699  152.283797  151.714085  151.965149   8989200        0.0           0.0
2019-12-26 00:00:00-05:00  152.138975  153.268718  151.984477  153.210785  14520600        0.0           0.0
2019-12-27 00:00:00-05:00  153.963915  154.060480  152.776239  153.490784  18412800        0.0           0.0
2019-12-30 00:00:00-05:00  153.519732  153.548699  151.337481  152.167892  16348400        0.0           0.0
2019-12-31 00:00:00-05:00  151.376159  152.341753  151.067162  152.274155  18369400        0.0           0.0

[2516 rows x 7 columns]
				
			

Abaixo mostramos como especificar o período com intervalos de um mês usando o ticker da Google.

				
					
goog = yf.Ticker('goog')
data = goog.history(interval='1mo', start='2022-01-03', end='2022-07-03')
print(data)                            
				
			

Esse é o resultado obtido.

				
					                                                                  Open        High         Low       Close     Volume  Dividends  Stock Splits
Date                                                                                                         
2022-02-01 00:00:00-05:00  137.835007  152.100006  124.764503  134.891006  732650000        0.0           0.0
2022-03-01 00:00:00-05:00  134.479996  144.162506  125.860748  139.649506  637420000        0.0           0.0
2022-04-01 00:00:00-04:00  140.009995  144.043747  113.124252  114.966499  564940000        0.0           0.0
2022-05-01 00:00:00-04:00  113.906502  123.142998  102.208000  114.039001  717486000        0.0           0.0
2022-06-01 00:00:00-04:00  114.931503  119.398499  105.628548  109.372498  627132000        0.0           0.0
2022-07-01 00:00:00-04:00  108.336998  120.434998  104.760002  116.639999  638766600        0.0           0.0
				
			

Baixando múltiplos tickers simultaneamente

O processo para baixar dados de vários tickes simultaneamente é bem simples também. Abaixo mostramos em exemplo com os tickers da Google e Meta.

				
					data = yf.download(['GOOG','META'], period='1mo')
print(data.head())                                   
				
			
				
					            Adj Close                   Close                    High                     Low                    Open                Volume          
                  GOOG        META        GOOG        META        GOOG        META        GOOG        META        GOOG        META      GOOG      META
Date                                                                                                                                                  
2023-09-18  138.960007  302.549988  138.960007  302.549988  139.929993  303.600006  137.630005  297.799988  137.630005  298.190002  16233600  14234200
2023-09-19  138.830002  305.070007  138.830002  305.070007  139.175003  306.170013  137.500000  299.809998  138.250000  302.480011  15479100  15924400
2023-09-20  134.589996  299.670013  134.589996  299.670013  138.839996  308.059998  134.520004  299.429993  138.830002  305.049988  21473500  19379500
2023-09-21  131.360001  295.730011  131.360001  295.730011  133.190002  300.260010  131.089996  293.269989  132.389999  295.700012  22042700  21300500
2023-09-22  131.250000  299.079987  131.250000  299.079987  133.009995  305.380005  130.509995  298.269989  131.679993  299.299988  17348700  25369600                                
				
			

Existem várias outras informações que podem ser obtidas com o yfinance. Se você tem interesse, consulte a documentação oficial.

Imagem com IA Generativa – Dia 274

IA generativa img 274

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