Simulação de Monte Carlo

Simulação de Monte Carlo

Em artigo anterior, sobre processos estocásticos, fizemos uso de uma poderosa ferramenta computacional, frequentemente utilizada em finanças para fazer simulações. Naquele artigo simulamos cinco realizações de caminhos de um processo estocástico, cada um com 500 passos a frente. Esta técnica é conhecida como Simulação de Monte Carlo – SMC e será abordada no presente artigo.

Neste artigo também iremos introduzir, no corpo do texto, os códigos em linguagem R utilizados para fazer as simulações, aumentando a didática de nossos artigos. A linguagem R é uma das preferidas para a modelagem estatística, é uma das linguagens de ciência de dados que vem ganhando muitos adeptos e, por conseguinte, é amplamente utilizada pelo mercado financeiro. E claro, é uma das preferidas aqui do CF também.

Nosso problema será simular a posição de um portfólio composto por uma posição comprada em uma ação PETR4 e uma put PETRV17. A opção de venda (put) tem preço de exercício em R$ 16,92, data de expiração em 15/10/2018 e é do tipo europeia. Ao final do pregão do dia 21/09/2018 a ação PETR4 fechou cotada a R$ 20,14 e a put em R$ 0,12. A partir desta data até o dia da expiração da opção haverão 16 dias de pregão, que será nosso horizonte de simulação.

Para melhoria da didática do texto e também para simplificação do problema, manteremos algumas variáveis necessárias para a precificação de opções constantes ao longo do período de análise, são elas:

  • Volatilidade: Será calculada a volatilidade implícita da opção da data de compra do portfólio, 21/09/2018, e será mantida constante a partir daí para fins de precificação na SMC;

  • Taxa de juros: constante no valor de 6,5 %a.a. tem termos contínuos;

  • Taxa de dividendos: suposto igual a zero.

Simulação de Monte Carlo

Para realizar uma SMC de um ativo financeiro deve-se primeiramente estabelecer uma distribuição de probabilidades que os retornos deste ativo deve seguir. Em nosso exemplo, utilizaremos a distrbuição normal para os retornos logarítimicos da ação PETR4, em linha com o clássico modelo Black & Scholes, certamente existem diversas variantes que se ajustam melhor a realidade dos mercados, entretanto este é o modelo mais conhecido e base de todos os demais.

Uma vez escolhida a distribuição dos (log) retornos, tem-se de escolher valores para a média e variância desta distribuição. A média dos retornos iremos tirar do histórico da ação, o retorno médio diário dos último ano. A variância da distribuição será encontrada a partir da volatilidade implícita da opção na data de compra do portfólio. A função utilizada para encontrar esta volatilidade retorna um valor em termos anuais, portanto, conforme visto no artigo sobre processos estocásticos devemos reescalar uma volatilidade anual para diária, e isto é obtido fazendo a divisão por \(\sqrt{252}\), onde temos 252 dias úteis em 1 ano.

Desta forma é possível fazer a simulação dos log-retornos da ação para cada um dos dias a frente, até a data de exercício da opção, 15/10/2018. Estes retornos são acumulados e o preço simulado da ação PETR4 em uma data intermediária é o preço de compra vezes o retorno acumulado até então.

Faremos 1.000 simulações destas, gerando caminhos possíveis de preços para a ação. É necessário fazer muitas simulações para termos uma boa ideia da distribuição dos preços na data final, não é raro serem feitas mais de mil simulações, as vezes até dez mil podem ser necessárias.

Uma vez gerados todos os caminhos simulados do preço do ativo objeto, podemos então precificar a put com base nestes preços simulados e as outras variáveis necessárias para se precificar uma opção europeia. Assim teremos também todos os caminhos de preço para a opção até sua data de exercício.

O valor de nosso portfólio, em qualquer ponto do intervalo de tempo em análise, será a soma do preço da ação com o preço da opção e será possível verificar o efeito de proteção contra quedas do preço do ativo objeto a compra da put tem no portfólio.

Cabe ressaltar aqui que o preço da opção não é simulado, não diretamente. Como a opção é um instrumento derivativo o seu preço “deriva” do preço do ativo objeto, este sim que é simulado. Uma vez que tenhamos o preço da ação, dadas nossas premissas de precificação, podemos calcular o prêmio da opção com base no modelo Black & Scholes.

Implementação em R

Conforme comentado, utilizamos aqui no CF a linguagem de programação R para realizar nossas atividades que envolvam métodos quantitativos em finanças. Abaixo irei apresentar o código utilizado, trecho a trecho e o resultado obtido ao final.

Primeiramente, no R, devemos carregar em nossa sessão de trabalho os pacotes que serão utilizados ao longo do código. Os pacotes funcionam como extensões ao R base, nestes pacotes encontramos diversas funções já programadas por outras pessoas que facilitam (e muito!) a nossa codificação.

library(tidyverse)
library(ggthemes)
library(tidyquant)
library(RQuantLib)

O pacote RQuantLib, por exemplo, possui já implementado dentro dele funções para fazer a precificação de opções europeias, sem que se tenha que implementar o modelo manualmente. Como a intenção deste artigo não é explicar o modelo Black & Scholes, vamos abstrair esta parte e simplesmente chamar uma função que nos retorna o valor da opção dadas as variáveis de entrada.

Em seguida iremos definir algumas de nossas variáveis, como o ticker da ação para buscar seus dados históricos através da função tq_get() do pacote tidyquant e calcular os retornos logarítimicos e tirar sua média, o preço e data de exercício da opção e também iremos relacionar os dias de negócio entre a data de compra e vencimento.

acao <- "PETR4.SA"
p_exer <- 16.92
d_exer <- as.Date("2018-10-15")
d_atual <- as.Date("2018-09-21")
dias <- seq(d_atual, d_exer, by = 1)
dias <- dias[isBusinessDay("Brazil", dias)]
nsims <- 1000
ndias <- length(dias) - 1
sim_nomes <- paste0("sim", 1:nsims)

# Carregar os precos historicos da acao
p_hist <- tq_get(acao, from = d_atual - years(1), to = d_atual + days(1)) %>% 
  filter(volume != 0.0)
ret_hist <- p_hist %>% 
  tq_mutate(select = adjusted,
            mutate_fun = periodReturn,
            period = "daily",
            type = "log",
            leading = FALSE,
            col_rename = "log_ret") %>% 
  na.omit()
rf <- log(1 + 0.065)
div <- 0
S0 <- last(ret_hist$adjusted)
P0 <- 0.12
mi <- 252 * mean(ret_hist$log_ret) # retorno medio em termos anuais
sigma <- EuropeanOptionImpliedVolatility("put", P0, S0, p_exer, div, rf, 
                                         (ndias + 1) / 252, 0.30)

Com o código acima obtemos basicamente todos os dados com os quais poderemos implementar a simulação de Monte Carlo. Entretanto, para realizar as simulações, necessitamos especificar mais algumas funções customizadas para nossas necessidades.

Primeiro iremos especificar uma função que retorna uma única simulação de log-retornos acumulados em uma coluna de dados, esta função é chamada de mc_sim_fun. A segunda função necessária é a função de precificação da opção europeia. Por padrão, a função do pacote RQuantLib EuropeanOption() retorna uma lista com o valor da opção, mas também todas as suas gregas. Também de forma um tanto quanto estranha, esta função retorna o valor zero na data de exercício, mesmo que a opção esteja In-The-Money, portanto é necessário modificar este comportamento.

# Funcao para realizar uma simulacao
mc_sim_fun <- function(valor_i, N, media, volat){
  med_d <- media / 252
  volat_d <- volat / sqrt(252)
  ans <- tibble(c(valor_i, rnorm(N, med_d - (volat_d^2 / 2), volat_d))) %>% 
    `colnames<-`("log_ret") %>%
    mutate(ret_ac = cumsum(log_ret)) %>% 
    select(ret_ac)

  return(ans)
}

# Funcao para precificar uma opcao europeia
eur_option <- function(type, underlying, strike, dividendYield, riskFreeRate, 
                       maturity, volatility) {
  if (maturity == 0.0) {
    ans <- switch(type,
                  put = max(strike - underlying, 0),
                  call = max(underlying - strike, 0))
    return(ans)
  }

  ans <- EuropeanOption(type = type,
                        underlying = underlying,
                        strike = strike,
                        dividendYield = dividendYield,
                        riskFreeRate = riskFreeRate,
                        maturity = maturity,
                        volatility = volatility)$value
  return(ans)
}

Uma vez com os dados obtidos e as funções auxiliares programadas, podemos passar a SMC propriamente dita. Aqui vamos estabelecer o número de simulações (1.000), calcular um data frame com os log-retornos acumulados e então calcular o preço da ação para cada dia e simulação realizados. O preço da ação na data \(t\) será \(S_t=S_0 e^{r_t}\), onde \(r_t\) é o log-retorno acumulado até a data \(t\).

Após termos todos os preços do ativo objeto, passamos a computar qual seria o preço da opção, \(P_t\), naquelas condições. O valor do portfólio é dado pela soma destes dois preços (lembre-se, nosso portfólio é composto por uma ação e uma opção de venda).

# Simulacao de Monte Carlo
# Valores Iniciais
inic <- rep(0, nsims) 
set.seed(12345)
ret_ac_mc <- map_dfc(inic,
                     mc_sim_fun,
                     N = ndias,
                     media = mi,
                     volat = sigma)

precos_acao <- (S0 * exp(ret_ac_mc)) %>% 
  set_names(sim_nomes) %>% 
  mutate(anos_exp = (ndias:0) / 252) %>% 
  gather(key = sims, value = St, -anos_exp)

# Evolucao do Portfolio
port_mc <- precos_acao %>% 
  mutate(Pt = map2_dbl(St, anos_exp, 
                       ~eur_option(type = "put",
                                   underlying = .x,
                                   strike = p_exer,
                                   dividendYield = div,
                                   riskFreeRate = rf,
                                   maturity = .y,
                                   volatility = sigma)),
         port_valor = Pt + St,
         data = rep(dias, nsims))
head(port_mc)
##     anos_exp sims       St         Pt port_valor       data
## 1 0.05952381 sim1 20.14000 0.10666291   20.24666 2018-09-21
## 2 0.05555556 sim1 20.56213 0.06610065   20.62823 2018-09-24
## 3 0.05158730 sim1 21.08354 0.03486500   21.11841 2018-09-25
## 4 0.04761905 sim1 21.01296 0.03001788   21.04297 2018-09-26
## 5 0.04365079 sim1 20.69410 0.03266826   20.72677 2018-09-27
## 6 0.03968254 sim1 21.14278 0.01516756   21.15794 2018-09-28

O data frame port_mc contém todas as informações da SMC de nosso portfólio. Contém as datas desde o dia da compra até a data de vencimento da opção e contém todos os caminhos de \(S_t\), \(P_t\) e do portfólio. Vamos plotar os resultados obtidos para a evolução apenas da ação, primeiramente.

brk <- round(sort(c(p_exer, seq(min(port_mc$St),
                                max(port_mc$St),
                                length.out = 5))),
             digits = 2)
ggplot(port_mc, aes(x = data, y = St)) + 
  geom_line(aes(color = sims)) +
  geom_hline(yintercept = p_exer, color = "red") +
  guides(color = FALSE) +
  labs(title = "Simulações do Valor da Ação",
       x = "data",
       y = "Valor (R$)") +
  scale_y_continuous(breaks = brk) +
  scale_x_date(date_breaks = "2 days", date_labels = "%d") +
  scale_color_viridis_d() +
  theme_economist_white()

plot of chunk gr_acao

Podemos verificar pela figura acima que a ação, pela nossa SMC, deve fechar na maioria dos caminhos simulados acima do preço de exercício da put (linha vermelha). Entretanto existe uma menor probabilidade de, até a data de vencimento, o preço da ação cair abaixo do strike desta opção.

Podemos inferir esta probabilidade através do número de caminhos que terminaram em preço da ação abaixo do valor de referência. O custo de proteção contra este risco é o prêmio por nós ao comprarmos a put. O código para esta inferência está abaixo.

p_baixo <- port_mc %>% 
  filter(data == d_exer) %>% 
  summarise(num_baixo = sum(St < p_exer)) %>% 
  as.double()
prob <- p_baixo / nsims

Este cálculo nos mostra que em 82 caminhos simulados do preço de PETR4, este terminou abaixo do preço de exercío da opção PETRV17, ou seja, uma probabilidade de 8.2%.

Para nos precavermos desta possível queda de preço e garantir um valor mínimo de nosso portfólio até a data de 15/10/2018, podemos comprar uma opção de venda, com preço de exercício no valor que desejamos e então o portfólio passa a ser composto pela ação e também pela opção. Caso na data de vencimento o preço da ação seja menor que o preço de exercício da put, esta opção estará ITM e pode ser exercida pelo valor da diferença entre os preços, ou seja, nos garantindo que nosso portfólio estará avaliado em R$ 16,92.

Esta dinâmica pode ser verificada pela figura abaixo, que agora apresenta o valor do portfólio completo, ação mais opção. Verificamos que, de fato, no dia 15/10/2018 nosso investimento não estará em situação pior que o preço garantido pela compra da put.

brk <- round(sort(c(p_exer, seq(min(port_mc$port_valor),
                                max(port_mc$port_valor),
                                length.out = 5)[-1])),
             digits = 2)
ggplot(port_mc, aes(x = data, y = port_valor)) + 
  geom_line(aes(color = sims)) +
  geom_hline(yintercept = p_exer, color = "red") +
  guides(color = FALSE) +
  labs(title = "Simulações do Valor do Portfolio",
       x = "data",
       y = "Valor (R$)") +
  scale_y_continuous(breaks = brk) +
  scale_x_date(date_breaks = "2 days", date_labels = "%d") +
  scale_color_viridis_d() +
  theme_economist_white()

plot of chunk gr_port

Ou seja, ao custo de 0.6% do preço da ação, compramos uma proteção contra uma queda de preços com probabilidade de 8.2%.

Esta é apenas uma (simples) aplicação das inúmeras possíveis que a Simulação de Monte Carlo possui no mundo das finanças. A SMC é uma poderosa ferramenta para avaliação e controle de risco de grandes portfólios, com centenas ou milhares de ativos, onde nem sempre consegue-se aferir medidas de retorno esperado ou de risco de mercado de forma analítica.

Posted by Rafael Bressan in Derivativos, Programação, 0 comments
Processos Estocásticos para Finanças: uma introdução

Processos Estocásticos para Finanças: uma introdução

Neste artigo abordaremos um assunto técnico, mas muito utilizado e de fundamental importância para a precificação de instrumentos derivativos. Será apresentado o conceito de processos estocásticos – PE, e sua aplicação no mundo das finanças.

Um processo estocástico é a evolução temporal de uma determinada variável de interesse que pode assumir valores aleatórios em cada ponto no tempo. Em outras palavras, o caminho que a variável segue ao longo do tempo evolui de maneira incerta. Estes processos podem se dar em tempo discreto ou em tempo contínuo. Processo em tempo discreto são aqueles onde o valor da variável pode se alterar somente em intervalos pré-definidos de tempo, por exemplo ao final do dia. Em processos em tempo contínuo, o valor de nossa variável está constantemente em mudança, de forma aleatória seguindo alguma distribuição de probabilidades.

Estes processos são muito importantes em finanças pois, é amplamente aceito que a evolução do preço de ativos financeiros pode ser modelado por um PE em tempo contínuo, sendo este modelo portanto, a base para a teoria de precificação de ativos e da qual os derivativos fazem extenso uso. Aprender sobre a evolução temporal do preço de uma ação através de um processo estocástico é o primeiro passo para saber como atribuir um preço a uma opção sobre esta ação, por exemplo.

Deve ser notado também que apesar de o preço dos ativos serem observados apenas em intervalos discretos de tempo (apenas quando existe transação) e assumirem valores também discretos (múltiplos de um centavo), o preço e sua evolução estão ocorrendo continuamente, nossas observações que são discretas. Desta forma os processos em tempo contínuos são ideais para este tipo de modelagem.

Processos de Markov

Uma primeira definição de deve-se fazer para estudar PE aplicados a evolução do preço de ações é o conceito de processo de Markov. Este tipo de processo é tal que o histórico do processo que o levou até seu estado atual, é irrelevante para a previsão de seu estado futuro. Ou seja, toda a informação da história do processo já está contida no seu valor atual. Quando consideramos que preços de ativos seguem um processo de Markov, estamos assumindo válida pelo menos a forma fraca de mercados eficientes.

Uma implicação desta suposição, verificada empiricamente, é que não se pode obter lucros apenas seguindo padrões históricos do preço e extrapolando-os no futuro. Outra, mais importante para nossos processos, é que as distribuições de probabilidade que a variável aleatória segue em cada ponto no tempo são independentes.

Movimento Browniano

Suponha um processo de Markov, que para fins de simplificação consideraremos em tempo discretos. Se a distribuição de probabilidade para o próximo incremento no valor do processo for uma Normal com média zero e variância unitária, podemos representar este incremento por \(\phi(0, 1)\). Como este é um processo de Markov, o segundo incremento será independente do primeiro e terá novamente a mesma distribuição de probabilidade. Qual seria então, a partir do período inicial até o segundo período, a distribuição de probabilidade dos possíveis valores de nosso hipotético processo? A reposta é a soma de duas normais \(\phi(0, 1)\) que resulta em \(\phi(0, 2)\). Se assim continuarmos a fazer previsões para T períodos a frente, nossa distribuição terá densidade \(\phi(0, T)\).

Para tempos discretos, \(T\in\mathbb{Z}\) este é o processo do passeio aleatório (Random Walk), entretanto para tempo contínuo quando \(T\in\mathbb{R}\) com incrementos acontecendo em intervalos de tempo infinitesimalmente pequenos, este é o Movimento Browniano – MB, que também é largamente conhecido como processo de Wiener.

plot of chunk brownian_plot

A figura acima mostra 5 realizações de um mesmo processo estocástico com média zero e variância unitária. É importante frisar que o processo que gerou as cinco séries é exatamente o mesmo, sendo elas tão distintas umas das outras ou não. Esta é uma importante característica dos processos estocásticos nas aplicações reais, o que nós observamos é apenas uma realização do processo, dentre as infinitas possíveis.

Definição

Agora que já foi passada a intuição sobre processos estocásticos, pode-se partir para definições mais formais sobre estes processos. Vamos adotar a notação do cálculo para tanto, e generalizar nosso MB possibilitando-o que tenha média diferente de zero \(\mu\) e variância qualquer \(\sigma^2\), mantendo estas constantes ao longo do tempo, entretanto. Desta forma um movimento Browniano com deriva pode ser descrito através da seguinte equação diferencial estocástica – EDE:

$$dX_t = \mu dt + \sigma dB_t$$

onde \(dB_t\) é nosso MB padrão em um intervalo de tempo infinitesimal, \(dt\).

O processo \(X_t\) possui uma taxa de deriva (média instantânea) igual a \(\mu\) e volatilidade instantânea igual a \(\sigma\). Quando um PE possui deriva igual a zero, como nosso MB padrão, o valor esperado deste processo para qualquer período futuro será zero. Este fato deixa de ser verdade no processo generalizado, com taxa de deriva diferente de zero. Neste caso o processo evoluirá seguindo uma taxa crescente (se \(\mu > 0\)) ou decrescente (se \(\mu < 0\)). Assim é possível, a partir de um MB padrão, modelar outros PE que possuam tendência temporal e variâncias diferentes.

Movimento Browniano Geométrico

Apesar de o processo \(X_t\) ser bastante flexível e cobrir uma grande gama de usos, ele ainda não é adequado para modelar o preço de ativos, e isto se dá em função de o processo de Wiener, mesmo com deriva positiva, poder atingir valores negativos com probabilidade maior que zero. Isto implicaria na possibilidade do preço de uma ação ser negativo, algo que obviamente não ocorre. Além desta impossibilidade, existe um outro empecilho para se utilizar o MB para modelar o processo de preços, e este é a deriva constante \(\mu\) com relação ao preço da ação.

A deriva pode ser interpretada como o valor esperado do retorno da ação em um dado período de tempo. Este retorno esperado ele é pode ser constante em termos percentuais (em um modelo simplificado), mas não em termos absolutos! Ou seja, dependendo do preço da ação, R$ 1,00 ou R$ 100,00, a deriva \(\mu\) deve ser diferente para que em termos percentuais a relação seja constante.

A solução para estes dois problemas é modelar o preço como um processo estocástico conhecido como Movimento Browniano Geométrico. Ele difere do MB padrão pois assume que o logaritmo da variável aleatória possui distribuição Normal. O MBG é a resolução para a seguinte EDE:

$$dX_t = \mu X_t dt + \sigma X_t dB_t$$

Veja que este é basicamente o mesmo processo MB, porém a deriva, termo que multiplica \(dt\), varia linearmente com o valor do processo (\(\mu X_t\)) assim como a volatilidade instantânea (\(\sigma X_t\)).

A solução para esta EDE, para um valor inicial qualquer de \(X (X_0 > 0)\) é dada por:

$$X_t = X_0\exp\left(\left(\mu-\frac{\sigma^2}{2}\right)t+\sigma B_t\right)$$

A variável aleatória \(X\) segue um MB ao longo de uma trajetória exponencial. É fácil verificar que, por ser exponencial, \(X_t\) nunca terá valor negativo.

Esta é uma forma conveniente de representar a evolução de preços de um ativo pois naturalmente surge o conceito de retornos logarítmicos. O log-retorno de \(X\) é dado por \(r_t=\ln(X_t/X_0)\) de onde inferimos que se o processo de formação de preço de um ativo segue um MBG, então seus log-retornos serão normalmente distribuídos com média \(\mu-\frac{\sigma^2}{2}\) e volatilidade \(\sigma\) em uma unidade de período considerado. Se escalarmos o período de tempo considerado para \(T\), temos então que os retornos logarítmicos do ativo \(X\) seguem a seguinte distribuição normal:

$$r_T \sim\phi\left(\left(\mu-\frac{\sigma^2}{2}\right)T, \sigma^2T\right)$$

Abaixo apresentamos 5 realizações de um MBG com valor de deriva \(\mu = 0,6\% a.p.\) e variância \(\sigma^2=1\% a.p.\).

plot of chunk mbg_plot

O Movimento Browniano Geométrico aqui demonstrado serve de base para o famoso modelo Black & Scholes de precificação de opções, o qual assume que o ativo subjacente à opção (por exemplo, a ação de uma empresa) tem seu preço formado por um processo MBG.

Posted by Rafael Bressan in Derivativos, 0 comments
Tecnologia no Mercado Financeiro

Tecnologia no Mercado Financeiro

Que a tecnologia está mudando o status quo no mundo, todos já sabemos. O aumento vertiginoso do processamento e armazenamento computacional está causando impactos disruptivos em várias esferas, das mais diversas áreas do conhecimento e da vida. Com todo este potencial tecnológico, alguns conceitos (antigos, porém na “moda”) como inteligência artificial e machine learning estão rondando a cabeça de muitos gestores de negócio mundo afora. No entanto, os robôs já estão dominando os afazeres humanos ou ainda temos tempo de nos adaptar? O objetivo deste post é tentar esclarecer como essas mudanças têm modificado o panorama de negócios no mercado financeiro.

Mas, o que são “dados”?

Os principais ingredientes das técnicas de inteligência artificial e machine learning são os dados – que nada mais são do que informações armazenadas. Podemos controlar informações sobre preços de ações ao longo do tempo, os registros contábeis de uma empresa, flutuações no mercado de commodities, moedas, etc…

Porém, dados sempre foram coletados por boa parte das empresas. Mas o real fator disruptivo está na magnitude em que conseguimos fazer isso hoje. Com alguns dólares, podemos processar terabytes de informação em servidores dedicados na nuvem, algo inimaginável de se pensar numa planilha de Excel, no seu próprio computador. Também, os bancos de dados estão cada vez mais robustos, permitindo que armazenemos cada vez mais informação. Cerca de 90% de toda a informação gerada até hoje no mundo foi gerada nos últimos 2 anos (e que continua crescendo de maneira exponencial).

Então, surge a pergunta:

Mas vem cá, como todo esse poder computacional está mudando o mercado financeiro?

Desde gestoras de ativos e grandes fundos de investimento, até seguradoras. Os líderes mais antenados do mercado já estão tendo “dores de cabeça” sobre como criar vantagens competitivas através da tecnologia. Veja alguns exemplos:

Áreas de grande impacto da tecnologia, hoje, no mercado

  • Trading e gestão de portfólios

Duas das áreas mais chamativas do mercado financeiro, por estarem sendo frequentemente retratadas em filmes, documentários, etc… Vemos pessoas de terno berrando ao telefone, inúmeras telas de computador com gráficos sinistros, desespero no rosto de quem colocou aquele zero a mais na ordem de compra/venda, entre outros exemplos. Também, são áreas que contratam toneladas de PhDs em física, matemática e ciência de foguetes.

Traders baseados em estratégias discricionárias (decisão baseada na escolha humana) somam apenas 10% do volume negociado em ações. Fundos quantitativos já somam mais de 60% deste volume, mais do que o dobro de uma década atrás.

Marko Kolanovic, Global Head of Macro Quantitative & Derivatives Strategy do JP Morgan.

Essas informações se baseiam nos volumes negociados nos Estados Unidos. O Brasil ainda está engatinhando nesse processo e com informações inconsistentes sobre a atuação de estratégias sistemáticas na gestão de portfólios.

A aplicação da inteligência artificial no processo de decisão se baseia em modelos quantitativos complexos que buscam capturar, através de observações passadas, sinais de mercado que visam automatizar o processo de decisão, tirando o erro humano do jogo. Os modelos de machine learning e inteligência artificial são cruciais no rebalanceamento e adaptação dos algoritmos à dinâmica (que, aliás, é extremamente dinâmica) de mercado.

  • Detecção de fraudes financeiras

Em um relatório da empresa de segurança digital McAfee, foi estimado que fraudes e crimes cibernéticos custam à economia global cerca de U$600 bilhões. Uma boa parcelas desses crimes (e das mais preveníveis) é a de fraudes em cartão de crédito, que vem crescendo de maneira acelerada por conta do aumento das transações online.

Com grandes massas de dados sobre comportamento dos consumidores, os modelos de inteligência artificial e machine learning são muito utilizados para detectar padrões que ferramentas estatísticas tradicionais não conseguiriam detectar.

No Brasil, esta área já é mais desenvolvida em comparação com o segmento de trading e gestão de portfólios, com grandes bancos e financeiras contratando equipes de cientistas de dados para desenvolver modelos de prevenção de crimes cibernéticos.

  • Precificação e gestão de seguros

Num negócio que basicamente deriva da gestão de riscos, é necessário mensurar diversas dimensões de probabilidades: probabilidade de um furacão ou incêndio acontecer, de uma pessoa se tornar inadimplente ou perder o emprego, de um eventual problema de saúde aparecer, etc…

Para isso, a imensidão de processamento e armazenamento de dados veio revolucionar o setor das seguradoras. Hoje, a informação é o novo petróleo, e o negócio das seguradoras possui como alicerce a informação.

A partir de uma precificação e gestão mais assertiva a partir de análise de dados, é possível alocar os riscos de uma maneira mais eficiente e cobrar o valor adequado para cada perfil de cliente.

Carreiras e outros assuntos

A inteligência artificial e métodos de machine learning estão gerando valor em outras diversas áreas do mercado financeiro, mas, para não tornar o post muito extenso, podemos deixar este papo para o bar.

Com essa variedade de áreas de assuntos demandando conhecimentos matemáticos e estatísticos, há muitas possibilidades de novas carreiras. Se pensarmos em palavras-chave, há cientistas de dados, engenheiros de machine learning, analistas de dados, estrategistas quant, etc… Boa parte dos profissionais vêm das áreas de engenharia, matemática, física, economia, estatística, entre outros cursos com foco analítico. Boa parte dessas profissões necessitam de um conhecimento vastamente disseminado na internet.

Com isso, o Clube de Finanças está construindo núcleos de estudo (com foco em análise de risco, conjuntura macroeconômica e análise de empresas) que incluem estudos em modelagem matemática e utilização de programação, como R e Python. Com isso, preparamos os nossos membros para estarem aptos a abraçarem as inovações tecnológicas.

Posted by Gabriel Dias in Derivativos, Programação, 0 comments
Introdução ao Mercado de Opções

Introdução ao Mercado de Opções

Este artigo apresenta:

  • Características do mercado de opções;
  • Vocabulário técnico utilizado em contratos do tipo;
  • Diferentes tipos de contratos de opções; utilidade destes contratos e;
  • Estratégias comuns no mercado.

Alguns termos importantes para o melhor entendimento do artigo são: “Ativo subjacente”, que é o ativo negociado no contrato, “data de vencimento”, no caso do modelo americano é até a data limite para exercer a opção de compra e no modelo europeu é na data final em que a opção de compra pode ou não ser exercida (serão discutidos mais detalhes sobre estas modalidades posteriormente) e “preço de exercício” (strike), é o valor a ser pago pelo ativo de acordo com o contrato.

A opção de compra (call) dá ao comprador da opção, o direito de comprar o ativo subjacente ou não. A opção de venda (put) funciona de maneira semelhante à opção de compra, ela dá ao comprador da opção o direito de vender o ativo subjacente pelo preço combinado no contrato na data futura.

Exemplificando uma operação de compra de call, caso o preço do ativo tenha subido acima do preço de strike o comprador pode usar sua opção de compra e ele lucrará a partir do momento em que o valor da ação for maior que o strike mais o valor pago pela opção (chamado de prêmio). Caso o preço do ativo tenha caído abaixo do strike, o comprador poderá usar sua opção de não comprar, limitando sua perda nessa operação ao prêmio pago. Usando a tabela 1.1 como exemplo é possível ver que o resultado final será maior que R$0 quando o valor do ativo subjacente é maior que R$10.200 (R$10.000 de strike + R$200 de prêmio), e o resultado final mínimo é de -R$200.

No caso de uma operação de uma compra de put, caso o preço do ativo tenha subido acima do strike, não faz sentindo o detentor da opção exercer seu direito, assim sua perda será apenas o valor pago pela opção. Caso o preço do ativo tenha descido abaixo do strike, o comprador da put pode realizar a venda e começará a lucrar a partir do momento em que o strike fique acima do valor do ativo somado ao valor do prêmio pago pela opção. Usando a tabela 1.2 como exemplo é possível ver que o resultado final será de no mínimo -R$600 caso o valor do ativo subjacente seja igual ou maior que R$15.000, e o resultado final aumenta conforme o ativo perde o valor, sendo positivo a partir de quando seu valor é de R$14.400.

Conceitos: in the money, at the money e out the money

Estes termos são usados para se referir a opções quando o valor atual do ativo subjacente está abaixo, acima ou igual ao preço de exercício (strike) da opção.

  • Out the money (OTM) – Strike da opção está acima do valor de mercado no caso de calls ou quando o strike está abaixo no caso de puts.
  • At the money (ATM) – Strike da opção é o igual ao valor de mercado, para calls e puts.
  • In the money (ITM) – Strike da opção está abaixo do valor de mercado no caso de calls ou acima no caso de puts.

Gráfico referente a tabela 1.1

Gráfico referente a tabela 1.2

Modelos americano e europeu de opções

No modelo americano de opções o comprador pode exercer seu direito de compra ou venda do ativo subjacente a qualquer momento entre o início do contrato e o vencimento dele, enquanto isso no modelo europeu a transação só pode ser realizada na data de vencimento.

Hedge

O mercado de opções pode ser usado tanto para hedge (proteção) quanto para especulação. O hedge é feito para limitar as possíveis perdas que um investidor pode ter ao estar com seu patrimônio atrelado a determinado ativo, por exemplo, para um acionista que possui ações de determinada empresa se proteger contra uma possível queda no valor de suas ações, ele pode comprar opções de venda at the money de suas ações para que seu prejuízo máximo seja o prêmio.

Travas

Devido ao mercado de opções nos oferecer diversas possibilidades entre call e put onde você pode estar comprado e/ou vendido irá surgir várias posições a serem assumidas, para nos adequarmos ao quanto estamos dispostos a encarar o risco parar atingirmos o retorno desejado. Essas posições são conhecidas como “Travas”. Entendendo as travas, existem diversas estratégias, como por exemplo: Trava de alta, trava de baixa, Long Straddle, Short Straddle, entre outras. Mas afinal qual é o funcionamento delas? Supondo que o leitor espere uma alta do mercado, no entanto acredite que não irá superar determinado ponto ele poderá realizar uma Trava de alta. Onde comprará uma opção de Call a um preço de strike X e vender outra Call com o preço de strike Y, onde obrigatoriamente Y>X. Nesta operação limitaremos o nosso ganho caso o mercado supere as nossas expectativas, no entanto diminuiremos o custo da operação, o custo será o prêmio pago pela opção X menos o prêmio recebido pela opção Y, para facilitar a compreensão observemos o gráfico a seguir:

Nesse caso o valor do prêmio da compra foi de R$30,00 enquanto a da venda foi R$10,00, assim limitamos nossa perda em R$20,00, enquanto os preços de strike da compra e da venda da call foram respectivamente R$250,00 e R$300,00, fazendo o retorno máximo ser R$30,00 que é a diferença entre os valores de strike a serem realizados e descontado o valor pago pelo prêmio.

Agora que o leitor já entendeu melhor o conceito da trava, vamos explorar uma mais complexa a Long Butterfly. Aqui é realizado a compra de uma put e call com preços de strike iguais, vendesse uma put com preço inferior e vende alguma call com preço superior as iniciais. Observe que pelo fato de contar com a venda de duas opções nessa estratégia tem um custo de operação reduzido, no entanto o ideal é utilizar em um mercado de pouca volatilidade, dado que se a volatilidade ser alta perdesse a possibilidade de ter um ganho maior, nesse caso recomenda o uso por exemplo de uma Long Straddle. Enfim vamos ao gráfico para facilitar a compreensão da estratégia:

Teremos então a compra de uma put e call de strike iguais de R$150,00 a venda de uma put com strike inferior de $80, e a venda de uma call com preço superior $220. Os valores exatos dos prêmios não nos interessam no momento, porém é importante entender que teremos dois com saldos positivos referente a nossa venda e dois negativos que advém das compras, o resultado será nosso prejuízo máximo, olhando o gráfico nesse caso é de R$20,00. Pela área de retorno do gráfico podemos ver que nosso risco está reduzido. Onde o pior cenário possível se encontra em o preço do ativo-objeto se aproximar do valor do R$150,00, que é onde os contratos adquiridos não serão vantajosos em nenhuma ponta. No entanto se o preço se aproximar de $220 poderemos exercer nosso direito da compra da call inicial por R$150,00(você terá o direito de comprar a um preço inferior), o mesmo será valido caso haja uma queda do preço se aproximado do valor de $80,00 onde a logica será a mesma só que aqui será o usado o direito da compra da put por R$150,00(Você terá o direito de vender a um preço superior). Observe que apesar do nosso risco ser reduzido, limita os nossos ganhos, com a venda da call e da put com preços superior e inferior respectivamente.1

Espero que o leitor tenha despertado interesse no assunto, com esse conteúdo dominado já saberá o básico sobre opções, fique atento a novas postagens em breve iremos mais a afundo explicando por exemplo o modelo Black Scholes, como as opções são precificadas entre outros materiais.

2


  1. Referência: Silva Neto, Lauro de Araújo. Opções: do tradicional ao exótico / Lauro de Araújo Silva Neto. – 2. ed. São Paulo: Atlas,1996. 

  2. Autores: Erik Kawano, & Glauber Naue. 

Posted by Glauber Trebien Naue in Derivativos, Investimentos, 2 comments