A introdução da análise do mercado financeiro usando Python emergiu como uma ferramenta poderosa para profissionais do mercado. Sua versatilidade, simplicidade e comunidade ativa tornam-no ideal para automatizar tarefas, analisar dados e criar algoritmos de trading. Por fim qual é a vantagem de optar pelo Python?
- Python é ideal para o mercado financeiro:
- Porque é Fácil de aprender e usar, mesmo para iniciantes.
- Por causa de sua ampla biblioteca de ferramentas financeiras e científicas.
- Em terceiro lugar por ser Código aberto e por sua comunidade ativa.
- Porque é versátil para automatizar tarefas, analisar dados e desenvolver algoritmos.
Dessa maneira o que você pode fazer com Python no mercado financeiro:
- Automatizar tarefas:
- Coletar e analisar dados de mercado.
- Gerar relatórios e dashboards.
- Backtestar e otimizar estratégias de trading.
- Analisar dados:
- Visualizar e analisar dados históricos de mercado.
- Identificar padrões e tendências.
- Criar modelos preditivos para auxiliar na tomada de decisões.
- Desenvolver algoritmos de trading:
- Implementar diferentes estratégias de trading.
- Testar e otimizar algoritmos para melhor performance.
- Automatizar a execução de trades.
Para começar:
- Instale o Python: https://www.python.org/downloads/
- Aprenda o básico da linguagem: https://www.learnpython.org/
- Explore bibliotecas financeiras:
- Pandas: https://pandas.pydata.org/
- NumPy: https://numpy.org/
- Matplotlib: https://matplotlib.org/
Antes de tudo para usar o Python nessa Introdução no Mercado Financeiro, gostaria de mencionar a importância do gerenciamento de ambientes e bibliotecas.
O virtualenv é uma ferramenta poderosa que permite criar ambientes virtuais isolados para cada projeto.
Vantagens de usar o virtualenv:
- Isolamento de ambientes: Cada projeto Python terá seu próprio ambiente virtual, com suas próprias bibliotecas e configurações. Isso evita conflitos entre diferentes projetos e garante a reprodutibilidade do seu código.
- Gerenciamento de bibliotecas: O virtualenv permite instalar bibliotecas específicas para cada projeto, sem afetar outras instalações de Python no seu sistema. Isso facilita a organização e o controle das bibliotecas que você usa.
- Facilidade de compartilhamento: Você pode compartilhar o ambiente virtual do seu projeto com outros colaboradores, garantindo que eles tenham acesso às mesmas bibliotecas e configurações que você.
- Depuração facilitada: O virtualenv ajuda a identificar problemas de dependência de bibliotecas, facilitando a depuração do seu código.
Então a utilização do ambiente virtual é uma ferramenta importantíssima quando estamos desenvolvendo em Python.
Como usar o virtualenv:
- Instale o virtualenv:
pip install virtualenv
- Crie um ambiente virtual para o seu projeto:
virtualenv nome_do_seu_projeto
- Ative o ambiente virtual:
source nome_do_seu_projeto/bin/activate
- Instale as bibliotecas que você precisa no ambiente virtual:
pip install biblioteca1 biblioteca2
- Desative o ambiente virtual:
deactivate
Por exemplo um site que é muito visitado por conta das informações muito relevantes para quem opera no mercado finaneiro é o investing.com, na parte de calendário econômico, nessa página tem informações dos eventos mais importantes do dia e qual horário eles vão acontecer.
Assim sendo como fariamos para buscar essas informações utilizando o python.
Primeiramente vamos ter instalar quatro bibliotecas, que são elas pandas, resquests, beatutifulsoup e lxml, para isso executamos o seguinte comando:
pip install pandas requests beautifulsoup4 lxml
Em seguida vamos escrever o seguinte codigo:
import requests
import pandas as pd
import re
from bs4 import BeautifulSoup
# Url a ser acessada:
url = 'https://br.investing.com/economic-calendar/'
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.content, "html.parser")
tabela = soup.find('table', id='economicCalendarData')
nomes_colunas = [cabecalho.get_text() for cabecalho in tabela.find('tr').find_all('th')]
# Inicializar listas para armazenar dados das linhas
linhas_dados = []
# Ignorar as três primeiras linha, pois é o
# cabeçalho que se repete e a terceira linha é a data do dia.
linhas = tabela.find_all('tr')[3:]
# Extrair dados das linhas
for linha in linhas:
data_cols = linha.find_all(['th', 'td'])
data = [col.get_text() for col in data_cols]
# Contar o número de ocorrências de
# 'grayFullBullishIcon' na coluna 'Import.'
import_col = data_cols[2] # Índice da coluna 'Import.' (começando do zero)
num_full_bullish_icons = len(re.findall(r'grayFullBullishIcon',
str(import_col)))
# Substituir o conteúdo da coluna 'Import.'
# pelo número de ícones encontrados
data[2] = num_full_bullish_icons
pais_span = data_cols[1].find('span')
if pais_span:
pais = pais_span.get('title')
else:
pais = None
# Adicionar o país à lista de dados
data.insert(1, pais)
linhas_dados.append(data)
# adicionar a coluna pais criada na base da dados
nomes_colunas.insert(1, 'País')
# Criar DataFrame usando pandas
df = pd.DataFrame(linhas_dados, columns=nomes_colunas)
Após executar o codigo acima, por exemplo no dia de hoje (27/03/2024) ele nos retornou um dataframe com 9 coluna e 63 linhas, com mostra a imagem a seguir:
No entanto, um olhar mais atento verifica-se que os dados ainda tem algumas inconsistencias, por exemplo a última coluna não trás qualquer informação relevante;
Por conseguinte, podemos exclui-la, e para isso no final do código inserir a seguinte linha:
df = df.drop(df.columns[-1], axis=1)
Visto que na coluna Events podemos observar os caracteres “\n” no inicio e no fim dos valores de cada linha. Para remover esses caracteres, basta você executar a seguinte linha no final do código:
df['Evento'] = df['Evento'].str.strip()
Finalmente terminamos nosso dataframe da seguite forma:
Portanto, com esse mini projeto, agora temos em nossas mãos um pipeline de notícias relevantes que podem influenciar o mercado, tanto positiva quanto negativamente. Você pode enviar essas informações para uma base de dados para estudos posteriores, como entender o impacto das notícias no mercado em um determinado dia.
Deixe um comentário
Você precisa fazer o login para publicar um comentário.