"Capturar dados das estruturas a termo de algumas taxas de juros (ettj) brasileiras."
Project description
pyettj é uma biblioteca Python para capturar dados públicos das curvas de juros, curva a termo ou estrutura a termo da taxa de juros (ETTJ) da B3 (Brasil, Bolsa e Balcão).
Instalação
Basta acionar o comando abaixo:
pip install pyettj
Exemplo de Uso
Para caputar todos os dados disponíveis, basta informar a data:
import pyettj.ettj as ettj
data = '18/05/2021'
ettj_dataframe = ettj.get_ettj(data)
Caso deseje apenas uma curva específica, basta informá-la:
import pyettj.ettj as ettj
data = '18/05/2021'
ettj_dataframe = ettj.get_ettj(data, curva="PRE")
Se for necessário usar proxy, passe a informação à função:
Caso deseje apenas uma curva específica, basta informá-la:
import pyettj.ettj as ettj
import getpass
USER = getpass.getuser() #usar getpass
PWD = getpass.getpass("Senha de rede: ")
PROXY = "servidor"
PORTA = 4300
proxies = {"http":f'http://{USER}:{PWD}@{PROXY}:{PORTA}',
"https":f'https://{USER}:{PWD}@{PROXY}{PORTA}'}
ettj_dataframe = ettj.get_ettj(data, curva="PRE", proxies=proxies)
E para plotar o gráfico da curva, invoque a função de plotagem da biblioteca:
curva = "DI x pré 252"
ettj.plot_ettj(ettj_dataframe, curva, data)
Para coletar várias datas, chame a função listar_dias_uteis
informando as datas iniciais e finais. Assim, ela retornará somente os dias úteis neste intervalo.
import pandas as pd
de = '13/05/2021'
ate ='18/05/2021'
datas = ettj.listar_dias_uteis(de, ate)
todas_datas = pd.DataFrame()
for dat in datas:
dados=ettj.get_ettj(dat)
todas_datas=pd.concat([dados, todas_datas])
A variável todas_datas
possuirá todas as curvas em cada data do intervalo. Para identificar as datas, basta o comando:
todas_datas.Data.unique().tolist()
Você pode obter dados os dados da ANBIMA - Estrutura a Termo das Taxas de Juros Estimada disponível em: https://www.anbima.com.br/informacoes/est-termo/CZ.asp
import pyettj.modelo_ettj as modelo_ettj
parametros_curva, ettj, taxa, erros = modelo_ettj.get_ettj_anbima("15/09/2022")
A partir dos parâmetros estimados pela ANBIMA, você pode obter usar a equação de Svensson:
curva = parametros_curva.loc["PREFIXADOS", :].str.replace(",",".").astype(float)
beta1, beta2, beta3, beta4 = curva[:4]
lambda1, lambda2 = curva[4:]
t = 21/252 #em anos
taxa = modelo_ettj.svensson(beta1, beta2, beta3, beta4, lambda1, lambda2, t)
print(taxa)
Para coletar as taxas em diversas maturidades:
maturidades = [1,21,42,63,126,252,504,1008,1260,1890,2520]
taxas = []
for x in maturidades:
taxa = ettj_svensson(beta1, beta2, beta3, beta4, lambda1, lambda2, x/252)
taxas.append(taxa)
pd.DataFrame(np.array([taxas]), columns=[x/252 for x in maturidades]).T.multiply(100).plot()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.