O mercado financeiro sempre foi intensivo no uso de bases de dados, o que exige do profissional do setor conhecimentos abrangentes sobre diversas ferramentas de análise de dados. Pensando nisso, resolvemos reestruturar nosso tradicional curso de Gestão de Portfólios. Renomeado como Mercado Financeiro e Gestão de Portfólios, o curso agora possibilita tanto uma introdução ao mercado financeiro, quanto o conhecimento das principais técnicas de gestão de portfólio. Além disso, provê o aluno com o uso intensivo do R, uma das linguagens de programação mais utilizadas no mundo da ciência de dados.
Ao se inscrever no Curso de Mercado Financeiro e Gestão de Portfólios, o aluno terá acesso a três blocos de conteúdo: (1) Nivelamento em R; (2) Curso de Mercado Financeiro e Gestão de Portfólios; (3) Laboratórios. No nivelamento, o aluno terá acesso a uma introdução completa ao universo tidyverse
, pacotes do R especialmente construídos para análise de dados. Já nas 15 seções do Curso de Mercado Financeiro e Gestão de Portfólios, o aluno irá aprender tudo sobre os principais produtos e instituições financeiras, risco e retorno de ativos, bem como sobre como construir e administrar o seu portfólio com o R. Por fim, ficará disponível um módulo Laboratórios com a disponibilização de códigos super práticos para a construção de shiny apps.
O Curso se destina basicamente a profissionais do mercado financeiro em busca de novas ferramentas analíticas, professores de graduação e pós-graduação envolvidos no ensino e pesquisa de finanças, bem como estudantes de graduação e pós-graduação em busca de diferenciais competitivos para ingressar no mercado.
Não tem conhecimento de R? Não se preocupe! Ficará disponível durante todo o período do curso de Mercados Financeiros e Gestão de Portfólios o material da nossa introdução ao tidyverse (nivelamento em R). O nivelamento possibilita uma introdução qualificada ao R, mostrando o que há de mais avançado na linguagem para lidar com coleta, tratamento e apresentação de dados. O conteúdo do nivelamento inclui:
Nosso Curso é 100% adaptável à sua rotina de trabalho ou estudo. Você escolhe o melhor horário para assistir aos vídeos gravados e aprofundar o tema da videoaula replicando o exercício realizado pelo professor. Todos os códigos utilizados são disponibilizados para que o aluno possa aprender de forma autônoma. De forma a dar maior atenção aos alunos, o Curso será ofertada em turma com limitação no número de alunos. Os alunos inscritos no Curso terão acesso a todo o material digital e às videoaulas por 1 ano. Além disso, também terão acesso ao Clube do Código pelo mesmo período. Poderão tirar dúvidas com o professor em plataforma exclusiva, bem como terão acesso a mentorias on-line.
De forma a dar um suporte customizado aos alunos inscritos no Curso, o professor disponibilizará até seis mentorias exclusivas. Nessas mentorias, os alunos podem tirar dúvidas sobre remanescentes sobre o Curso.
Ao adquirir o plano premium dos nossos Cursos Aplicados de R, o aluno tem acesso por 12 meses ao Clube do Código, o espaço de compartilhamento de códigos da Análise Macro. Lá você tem acesso exclusivo a todos os códigos dos nossos exercícios já feitos de análise de dados, bem como aos novos exercícios do Clube. Uma ferramenta sem igual no mercado para você praticar o que aprendeu ao longo do seu Curso Aplicado de R!
Os alunos inscritos no Curso têm acesso a Certificado de 90 horas para fins de atividades complementares de cursos de graduação ou pós-graduação, bem como na sua empresa. Para ter acesso ao certificado, o aluno deverá entregar mais do que 70% das atividades propostas ao longo do Curso no prazo de 12 meses.
Os pacotes que usaremos nessa seção estão listados abaixo. Sempre que possível, colocaremos os pacotes utilizados logo no início de cada seção. É possível que algum dos pacotes listados tenha sido retirado sem prévio aviso do CRAN. Nesses casos, por favor, entre em contato com o nosso suporte.
require(UsingR)
require(tidyverse)
require(timetk)
library(forecast)
data("coldvermont")
# passar de graus Fahrenheit para graus Celsius
par(bg = "#e0dcdc")
coldvermont = round((coldvermont-32)/1.8,0)
plot(coldvermont)
A seguir, fazemos um gráfico com o pacote ggplot2
, convertendo nosso objeto coldvermont em um tibble
com o pacote timetk
.
# função do timetk que passa um objeto de ts para tibble
# Maneira clássica de exibir
cv = tk_tbl(coldvermont,
preserve_index = TRUE, rename_index = 'date')
ggplot(cv, aes(x=date, y=value))+
geom_line()
# Essa função é do ggplot2, mas é carregada com o forecast
# Uma outra forma de fazer o que foi feito no chunk anterior
# Maneira alternativa de exibir
# Não vai funcionar se já tiver rodado o chunk acima, pois aqui se necessita de uma TS
autoplot(coldvermont)
# O dataset tem uma clara sazonalidade.
# A fórmula abaixo demonstra isso.
ggseasonplot(coldvermont)
De modo a compreender melhor o nosso conjunto de dados coldvermont
, podemos agora fazer uso de algumas estatísticas descritivas, tais como as de medida central, amplitude e forma. Para começar, vamos verificar a média e a mediana do nosso conjunto de dados1. Enquanto a média do nosso conjunto de dados é -0.64, a mediana é 1. A mediana, por suposto, divide a amostra em dois, isto é, valores menores do que ela e valores maiores do que ela. Em termos gerais, podemos dividir a amostra em quantis, de forma a estabelecer medidas de posição, tais como:
# O na.rm é necessário, pois há missing values. Isso é comum em séries financeiras.
mean(coldvermont, na.rm=TRUE)
## [1] -0.641955
median(coldvermont, na.rm=TRUE)
## [1] 1
# Medidas de Posição
quantile(coldvermont, seq(0,1,0.25), na.rm=TRUE)
## 0% 25% 50% 75% 100%
## -33 -7 1 8 22
Observe que o primeiro quartil da nossa amostra vai até a temperatura -7 graus Celsius, enquanto o terceiro quartil vai até 8 graus Celsius. Uma outra medida importante para analisarmos o nosso conjunto de dados é a moda, isto é, o valor mais frequente que podemos encontrar. Não há uma função direta no R que faz isso, infelizmente. Mas podemos brincar um pouco para descobrir. Podemos usar a função table
de modo a tabular o número de vezes que cada temperatura ocorre na nossa amostra. Fazemos isso com o código abaixo. Para calculá-lo no R, podemos utilizar o código abaixo.
# visualizando a moda (e as demais frequencias)
par(bg = "#e0dcdc")
plot(table(coldvermont))
Fica fácil visualizar que o número -1 é a temperatura mais comum no nosso conjunto de dados. De modo a obter esse número, podemos utilizar a linha de código abaixo.
# extraindo a moda
as.numeric(names(which(table(coldvermont)==max(table(coldvermont)))))
## [1] -1
A amplitude ou variabilidade de um conjunto de dados é uma importante característica. Uma medida simples disso poderia ser o intervalo de um determinado conjunto de dados, que nada mais é do que a distância entre o mínimo e o máximo. Isto é,
c(min(coldvermont, na.rm=TRUE), max(coldvermont, na.rm=TRUE))
## [1] -33 22
Nosso conjunto de temperaturas varia assim de -33 a 22, sendo o valor mais comum -1, a média -0.64 e a mediana 1. Pode ser chato, ademais, toda hora ter de aplicar o argumento na.rm
nas funções. Nesse caso, podemos simplesmente retirar os valores faltantes do nosso conjunto de dados com o comando abaixo.
# "Resolve as NA": Informa ao R que se necessita apenas das linhas completas
coldvermont = coldvermont[complete.cases(coldvermont)]
# outra opção: drop_na()
Os dados sumarizados acima, podem, ademais, ser obtidos de forma direta com a função summary, como abaixo.
summary(coldvermont)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -33.000 -7.000 1.000 -0.642 8.000 22.000
A distância entre o menor e o maior valor de um conjunto de dados também pode ser visto de forma direta com a função range
, como abaixo.
range(coldvermont)
## [1] -33 22
diff(range(coldvermont))
## [1] 55
Já a diferença entre o primeiro e o terceiro quartil, denominado como Interquartile Range (IQR), pode ser obtido da seguinte forma.
IQR(coldvermont)
## [1] 15
Esses cinco valores de um conjunto de dados, ademais, podem ser visualizado de forma direta por meio de boxplots. No R, está implementado na função de mesmo nome, como abaixo.
par(bg = "#e0dcdc")
boxplot(coldvermont,
main='Boxplot das temperaturas minimas em Vermont',
horizontal=TRUE)
ggplot(cv, aes(value))+
geom_boxplot(fill='orange', colour='black', outlier.shape = 5)
Uma outra forma de visualizar a amplitude do nosso conjunto de dados é através de histogramas, como abaixo.
# Tanto os boxplot quanto os histogramas confirman a assimetria a esquerda.
hist(coldvermont)
ggplot(cv, aes(value))+
geom_histogram(bins=30, colour='black', fill='orange')
Também podemos ilustrar a distribuição da nossa variável através de um gráfico de densidade como abaixo.
par(bg = "#e0dcdc")
plot(density(coldvermont[complete.cases(coldvermont)]))
ggplot(cv, aes(value))+
geom_density(alpha=0.1, colour='black', fill='orange')
Através do boxplot, do histograma e do gráfico de densidade, a propósito, é possível ilustrar a forma como as observações de um determinado conjunto de dados se distribui. Elas podem apresentar, basicamente, três formatos: distribuição simétrica, uma assimetria à esquerda e uma assimetria à direita. No caso das temperaturas diárias mínimas de Vermont, vemos claramente uma assimetria à esquerda.2 É o caso típico quando a média é menor do que a mediana.3
# Visualizar a distribuição
par(mfrow=c(1,2), bg = "#e0dcdc") #environment de visualização!
boxplot(coldvermont, horizontal = T)
hist(coldvermont, freq=F)
lines(density(coldvermont), lwd=3)
Por fim, de modo a identificar melhor a variabilidade de um determinado conjunto de dados, podemos calcular a distância entre uma determinada observação e a média do mesmo. De forma a considerar esses desvios independentes do sinal, devemos somar os desvios ao quadrado, controlando pelo tamanho da amostra. Isto é:
\[ \Large s^2 = \dfrac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2. \]
De modo que, quanto mais espalhado for o conjunto de dados, maior será a sua variância. Podemos, ademais, padronizar a unidade de medida através da raiz quadrada da variância, o que dará o desvio-padrão. No R, isso é facilmente implementado conforme o código abaixo.
var(coldvermont)
## [1] 122.0113
sd(coldvermont)
## [1] 11.04587
Quanto maiores forem os valores para a variância, mais amplo será o espalhamento dos dados em relação à média. Já o desvio-padrão indica, em média, quanto cada valor se diferencia da média.
Com o código abaixo, nós baixamos dados referente a preços de carros.
price = as.numeric(read.csv2('http://bit.ly/2AcWxsr', header=T,
sep=',', dec='.')$price)
Pede-se, nesse contexto, que você:
0
head(price)
## [1] 21992 20995 19995 17809 17500 17495
1
summary(price)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3800 10995 13592 12962 14904 21992
2
IQR(price)
## [1] 3909.5
3
# Mais sobre a função table(): https://www.projectpro.io/recipes/is-table-function-r-useful
# "Table function (table())in R performs a tabulation of categorical variable and gives its frequency as output."
# which(): Give the TRUE indices of a logical object, allowing for array indices.
View(table(price))
as.numeric(names(which(table(price)==max(table(price)))))
## [1] 12995
4
par(bg = '#e0dcdc')
boxplot(price, horizontal = TRUE)
5
par(bg = '#e0dcdc')
hist(price, main='Histograma com assimetria à esquerda')
6
var(price)
## [1] 9749892
sd(price)
## [1] 3122.482
7
par(bg= '#e0dcdc')
plot(density(price))
8
# intervalo de preços mais provável
# ??
Importe os dados das ações do Bradesco, Gerdau, Vivo e Lojas Americanas (arquivos bbdc4.csv, ggbr4.csv, vivt4.csv e lame4.csv) para o R. Faça uma análise descritiva desses dados.
library(BETS)
library(quantmod)
library(Quandl)
library(tidyverse)
library(scales)
library(timetk)
# ecoseries for removido do CRAN. Era relacionado ao SIDRA
#library(ecoseries)
library(ipeadatar)
library(ggcorrplot)
getSymbols('^BVSP') #já cria o objeto diretamente sem precisar de = ou <-
## [1] "^BVSP"
ibov = tk_tbl(BVSP, preserve_index = TRUE, rename_index = 'date')
cambio = getSymbols("BRL=X",src="yahoo",from="2017-01-01",auto.assign=F) %>%
tk_tbl(preserve_index = TRUE, rename_index = 'date')
getSymbols('VIXCLS', src='FRED')
## [1] "VIXCLS"
vix = tk_tbl(VIXCLS, preserve_index = TRUE, rename_index = 'date')
Gold <- Quandl("LBMA/GOLD", order='asc', type='xts')
gold = tk_tbl(Gold, preserve_index = TRUE, rename_index = 'date')
cambio = BETSget(1, from='1999-06-01')
colnames(cambio) = c('date', 'cambio')
selic = BETSget(1178, from='1999-06-01', data.frame=TRUE)
colnames(selic) = c('date', 'selic')
# O chunk anteriormente estava com ecoseries
#risco <-series_ipeadata("40940", periodicity = "D")$serie_40940
#colnames(risco) = c('date', 'risco')
risco <- ipeadata(code = "JPM366_EMBI366") %>%
select(c(2,3))
colnames(risco) = c('date', 'risco')
data = inner_join(ibov, cambio, by='date') %>%
inner_join(vix, by='date') %>%
inner_join(gold, by='date') %>%
inner_join(selic, by='date') %>%
inner_join(risco, by='date') %>%
select(date, `BVSP.Adjusted`, 'cambio', 'VIXCLS', 'USD (AM)', 'selic', 'risco') %>%
rename(bvsp = `BVSP.Adjusted`, gold = 'USD (AM)', vix= 'VIXCLS') %>%
drop_na()
correlacao = cor(data[,-1])
ggcorrplot(correlacao, method='circle', lab=TRUE, lab_size = 3)
library(tidyverse)
library(Quandl)
library(quantmod)
library(timetk)
#library(lubridate)
library(scales)
library(BETS)
Pede-se que você escreva um código que coleta e visualiza os dados de desemprego dos Estados Unidos a partir do FRED Economic Data
.
getSymbols('UNRATE',src='FRED')
[1] “UNRATE”
UNRATE <- tk_tbl(
UNRATE,
preserve_index = TRUE,
rename_index = 'date'
)
ggplot(data = UNRATE)+
geom_line(aes(x=date,y=UNRATE), colour = "#009A9C", size=.8)+
scale_x_date(breaks = date_breaks("5 years"),
labels = date_format("%Y"))+
theme(plot.background = element_rect(fill = "#e0dcdc"))+
labs(y='Unemployment in US',
title='Desemprego nos Estados Unidos',
caption='Fonte: Federal Reserve Economic Data | FRED | St. Louis Fed | https://fred.stlouisfed.org')
Pede-se que você escreva um código que coleta e visualiza os dados de desemprego do Brasil a partir do Banco Central
.
desemprego = BETSget(24369, from='2012-03-01', to='2022-08-01')
desemprego = tk_tbl(
desemprego,
preserve_index = TRUE,
rename_index = 'date'
)
ggplot(data = desemprego)+
geom_line(aes(x=date,y=value), colour = "#009A9C", size=.8)+
theme(plot.background = element_rect(fill = "#e0dcdc"))+
labs(y='Desemprego no BR',
title='Desemprego no Brasil',
caption='Fonte: SGS - Sistema Gerenciador de Séries Temporais | v2.1 | Módulo público | https://www3.bcb.gov.br/sgspub/')
Pede-se que você escreva um código que coleta e visualiza os dados da cotação do bitcoin em relação ao dólar norte-americano.
bitcoin <- getSymbols(
"BTC-USD",
src="yahoo",
from="2010-01-01",
auto.assign = F) %>%
tk_tbl(preserve_index = TRUE, rename_index = 'date')
data.table::setnames(bitcoin,new=c('date','open','high','low','close','volume','adjusted'))
ggplot(data = bitcoin)+
geom_line(aes(x=date,y=adjusted), colour = "#009A9C", size=.8)+
theme(plot.background = element_rect(fill = "#e0dcdc"))+
labs(y='Bitcoin in USD',
title='Cotação do Bitcoin em dólares',
caption='Fonte: Yahoo Finance | https://finance.yahoo.com/')
Construa um gráfico de correlação entre a taxa de câmbio e o índice bovespa a partir de janeiro de 2019.
getSymbols('^BVSP')
[1] “^BVSP”
ibov <- tk_tbl(BVSP, preverse_index = TRUE, rename_index = 'date') %>%
data.table::setnames(new=c('date','ibov_open','ibov_high','ibov_low','ibov_close','ibov_volume','ibov_adjusted')) %>%
filter(date > '2019-01-01')
cambio = BETSget(1,from='2019-01-01')
colnames(cambio) = c('date','cambio')
data = inner_join(ibov,cambio, by = 'date') %>%
select(date,ibov_adjusted,cambio)%>%
drop_na()
correlacao <- cor(data[,-1])
ggcorrplot::ggcorrplot(correlacao, method='square', lab=TRUE, type = "lower", lab_size = 10)
Escreva um código que coleta a taxa básica de juros do Brasil e a inflação acumulada em 12 meses. Com as taxas em mãos, obtenha a taxa de juros real
e gere um gráfico com o pacote ggplot2
.
Nessa parte do nosso Curso de Mercado Financeiro e Gestão de Portfólios
, vamos fazer uma incursão sobre os diferentes tipos de mercados financeiros. De forma geral, vamos ver:
Uma vez que o aluno passe por essa seção, é esperado que o mesmo tenha uma ampla compreensão dos diversos aspectos do mercado financeiro nacional.4
Antes de entrarmos nesses temas, contudo, cabe relembrar alguns pontos importantes… Agentes descentralizados, dotados de alguma racionalidade e necessidades ilimitadas, escolhem diariamente o uso de recursos escassos entre fins alternativos. Tais decisões são incrivelmente facilitadas com o uso do que conhecemos por moeda. O economista John Hicks, a propósito, costumava definir moeda de uma forma bastante sutil: money is what money does. Ou seja, a moeda é definida pelas suas funções, que são: (i) servir de meio de troca; (ii) unidade de conta; (iii) reserva de valor.
A criação da moeda cumpre, nesse contexto, um papel fundamental em economias regidas pelo mercado. Sem a existência da moeda, estabelece-se o escambo: a troca direta de um bem A por um bem B. Isso implica na necessidade de uma coincidência de desejos delicada: o detentor do bem A (B) deve precisar do bem B (A) para que uma troca se complete. Com a intermediação da moeda, essa necessidade desaparece, possibilitando um aumento considerável das trocas a serem realizadas em uma economia. Sendo um pouco mais formal, “a troca com intermediação monetária separa as transações comerciais em operações de compra e venda, permitindo um sistema de trocas indiretas”.
Em termos contemporâneos, entretanto, o que conhecemos por moeda deve ser expandido a uma nova função: meio de pagamento. Em outras palavras, a moeda de uma economia consiste na totalidade de ativos possuídos pelo público que pode ser utilizada a qualquer momento para a liquidação de qualquer compromisso futuro ou à vista. Ao considerar a moeda de uma economia como um todo, devemos fazer uso do conceito de agregados monetários. Para chegar a eles, vamos considerar a emissão de 100 unidades monetárias por um Banco Central qualquer. A partir disso, segue que:
O chamado M1, nesse contexto, a soma entre depósitos à vista nos bancos comerciais com o papel moeda em poder do público, será o agregado monetário principal. Nele, por suposto, já há uma interessante função do sistema bancário: o de servir também como criador de moeda. Isto porque, dada uma quantidade de reservas próprias disponíveis nos bancos comerciais, apenas uma pequena parte dela será utilizada para fazer frente à necessidade de papel moeda dos agentes. Desse modo, os bancos comerciais podem literalmente multiplicar essas reservas, fornecendo empréstimos a outros agentes, mas registrando esses empréstimos como depósitos à vista. Assim, o M1 será sempre maior do que o papel inicialmente emitido pelo Banco Central.
A partir do M1 são construídos os demais agregados monetários, com base em depósitos a prazo, títulos privados e títulos públicos. Abaixo um resumo:
Os agregados monetários variam em ordem de liquidez, dos mais aos menos líquidos. Os agregados monetários são importantes para definir a capacidade de demanda dos agentes por bens e serviços. Para tal, é fundamental destacar o conceito de liquidez:
Isso conceito desdobrará em uma função importante do Banco Central, que é o controle de liquidez da economia, especialmente em situações de estresse (crash) do sistema financeiro. Quanto mais organizado, portanto, for o sistema financeiro de um país, mais rápido e com a menor perda possível será possível converter um depósito a prazo ou título de renda fixa, por exemplo, em moeda, para liquidar obrigações, assim como será maior a disponibilidade de crédito. Portanto, seu papel para o desenvolvimento da economia e do páis é fundamental. O Sistema financeiro não é um fim em si mesmo, mas exerce um papel no desenvolvimento societário.
O Sistema Financeiro Nacional (SFN) constitui-se, nesse contexto, em um conjunto de instituições e instrumentos financeiros, cujo objetivo final é o de transferir recursos dos agentes econômicos superavitários para os agentes deficitários. Em termos didáticos, podemos dividir o SFN em dois grandes blocos:
Essa divisão é meramente didática, pois hoje em dia as instituições bancárias e não-bancárias são mais flúidas, quase indistintas entre si, e agregam diversos tipos de função. Não se deve esperar que as instituições da vida real se conformem conforme essas segregações conceituais. A rigor, só pode ser considerado um banco aquele que cria moeda escritural. Ver mais detalhes aqui.
O que comumente se designa como mercado monetário pode ser definido como o espaço onde se desenvolvem as operações de curto e curtíssimo prazos, cujo objetivo principal é o controle da liquidez da economia e a formação da taxa básica de juros. A formação da taxa básica de juros ocorre por meio do Comitê de Política Monetária - COPOM, que se reune a cada 45 dias e definie a meta de taxa básica de juros a ser perseguida pelo mercado.
O Banco Central é a autoridade incubida de garantir a liquidez da economia, isto é, manter razoavelmente estável a relação entre disponibilidade de moeda e a necessidade das transações mercantis e financeiras do país. Em termos um pouco mais gerais, cabe aos Bancos Centrais:
Para isso, o Banco Central dispõe de alguns instrumentos, entre os quais as operações de mercado aberto (open market), os depósitos compulsórios e a taxa de redesconto. No primeiro são processadas operações de compra e venda de títulos públicos, com o intuito de marcar posição no mercado de reservas bancárias, definindo assim a taxa de juros de curto prazo. Com o segundo, o Banco Central interfe diretamente nas reservas dos bancos comerciais, disponibilizando mais ou menos recursos para que os mesmos possam fazer suas operações regulares. Por fim, com as taxas de redesconto, o Banco Central pune aquelas instituições que precisam de recursos para honrar seus compromissados em determinado período do tempo.
Instrumentos de Política | Metas Operacionais | Metas Intermediárias | Metas Finais de Política |
---|---|---|---|
|
|
|
|
Para realizar suas funções o Banco Central conta com instrumentos: - Operações de mercado aberto, no mercadod e reservas bancárias (as quais vão desaguar na taxa básica de juros) - Depósitos Compulsórios (importante ferramenta macroprudencial) - Taxas de Redesconto (Taxa punitiva imposta quando os bancos precisam de recursos para honrar as posições abertas em seus balanços)
O Comitê de Política Monetária do Banco Central é o responsável por definir a meta a ser perseguida para a taxa básica de juros no país. Instituído em 20 de junho de 1996, reuni-se periodicamente para avaliar o comportamento da liquidez da economia e a estabilidade do sistema financeiro. Nas palavras do próprio Banco Central,
A criação do Comitê buscou proporcionar maior transparência e ritual adequado ao processo decisório, a exemplo do que já era adotado pelo Federal Open Market Committee (FOMC) do banco central dos Estados Unidos e pelo Central Bank Council, do banco central da Alemanha. Em junho de 1998, o Banco da Inglaterra também instituiu o seu Monetary Policy Committee (MPC), assim como o Banco Central Europeu, desde a criação da moeda única em janeiro de 1999. Atualmente, uma vasta gama de autoridades monetárias em todo o mundo adota prática semelhante, facilitando o processo decisório, a transparência e a comunicação com o público em geral. Ver aqui.
Em particular, desde a publicação do decreto 3.088, de 21 de junho de 1999, o COPOM segue - ou deveria seguir - a sistemática instituída pelo regime de metas para inflação. Neste, o Banco Central calibra a taxa básica de juros em função do que ocorre com a taxa de crescimento do nível geral de preços. Assim, pressões inflacionárias devem ser combatidas com aumentos de taxa de juros e deflações, com reduções.
Destina-se à negociação das reservas bancárias entre os bancos, e entre estes e o Banco Central. É o espaço institucional onde o Banco Central executa a Política Monetária. É dividido em:
Assim como pessoas físicas mantém depósitos à vista, os bancos também possuem contas correntes no Banco Central, através das quais recebem débitos e créditos das demais instituições financeiras, do Tesouro Nacional e do próprio Banco Central. Em outras palavras, é por este tipo de conta que bancos realizam operações entre si e com o BACEN. A cada dia, haverá um conjunto de bancos que possui um saldo líquido das entradas e saídas positivo e outro grupo que apresenta saldo negativo. A priori, os saldos positivos e negativos dos bancos são zerados de modo natural através de transações interbancárias, já que a manutenção de um saldo líquido positivo representaria um custo de oportunidade. Entretanto, nem sempre é possível fechar o caixa somente no interbancário, sendo necessária a intervenção do Banco Central enquanto ofertante de reservas.
Assim sendo, o Banco Central vai atuar não só de modo a prover reservas a fim de evitar desequilíbrios ou pressões indesejadas no mercado interbancário, como ser precisamente através da calibragem da oferta às estimativas de demanda que o Banco Central vai estabelecer a taxa de juros de curto prazo da economia. O Banco Central atua diariamente no mercado de reservas de modo a acomodar a demanda dos bancos, matendo assim estável a taxa básica de juros. Para isso, ele realiza uma previsão dos fatores que levam a uma variação autônoma de reservas para guiar suas ações neutralizadoras e compensadoras diante dos movimentos das reservas, seja injetando ou retirando liquidez do mercado. O pressuposto é de que existe um nível de reservas bancárias que garante a estabilidade da taxa de juros e é este nível que deve ser perseguido pelas ações compensatórias.
Cabe ao Banco Central também sinalizar para o mercado os rumos da política monetária, buscando influenciar a estrutura a termo da taxa de juros da economia por meio da variável operacional básica, a taxa de juros de curto prazo. Isto porque, essa taxa é específica ao mercado de reservas bancárias. As taxas que de fato importam para consumidores e investidores são aquelas de mais longo prazo. Dessa forma, uma correta sinalização do que irá ocorrer com a taxa de curto prazo verberará pelas taxas de diferentes prazos, influenciando assim decisões de consumo e investimento, de acordo com os planos iniciais da autoridade monetária.
O Sistema Especial de Liquidação e Custódia (SELIC) opera com títulos públicos do Banco Central e do Tesouro Nacional. É um grande computador que tem por finalidade controlar e liquidar financeiramente as operações de compra e de venda de títulos públicos e manter sua custódia física e escritural. Os vários negócios com esses títulos são acertados diretamente entre os operadores das instituições financeiras credenciadas a operar no mercado monetário, que repassam as informações, via terminal, ao SELIC, para que ocorra a transferência do dinheiro e, a seguir, dos títulos.
Define-se, nesse contexto, como Taxa Selic “a taxa média ajustada dos financiamentos diários apurados no Sistema Especial de Liquidação e de Custódia (Selic) para títulos federais. Para fins de cálculo da taxa, são considerados os financiamentos diários relativos às operações registradas e liquidadas no próprio Selic e em sistemas operados por câmaras ou prestadores de serviços de compensação e de liquidação.” Ver BCB
Ajustes compensatórios feitos através do departamento de Open Market do BACEN, conforme :
A taxa de juros fixada na reunião do COPOM é a meta para a Taxa Selic (taxa média dos financiamentos diários, com lastro em títulos federais, apurados no Sistema Especial de Liquidação e Custódia), a qual vigora por todo o período entre reuniões ordinárias do Comitê. A taxa de juros de curto prazo, a taxa básica da economia, representa o custo do dinheiro no curto prazo. Isto é, o custo incorrido pelos bancos ao demandar reservas ao BACEN. Ela será dada, assim, pelo confronto entre oferta de reservas, definida pelas atuações do Banco Central nas operações compromissadas e definitivas e o saldo do fluxo de entrada e saída de dinheiro para e do sistema bancário, com a demanda por reservas dessas instituições, definida pelas suas necessidades de atender às exibilidades compulsórias e seus compromissos com o setor não monetário da economia.
O Banco Central atua sinalizando para as instituições quais serão as condições vigentes no mercado de reservas de acordo com uma meta para a taxa de juros de curto prazo (meta operacional), a par do fato de que o Banco Central é um ofertante monopolista no mercado de reservas.
Como dito anteriormente, apesar de ser monopolista, o Banco Central tem que levar em conta os desejos e expectativas dos bancos. Isto porque:
Uma vez definida a taxa básica de juros, ela se propaga pelo organismo econômico por meio de diferentes canais, como pode ser visto abaixo, até afetar a taxa de crescimento do nível geral de preços.
Em termos contemporâneos, inspirados no trabalho pioneiro de Knut Wicksell, dizemos que a política monetária é expansionista ou contracionista se, respectivamente, o juro real estiver abaixo ou acima da taxa de juros neutra. Taxa de juros neutra, de acordo com , é aquela consistente com a estabilidade da taxa de inflação ao longo do tempo. Variável não observável, que deve ser estimada e que depende de diversos fatores. Nesses termos, cabe ao Banco Central manter a taxa de juros real próxima à taxa de juros neutra, se o objetivo é controlar a inflação.
Pela equação de Fisher, sabemos que
\[ \Large i = r + \pi \] Onde, \(i\) é a taxa de juros nominal, \(r\) é a taxa de juros real e \(\pi\) é a taxa de inflação. Rearranjando os termos, definimos o juro real ex-post como:
\[ \Large r = i- \pi \] Para tornar a análise ex-ante, devemos substituir \(\pi\) pela expectativa de inflação, isto é, \(\pi^{e}\), de modo que o juro real ex-ante será dado por:
\[ \Large r = i-\pi^e \] Em outras palavras, o juro real ex-ante será dado, de forma aproximada, pela diferença entre o juro nominal e a expectativa de inflação. Essa é, em geral, a forma como o mercado calcula a taxa de juros real no país. Em termos exatos, o cálculo se dá pela fórmula:
\[ \Large (1+r_{t+1}) = (1+i_t)/(1+E_t\pi_{t+1}) \]
A soma de todas as operações de empréstimos para pessoas físicas e jurídicas realizadas por instituições financeiras corresponde ao que chamamos de mercado de crédito.5 De modo a fazer uma análise das operações de crédito do Sistema Financeiro Nacional, vamos inicialmente fazer uma divisão entre fluxo e estoque. Abaixo, importamos as concessões mensais de crédito. A seguir, estou usando o pacote Quandl
, porém, dada a instabilidade da API do Banco Central, pode ser necessário pegar os dados diretamente no site.
library(Quandl)
library(ggplot2)
library(scales)
Quandl.api_key('jmQq72iwi8-xfxC4cJDF') # Permite mais de 50 acessos dia
credito_total = Quandl('BCB/20631', order='asc')
ggplot(credito_total, aes(Date, Value/1000))+
geom_line(size=.8)+
labs(x='', y='R$ Bilhões',
title = 'Concessões mensais de crédito',
caption='Fonte: analisemacro.com.br com dados do BCB')+
scale_x_date(breaks = date_breaks("1 years"),
labels = date_format("%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title = element_text(size=15), plot.background = element_rect(fill = "#e0dcdc"))
### Importar IPCA
library(sidrar)
ipca = get_sidra(api='/t/1737/n1/all/v/2266/p/all/d/v2266%2013')
ipca = ts(ipca$Valor, start=c(1979,12), freq=12)
ipca = window(ipca, start=c(2011,03))
### Pacote Seasonal
### Ver youtube: https://youtu.be/J4udmMg0Kf0
library(seasonal)
concessoes = ts(data.frame(credito_total$Value, credito_pj$Value,
credito_pf$Value, credito_livre$Value,
credito_direc$Value), start=c(2011,03), freq=12)
### Deflacionar Séries
concessoes <- ipca[length(ipca)-1]*(concessoes/ipca)
colnames(concessoes) = c('Total', 'juridica',
'fisica', 'livre', 'direcionado')
matrix <- matrix(NA, nrow = nrow(concessoes), ncol=ncol(concessoes))
colnames(matrix) <- colnames(concessoes)
for(i in 1:ncol(concessoes)){
matrix[,i] <- final(seas(concessoes[,i]))
}
concessoes_sa = data.frame(time=credito_total$Date, matrix)
Isso mostra que o mercado de crédito brasileiro ainda é muito pequeno, apesar do crescimento até a crise de 2016.
Apesar da diminuição do crédito público, ainda é muito grande.
A taxa média de juros para o tomador final ainda é muito alta, pois o spread bancário é muito alto. Um dos fatores desse spread é o risco de inadimplência: não apenas a que ocorre mas também aquela que poderia ocorrer. Tudo isso vai para o custo do empréstimo. Uma vez que ocorra a inadimplência, é muito difícil reaver esse dinheiro.
spread_total = Quandl('BCB/20783', order='asc')
ggplot(spread_total, aes(Date, Value))+
geom_line(size=.8)+
scale_x_date(breaks = date_breaks("1 years"),
labels = date_format("%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title = element_text(size=15), plot.background = element_rect(fill = "#e0dcdc"))+
labs(x='', y='% a.a.',
title='Spread médio das operações de crédito - Total',
caption='Fonte: analisemacro.com.br com dados do BCB.')
inadimp_total = Quandl('BCB/21082', order='asc')
ggplot(inadimp_total, aes(Date, Value))+
geom_line(size=.8)+
scale_x_date(breaks = date_breaks("1 years"),
labels = date_format("%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title = element_text(size=15), plot.background = element_rect(fill = "#e0dcdc"))+
labs(x='', y='% a.a.',
title='Inadimplência da carteira de crédito - Total',
caption='Fonte: analisemacro.com.br com dados do BCB.')
ex-habit: retirando a parcela de créditos imobiliários. O individamento das famílias no Brasil é muito alto.
As operações do mercado de capitais são de médio e longo prazo, e de prazo indeterminado, envolvendo títulos representantivos do capital das empresas e de operações de crédito sem intermediação financeira. Essa subseção está baseada em Neto (2012).
O mercado de capitais é formado por
Ações constituem a menor parcela do capital social de regime jurídico de sociedade anônima. Elas podem ser classificadas de acordo com a natureza dos direitos e vantagens que conferem a seus titulares:
As opções sobre ações representam um direito de compra (ou venda) de ações a um preço previamente fixado e válido por um determinado período. Esse valor prefixado é conhecido como strike price. Uma opção de compra, por exemplo, garante ao titular o direito de adquirir no futuro um lote de ações a determinado preço. As opções são negociadas em Bolsas de Valores por meio de um pagamento de um prêmio. O prêmio é o valor do contrato de opção negociado. O prêmio é pago pelo investidor de uma opção para poder no futuro exercer o seu direito de comprar (call) ou vender (put) uma certa quantidade de ações a um preço fixado em contrato (o preço de exercício). Um investidor de uma opção de compra terá, assim, a expectativa de valorização da ação no futuro.
Debêntures são títulos de dívida de longo prazo emitidos por sociedades por ações e destinados, geralmente, ao financiamento de projetos de investimento ou para o alongamento do perfil de endividamento das empresas.
As letras de câmbio são títulos nominativos, com renda fixa e prazo determinado de vencimento. Através de uma letra de câmbio, o emitente do título transfere ao aceitante uma ordem de pagamento ao investidor, de certa quantia em determinada data.
O CDB é uma obrigação de pagamento futura de um capital aplicado em depósito a prazo fixo em instituições financeiras.
O mercado cambial é o segmento financeiro onde ocorrem operações de compra e venda de moedas estrangeiras conversíveis, i.e., que se verifica conversão de moeda nacional em estrangeira ou o caso contrário. Reúne-se nesse mercado todos os agentes econômicos que precisam realizar transações com o exterior.
Antes de mais nada, vamos olhar para a taxa de câmbio, aquela que mostra o preço relativo entre duas moedas. No R, podemos ver a taxa de câmbio R$/US$, através do pacote BETS
ou do pacote Quandl
, como abaixo.
library(Quandl)
library(ggplot2)
library(scales)
cambio = Quandl('BCB/3697', order='asc', start_date='1999-07-01')
ggplot(cambio, aes(x=Date))+
geom_line(aes(y=Value), size=.8, colour='darkblue')+
xlab('')+ylab('R$/US$')+
ggtitle('Taxa de Câmbio R$/US$')+
scale_x_date(breaks = date_breaks("1 years"),
labels = date_format("%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1))
A forma acima, comum no Brasil, é chamada de forma direta, que expressa o quanto um dólar é cotado em real. Mas há também a forma indireta, onde poderíamos dizer o quando um real é cotado em dólar. Ademais, as taxas de câmbio também se apresentam em sua forma real, onde se leva em consideração a inflação dos países, isto é, \(\theta = \frac{E\pi^{est}}{\pi}\) onde \(\theta\) é a taxa de câmbio, \(E\) é a taxa de câmbio nominal (vista acima), \(\pi^{est}\) é a inflação estrangeira e \(\pi\) é a inflação doméstica. Em outras palavras, o câmbio real nada mais é do que o câmbio nominal moderado pela razão entre a inflação estrangeira e a inflação doméstica.
cambio.real = Quandl('BCB/11752', order='asc', start_date='1999-07-01')
ggplot(cambio.real, aes(x=Date, y=Value))+
geom_line(size=.8, colour='darkblue')+
xlab('')+ylab('Índice')+
labs(title='Índice da Taxa de Câmbio efetiva real (IPCA)')+
scale_x_date(breaks = date_breaks("1 years"),
labels = date_format("%Y"))+
theme(axis.text.x=element_text(angle=45, hjust=1), plot.background = element_rect(fill = "#e0dcdc"))
A taxa de câmbio é uma variável endógena que depende de uma série de fatores para ser determinada. Essa determinação, por suposto, ocorre no mercado de câmbio, onde de forma geral bancos centrais podem atuar de modo a moderar a variabilidade da taxa. Isto é, bancos centrais tentam evitar variações muito bruscas, dado o efeito que isso possui sobre outras variáveis macroeconômicas, como a inflação. Se conseguem ou não depende de uma série de coisas, sendo a mais relevante a taxa de poupança. Sobre esse ponto ver, por exemplo, Uma Nota Sobre Desvalorização, Crescimento e a Relação entre Poupança Doméstica e Câmbio. Em geral, os bancos centrais abandonaram a ideia de taxa de câmbio fixa.
Há nos livros-texto de macroeconomia aberta e economia internacional uma divisão clássica entre regimes cambiais, indo desde regimes de câmbio fixo até o câmbio flutuante, passando pelo regime mais utilizado hoje em dia que o de flutuação suja, descrito acima. Em particular, no regime de câmbio fixo, o Banco Central se compromete com uma determinada taxa de câmbio, comprando ou vendendo moeda estrangeira de modo a manter aquela taxa fixa. Implícito, portanto, está o fato de que o Banco Central precisa ter um elevado nível de reservas, bem como deve aceitar perda de graus de liberdade na condução da política monetária. Sobre esse ponto talvez seja interessante ver as crises monetárias da década de 90. Uma referência interessante é (crises?).
library(quantmod)
usdcny = getSymbols("CNY=X",src="yahoo",
from=as.Date('2012-02-01'))
usdcny = `CNY=X`
autoplot(usdcny$`CNY=X.Close`)+
xlab('')+ylab('')+
ggtitle('Taxa de Câmbio Yuan/Dólar')
(Demonstrando que o câmbio na China não é fixo há muito tempo.)
De forma geral, é uma tarefa bastante difícil manter uma taxa de câmbio fixa durante muito tempo, dado que existe um enorme conjunto de variáveis que exerce influência sobre seu nível. Esse é o motivo simples para que regimes de câmbio fixo foram praticamente abandonados ao redor do mundo, principalmente em função das crises ocorridas na década de 90.
O regime cambial no Brasil é o do tipo flutuação suja desde o final da década de 90. Recentemente, entretanto, em vez de utilizar o estoque de reservas internacionais para moderar a variabilidade da taxa de câmbio, o Banco Central tem feito operações de swap, de modo a intervir no mercado. Swaps são contratos que envolvem troca de (posição de) risco e rentabilidade. Swaps de juros, por exemplo, envolvem troca de taxas pré-fixadas (conhecidas, portanto, ex-ante) por taxas pós-fixadas (sujeitas à oscilações, portanto). Já os swaps cambiais envolvem troca de variação cambial por taxas de juros DI (pós-fixadas), equivalente, nesse aspecto, à venda de dólar no mercado futuro, dado que o Banco Central oferece ao investidor proteção contra oscilações da moeda, tornando desnecessária a compra de dólar. Há ainda os swaps cambiais reversos, que envolvem operação contrária à descrita anteriormente (troca de taxas de juros por variação cambial), sendo equivalente, portanto, à compra de moeda no futuro, dado que quem assume o risco da variação cambial é o investidor. Tipicamente, o Banco Central faz venda de swaps cambiais quando há pressão por desvalorização do real frente o dólar, dado que visa ofertar proteção (hedge) aos investidores. O objetivo da operação, na prática, é deslocar a curva de oferta. O Banco Central ganha se a taxa de juros DI for superior à variação cambial. Já o swap cambial reverso ocorre em momentos de apreciação do real frente o dólar: daí a troca de juros por variação cambial, isto é, o Banco Central ganha se a variação cambial for superior à taxa de juros. Dito isto, vamos dar uma olhada nessas operações? A seguir, importamos os dados de estoque de swaps. Os dados estão disponíveis na nota à imprensa de mercado aberto do Banco Central. Ver em BCB.
url = 'https://www.bcb.gov.br/htms/infecon/demab/ma202003/NImprensa.zip'
download.file(url, destfile='NImprensa.zip', mode='wb')
unzip('NImprensa.zip')
O cupom cambial expressa a taxa de juro calculada pela diferença entre a taxa Selic (ou DI) em determinado período e a variação da taxa de câmbio verificada no mesmo período. Dito de outra forma, o cupom cambial irá medir a variação entre a taxa interna de juros da economia e a variação da taxa de câmbio. Por exemplo, se a taxa básica de juros for de 10,75% e a variação cambial do período for de 6,2%, o rendimento do cupom cambial será de
\[ \Large \frac{1,1075}{1,062} = 4,28 \nonumber \]
Observe que estamos utilizando o argumento na.rm
, de modo a ignorar os valores faltantes (missing values) dentro da nossa amostra. Essa seção é baseada em Heiss↩︎
Alguns livros se referem a isso como assimetria negativa.↩︎
Quando a média é maior do que a mediana, ocorre uma assimetria à direita. Já quando a média é igual a mediana, ocorre uma simetria.↩︎
Essas notas de aula estão baseadas principalmente em Neto (2012) e (cardim?).↩︎
Uma especificidade do mercado brasileiro é a existência de grande volume de crédito direcionado, concedido, em geral, por instituições estatais. Essa característica será abordada nessa parte do curso. Ocorre principalmente pelo Banco do Brasil, BNDES e Caixa Econômica.↩︎