Rafael F. Bressan

Foi membro do Clube de Finanças Esag e gerente do núcleo de pesquisa em riscos e derivativos, no período 2018 a 2019. Bacharel em Ciências Econômicas pela UDESC/Esag. Aluno do mestrado acadêmico em Economia na FGV/EESP.
Foi membro do Clube de Finanças Esag e gerente do núcleo de pesquisa em riscos e derivativos, no período 2018 a 2019. Bacharel em Ciências Econômicas pela UDESC/Esag. Aluno do mestrado acadêmico em Economia na FGV/EESP.
Valor em Risco de Índices Setoriais na Bovespa

Valor em Risco de Índices Setoriais na Bovespa

Neste artigo serão analisadas as séries de retornos de seis principais índices de ações de setores da Bovespa. Foram escolhidos os quatro maiores índices setoriais pelo critério de valor de mercado ao final de março de 2018, índices Financeiro (IFNC), Consumo (ICON), Industrial (INDX) e Materiais (IMAT), além do índice de Governança (IGCX) e o próprio índice Bovespa (IBOV). Os retornos coletados foram entre as datas de 01/01/2009 a 31/12/2013 para o período considerado dentro da amostra, no qual são feitas algumas análises preliminares. O período fora da amostra, de onde são retirados os resultados de backtest se estende de 01/01/2014 a 08/05/2018. Em dias sem negociação nos mercados, os períodos iniciam-se na data útil seguinte e terminam em data útil imediatamente anterior.

No primeiro artigo desta sequência foi apresentada uma vasta revisão de literatura sobre a EVT e suas aplicações em finanças, com enfoque especial ao gerenciamento de risco. No segundo artigo a Teoria do Valor Extremo – EVT foi formalizada e apresentadas as equações para o cálculo tanto do VaR quanto do ES para um ativo financeiro. Também foi abordada a diferença entre medidas incondicionais e condicionais de risco. No presente artigo faremos uma aplicação da EVT para o cálculo do VaR condicional dos seis índices da Bovespa e faremos uma comparação deste modelo com o conhecido Riskmetrics.

A tabela 1 apresenta algumas das estatísticas descritivas mais importantes para as séries de retornos dos ativos no período completo, dentro e fora da amostra. É possível verificar que os retornos não podem ser considerados normais, com a estatística de Jarque-Bera rejeitando a hipótese nula e com o alto grau de curtose em excesso verificado para todos os índices analisados.

Também é possível verificar a grande autocorrelação serial entre os quadrados dos retornos, uma proxy para a autocorrelação das variâncias, através da estatística \(Q^2(10)\) de Ljung-Box, o que corrobora os fatos estilizados de séries financeiras, vide Cont (2001).

Tabela 1: Estatísticas descritivas dos retornos (amostra completa de 02/01/2009 08/05/2018 ).
Descritivas IBOV ICON IFNC IGCX INDX IMAT
Média 0.00034 0.00069 0.00066 0.00052 0.00047 0.00043
Máximo 0.06929 0.05183 0.09295 0.06188 0.06388 0.07572
Mínimo -0.09211 -0.07446 -0.12288 -0.08837 -0.07370 -0.09079
Desvp 0.01497 0.01148 0.01640 0.01269 0.01247 0.01820
Assimetria -0.03784 -0.11441 0.00658 -0.16642 -0.01978 0.08989
Curtose exc. 2.13179 2.23608 3.23913 3.06149 2.43070 1.37705
Jarque-Bera 439.98*** 488.47*** 1013.68*** 916.29*** 571.28*** 186.72***
\(Q^2(10)\) 122.14*** 104.32*** 97.44*** 146.68*** 256.11*** 230.39***
N.obs 2311 2311 2311 2311 2311 2311

Na figura 1 são visualizadas as séries de retornos logarítmicos em estudo. Por inspeção visual simples é possível verificar a heterocedasticidade destes retornos, corroborando as estatísticas encontradas na tabela 1.

A figura 2 é mais interessante para se apreciar a normalidade destes retornos. Tratam-se de gráficos quantil-quantil feitos entre a amostra completa dos retornos e uma distribuição normal de referência. Para todas as séries é observado um desvio da normalidade nas caudas, configurando distribuições leptocúrticas em todos os casos.


Retornos dos índices do estudo. Período completo entre 02/01/2009 a 08/05/2018.

Figura 1: Retornos dos índices do estudo. Período completo entre 02/01/2009 a 08/05/2018.


Análise de normalidade dos retornos através de gráficos quantil-quantil.

Figura 2: Análise de normalidade dos retornos através de gráficos quantil-quantil.

Filtro GARCH

Voltando-se para o período dentro da amostra, o filtro proposto GARCH(1,1) foi aplicado a estas séries e seus coeficientes estimados. A função do modelo GARCH neste primeiro estágio é a filtragem da série de perdas, de modo que os resíduos padronizados resultantes não sejam autocorrelacionados e tampouco possuam heterocedasticidade.

Para trabalhar com o VaR em seus quantis altos e portanto, modelar a cauda direita da distribuição, passa-se a trabalhar com a distribuição das perdas dos ativos. A tabela 2 apresenta novamente as estatísticas Jarque-Bera e Ljung-Box (Q e \(Q^2\)) desta vez para os resíduos padronizados resultantes da filtragem das perdas no primeiro estágio do modelo GARCH-POT. Enquanto que os resíduos padronizados, assim como os retornos, não são normais como já se esperava, as estatísticas de autocorrelação agora estão todas em favor da ausência desta. Para todos os índices analisados, não é possível rejeitar \(H_0\) nos testes de autocorrelação, tanto para os resíduos (\(Q(10)\)) como para os seus quadrados (\(Q^2(10)\)) em evidente contraste com os valores apresentados na tabela 1 quando foram analisados os retornos destes índices. Evidência que a filtragem inicial foi bem sucedida em remover autocorrelação serial tanto nas perdas quanto na variância destas.

Tabela 2: Estatísticas de diagnóstico para o modelo GARCH. Valores p entre parênteses. (Período dentro da amostra entre 02/01/2009 a 31/12/2013).
Estatística IBOV ICON IFNC IGCX INDX IMAT
Curtose exc. 1.04702 0.80399 1.07619 1.06174 0.94823 0.85436
Jarque-Bera 59.68837 35.65255 60.39086 65.08960 49.34559 38.82424
(0.00000) (0.00000) (0.00000) (0.00000) (0.00000) (0.00000)
Q(10) 2.22678 4.56100 2.93792 2.56408 2.64320 2.44096
(0.91608) (0.57468) (0.82868) (0.87790) (0.86803) (0.89259)
\(Q^2(10)\) 8.48918 3.04788 3.72839 6.32895 5.37480 5.52198
(0.13786) (0.81307) (0.70876) (0.32562) (0.45069) (0.42978)

Sendo assim, com retornos padronizados que não são normalmente distribuídos e possuem cauda longas com excesso de curtose, mas que após filtragem não apresentam mais autocorrelação ou heterocedasticidade, pode-se passar ao segundo estágio do modelo, ou seja, aplicar a teoria do valor extremo através do método peaks over treshold para parametrizar a cauda direita das distribuições de perdas dos ativos.

Método POT

Os resíduos padronizados são tratados como as realizações do processo de inovação no modelo GARCH. Estas inovações serão analisadas sob a ótica da EVT para a obtenção dos parâmetros da GPD que definem a cauda direita de sua distribuição.

Para tanto, deve ser estabelecido um limiar u adequado para cada uma das séries, de modo que seja satisfeito o teorema de Pickands-Balkema-de Haan. Este valor de limiar será diferente para cada série e sua escolha deve seguir os princípios delineados no artigo Medidas de Risco com a Teoria do Valor Extremo através da função média dos excessos. Entretanto, considerando o trade-off existente entre o viés e a variância dos parâmetros da GPD estimados com relação a escolha do valor deste limiar, pode-se abordar o problema desta escolha de outra forma.

Neste artigo foi utilizado o quantil empírico a 90% para a escolha do valor do limiar. Conforme visto anteriormente, um valor de limiar que resulte em um número de excessos observados (\(N_u\)) entre 100 e 130 é o mais indicado. Considerando o tamanho da janela de dados dentro da amostra para os índices sob análise, este quantil resulta em número de excessos nesta quantidade.

A escolha do limiar através de um quantil empírico fixo também é mais adequada considerando-se que para a fase de backtest do modelo é necessário reavaliar o valor deste limiar para cada dia dentro do período fora da amostra, o que se tornaria inviável de ser feito através da análise gráfica da função média dos excessos.

Escolhido o limiar u, trata-se de obter a série de inovações em excesso ao limiar \(Z^u_t:\{Z^u_t = Z_t-u |Z_t > u\}\), onde \(Z_t\) são as inovações, em que os resíduos padronizados encontrados são suas realizações e \(Z^u_t\) são portanto, as inovações em excesso.

A esta série de inovações em excesso é aplicada a função log-verossimilhança dada na equação (1) que por sua vez é maximizada em relação aos parâmetros \(\xi\) e \(\psi\) para a obtenção de suas estimativas.

\[\begin{align}
\ln L(\xi, \psi; Z^u_j)=&\sum\limits_{j=1}^{N_u}\ln g_{\xi, \psi}(Z^u_j)\nonumber\\
=&-N_u \ln \psi-\left(1+\frac{1}{\xi}\right)\sum\limits_{j=1}^{N_u}\ln \left(1+\xi\frac{Z^u_j}{\psi}\right)
\tag{1}
\end{align}\]

A tabela 3 apresenta os valores destes parâmetros e seus erros padrão para cada um dos índices, com a estimação feita com os dados do período dentro da amostra. Também são apresentados o número de observações dentro da amostra para o total dos resíduos padronizados, assim como o número de excessos observados (\(N_u\)) para o limiar escolhido (\(u\)). Observa-se como o número de excessos varia de acordo com o índice (asim como o total de observações), porém todos ficam em torno de 120 excessos, que é considerado um valor ideal.

Tabela 3: Parâmetros estimados para o modelo EVT dos resíduos padronizados. Período dentro da amostra.
IBOV ICON IFNC IGCX INDX IMAT
N.obs. 1236 1236 1236 1236 1236 1236
Limiar \(u\) 1.27441 1.21387 1.24376 1.28281 1.27872 1.24701
Num.exc. \(N_u\) 124 124 124 124 124 124
Par. forma \(\xi\) -0.00769 -0.06855 -0.08808 0.02810 0.06821 -0.01423
Erro padrão 0.08675 0.09660 0.06545 0.10628 0.10726 0.09281
Par. escala \(\psi\) 0.57865 0.65301 0.64641 0.56854 0.51291 0.54368
Erro padrão 0.07225 0.08603 0.07164 0.07910 0.07168 0.07021
Quantil \(z_{0.975}\) 2.07417 2.07937 2.08917 2.08844 2.02629 1.99505
Quantil \(z_{0.990}\) 2.59690 2.60662 2.59265 2.63717 2.55947 2.48030

Na figura 3 é possível visualizar os gráficos de ajuste das inovações em excesso de cada um dos índices contra suas distribuições GPD de referência, ou seja, aquelas com os parâmetros de forma e escala estimados para os respectivos índices. Verifica-se que a distribuição destes excessos pouco se desvia com relação a curva de referência, denotando um bom ajuste dos dados ao modelo teórico. Em contraste, quando modelados diretamente através de uma distribuição normal, as séries de retornos se afastavam consideravelmente de suas referências como já apresentado na figura 2. Ao se utilizar um método semi-paramétrico como o proposto, modelando apenas uma parte da cauda da distribuição, a parte que interessa para a modelagem de risco, obtém-se uma estimação muito mais próxima da realidade que os dados apresentam.


Qualidade do ajuste dos dados de inovações em excesso contra uma GPD de referência. Período dentro da amostra.

Figura 3: Qualidade do ajuste dos dados de inovações em excesso contra uma GPD de referência. Período dentro da amostra.

Avaliação dos modelos

A avaliação dos modelos aqui referidos concentra-se em testar através de backtest o modelo EVT condicional apresentado, o qual utiliza a metodologia em dois estágios proposta por McNeil and Frey (2000) assim como o modelo proposto por RiskMetrics (1995), sendo, portanto, dois modelos testados e comparados para fins de estimação da medida de risco.

O modelo EVT incondicional aqui proposto é diferente daquele encontrado nas outras referências. A filtragem através de um modelo GARCH é realizada e os resíduos padrão resultantes são utilizados para estimar o quantil desejado através da EVT, entretanto, ao se calcular a medida de risco são utilizados a média e o desvio padrão incondicionais do filtro, resultando em menor volatilidade do VaR. Uma vantagem teórica deste método é que se está aplicando a teoria de valor extremo a uma série iid, os resíduos padronizados, conforme preconizado pela teoria. Outra vantagem de cunho mais prático é que esta abordagem se torna um modelo que não possui a alta volatilidade dos modelos condicionais e apresenta de forma mais branda que os modelos incondicionais (às vezes chamados de estáticos) os agrupamentos nas violações ao VaR.

Para fazer o backtest, considere a série \(x_1, x_2, \ldots, x_m\), com \(m\gg n\) e o conjunto de dias \(T = \{n, \ldots, m-1\}\). Uma janela de dados de tamanho fixo contendo as últimas \(n\) observações é utilizada e para cada dia \(t \in T\) é reestimado o valor de \(VaR^t_\alpha\). O período de teste fora da amostra vai de 01/01/2015 a 08/05/2018, com dados diários para as perdas dos índices sob análise. O número de observações (\(n\)) dentro da janela de dados utilizada para fazer a estimação dos modelos para cada um dos índices é aquele apresentado na tabela 3 (N.obs.), esse valor é fixo para cada série. Portanto, a partir do início do período de teste, esta janela de tamanho fixo avança um dia e o modelo é reestimado, resultando no valor estimado de \(VaR_\alpha^t\), ou seja, a medida de risco calculada ao final do dia \(t\) que deverá ser comparada a perda incorrida no dia a frente, \(t+1\).

O quantil para a definição do limiar u é fixo em 0,90, o que resultará em valores distintos de limiar para cada rodada do teste, e possivelmente um número diferente de excessos observados. Entretanto essas diferenças, considerando o tamanho fixo da janela de dados, será muito pequeno em torno de uma unidade apenas. Mantém-se assim, um número de excessos em torno de 120 observações, valor adequado para se fazer as estimativas dos parâmetros da GPD.

A figura 4 apresenta o resultado do backtest para o modelo EVT condicional para cada um dos índices analisados. É possível verificar como a medida condicional de risco oscila de valor, acompanhando a volatilidade do índice, sendo especialmente responsiva a grandes choques. Em comparação com o modelo Riskmetrics, o EVT apresenta maior persistência em seu nível medido de risco após um choque de volatilidade, ou em outras palavras, uma menor taxa de decaimento. Através da figura 5 pode-se verificar esta condição para o índice IBovespa onde, após a grande perda ocorrida em 18 de maio de 2017, fica evidente que o modelo retorna aos seus níveis de risco anteriores de forma mais lenta que a medida Riskmetrics. Entende-se por modelos incondicionais aqueles em que a volatilidade histórica de toda a janela de dados é utilizada para calcular as medias de risco. É nítido como o modelo condicional, que utiliza a previsão para a média e volatilidade das perdas e então utiliza-os para obter a medida de risco, é muito mais responsivo a alterações no regime de volatilidade do ativo. Um modelo incondicional, por sua vez, não responde de forma acentuada a variações de curto-prazo na volatilidade do ativo, pois estas observações mais extremas são atenuadas em meio a todas as outras observações utilizadas da janela de dados.


\(VaR_{99\%}\) no modelo EVT condicional para todos os índices. Violações demarcadas.

Figura 4: \(VaR_{99\%}\) no modelo EVT condicional para todos os índices. Violações demarcadas.


Teste fora da amostra para o IBOV. O modelo EVT condicional (linha sólida) possui menor taxa de decaimento após um choque de volatilidde que o modelo Riskmetrics (linha tracejada).

Figura 5: Teste fora da amostra para o IBOV. O modelo EVT condicional (linha sólida) possui menor taxa de decaimento após um choque de volatilidde que o modelo Riskmetrics (linha tracejada).

Uma violação é dita ocorrida quando a perda observada é maior que a medida de risco estimada no dia anterior, \(x_{t+1}>VaR^t_\alpha\) para um \(\alpha\) dentro do conjunto de níveis de significância, neste artigo \(\alpha \in \{0,975; 0,990\}\). A tabela 4 apresenta em termos percentuais as violações ocorridas para cada um dos modelos para os níveis de cobertura dados. Dentre os dois modelos analisados, o EVT condicional se saiu melhor nos dois níveis de cobertura. %Os modelos condicionais apresentaram uma tendência a subestimação do risco, com um número superior de violações ao esperado. Os modelos incondicionais, ao contrário, superestimam o risco e apresentam tendência a um número menor de violações. Dentre os modelos estimados o EVT condicional apresentou as violações percentuais mais próximas ao valor esperado, \(1-\alpha\).

Tabela 4: Percentual de violações. Período fora da amostra.
Modelo IBOV ICON IFNC IGCX INDX IMAT
Cobertura = 1%
EVT Condicional 0.65 1.21 0.74 1.12 0.93 0.93
RiskMetrics 1.02 1.68 1.12 1.30 1.40 1.40
Cobertura = 2.5%
EVT Condicional 2.14 2.61 2.14 2.14 2.42 2.70
RiskMetrics 2.42 2.79 2.14 2.61 3.54 2.61

Testes estatísticos

Pode ser realizado um teste estatístico para verificar se o modelo para \(VaR_\alpha\) foi corretamente especificado levando-se em consideração o seu nível de cobertura, \(1-\alpha\). Este teste foi originalmente proposto por Kupiec (1995) e pretende derivar propriedades estatísticas formais do teste utilizado para verificar a precisão de modelos VaR. Este teste permite inferir se a frequência de violações ao VaR é consistente com o valor esperado destas, o nível de cobertura. Sob a hipótese nula de um modelo corretamente especificado o número de violações segue uma distribuição binomial e o teste toma a forma de razão de verossimilhança com a seguinte estatística:

\[\begin{equation}
LR_{uc}=-2\ln\left(\frac{(1-p)^{N-X}p^X}{(1-\frac{X}{N})^{N-X}(\frac{X}{N})^X}\right)
\tag{2}
\end{equation}\]

onde \(p\) é o nível de cobertura, \(N\) é o número de observações do período fora da amostra e \(X\) neste caso é o número de violações ocorridas.

Este teste não faz nenhum tipo de assunção, e por conseguinte não testa, a hipótese de independência entre as violações, sendo considerado um teste de cobertura incondicional para o VaR.

Um teste condicional é aquele proposto, entre outros, por Christoffersen and Pelletier (2004). A hipótese de independência entre as violações está relacionada a duração entre as observações destas. O tempo que se passa entre uma violação e outra deve ser independente e não formar agrupamentos (clusters). Sob a hipótese nula de um modelo corretamente especificado, a duração não deve possuir memória. Como a única distribuição contínua que não possui memória é a distribuição exponencial, os autores propuseram ajustar os dados a uma distribuição Weibull da qual a exponencial é um caso particular quando o parâmetro \(b=1\) e, portanto, o teste é feito sobre este parâmetro. O teste de duração de Christoffersen é feito sob a forma de razão de verossimilhança, sendo a função densidade de uma Weibull:

\[\begin{equation}
f_W(D; a, b) = \begin{cases}
a^b b D^{b-1}e^{-(aD)^b}, &D \geq 0\\
0,&D<0.
\end{cases}
\tag{3}
\end{equation}\]

onde \(D\) é a duração entre as violações e \(a\) e \(b\) são os parâmetros da distribuição.

Nota-se que este teste é destinado apenas a verificação da hipótese de independência das violações. Em conjunto com o teste de Kupiec, a tabela 5 fornece um panorama completo sobre a adequação das especificações de modelos VaR.

Tabela 5: Testes estatísticos para o VaR. Teste incondicional de Kupiec, LRuc, e teste de independência por duração de Christoffersen e Pelletier, LRdur. Os modelos testados são: EVT condicional (cevt) e Riskmetrics (riskmetrics). Período fora da amostra.
Modelo Estatística IBOV ICON IFNC IGCX INDX IMAT
Cobertura 1%
cevt LRuc 1.50 0.45 0.77 0.14 0.05 0.05
cevt LRdur 3.73 1.45 0.53 0.00 2.36 0.03
riskmetrics LRuc 0.01 4.12** 0.14 0.91 1.52 1.52
riskmetrics LRdur 0.05 0.13 0.09 0.01 3.88** 0.22
Cobertura 2.5%
cevt LRuc 0.59 0.05 0.59 0.59 0.03 0.17
cevt LRdur 0.30 0.02 0.94 0.37 0.83 0.99
riskmetrics LRuc 0.03 0.37 0.59 0.05 4.22** 0.05
riskmetrics LRdur 0.96 0.25 0.00 0.69 0.02 0.53

Inspecionando a tabela 5 verifica-se como o modelo EVT condicional, especialmente para o nível de cobertura a 1% é superior ao seu rival, prevalecendo como o único modelo a não rejeitar a hipótese nula a 95% de confiança para ambos os testes e níveis de cobertura.

Conclusão

Este artigo tratou de estimar e comparar dois modelos de VaR para seis índices de ações em segmentos diferentes da Bovespa. Os modelos EVT condicional e Riskmetrics foram estudados e comparados com base em dois tipos diferentes de testes. Especial ênfase foi dada ao modelo EVT condicional o qual se utiliza da teoria do valor extremo para chegar ao resultado da medida de risco. Dentre os modelos estimados, o EVT condicional apresentou os percentuais de violações mais próximos ao valor esperado.

Nos testes estatísticos de cobertura incondicional e independência, a superioridade do modelo EVT condicional se apresenta de forma mais concreta. Este modelo não apresentou rejeição a hipótese nula da correta especificação, tanto para o teste de Kupiec quanto para o teste de duração de Christoffersen e Pelletier ao nível de confiança de 95%.

Apesar de os modelos condicionais se mostrarem mais adequados a estimação do VaR através dos testes estatísticos apresentados, este tipo de modelo, em virtude de sua grande variabilidade ao longo do tempo no valor estimado da medida de risco, impõe uma barreira de cunho prático a sua implementação. Para alterar o VaR tão drasticamente e em curto período de tempo, a instituição financeira deve ser capaz de rapidamente alterar a alocação de ativos de seu portfólio, o que não é a realidade da grande maioria destas instituições. O mercado pode não possuir a liquidez ou a profundidade necessária para realizar estas operações, isso sem contar os custos envolvidos nas transações.

Além deste trade-off entre superioridade teórica do modelo EVT condicional e sua implementação prática mais complexa, a medida de risco VaR atualmente está sendo utilizada em conjunto com a Expected Shortfall. Esta última pode ser derivada a partir do modelo EVT condicional com facilidade e deve ser abordada em outro trabalho, juntamente com testes específicos para o ES com intuito de averiguação do melhor modelo.

Christoffersen, Peter, and Denis Pelletier. 2004. “Backtesting Value-at-Risk: A Duration-Based Approach.” Journal of Financial Econometrics 2 (1). Oxford University Press: 84–108.

Cont, R. 2001. “Empirical properties of asset returns: stylized facts and statistical issues.” Quantitative Finance 1 (2): 223–36. doi:10.1080/713665670.

Kupiec, Paul H. 1995. “Techniques for Verifying the Accuracy of Risk Measurement Models.” The Journal of Derivatives 3 (2). Institutional Investor Journals: 73–84.

McNeil, Alexander J, and Rüdiger Frey. 2000. “Estimation of tail-related risk measures for heteroscedastic financial time series: an extreme value approach.” Journal of Empirical Finance 7 (3-4): 271–300. doi:10.1016/s0927-5398(00)00012-8.

RiskMetrics. 1995. “Technical Document – 3rd Edition.” J.P Morgan Guaranty Trust Company.

Posted by Rafael F. Bressan in Derivativos & Riscos, 1 comment
Medidas de Risco com a Teoria do Valor Extremo

Medidas de Risco com a Teoria do Valor Extremo

Teoria do valor extremo (EVT da sigla em inglês) é um ramo da estatística que lida diretamente com eventos raros, extremos. Seu objetivo é modelar eventos que se distanciam muito da mediana de uma distribuição. Justamente por esta característica, a EVT está sendo utilizada para modelar riscos que possuem distribuição com caudas longas, um dos fatos estilizados que apresentamos sobre retornos de ativos financeiros.

No primeiro artigo desta sequência foi apresentada uma vasta revisão de literatura sobre a EVT e suas aplicações em finanças, com enfoque especial ao gerenciamento de risco. Neste artigo formalizaremos a teoria e serão apresentadas as equações para o cálculo tanto do VaR quanto do ES para um ativo financeiro. Também será abordada a diferença entre medidas incondicionais e condicionais de risco.

Ao utilizarmos a EVT, e mais especificamente o método conhecido como peaks over treshold – POT, estamos interessados em modelar apenas a parte da cauda da distribuição das perdas de um ativo financeiro maiores que um determinado valor de limiar u. É da modelagem desta cauda, portanto, que faremos as estimativas de risco VaR e ES.

Distribuição de valores extremos generalizada

Consideremos uma amostra de uma variável aleatória cujas observações sejam independentes e igualmente distribuídas (va iid) \(L_i,i\in \mathbb{N}\) que represente as perdas financeiras de um determinado ativo.

A EVT está interessada em investigar o comportamento da distribuição dos máximos desta va iid dados por \(M_n = \max (L_1, \ldots , L_n)\) para vários valores de \(n\) e a medida que \(n\rightarrow \infty\). A sequência \(M_n\) é chamada de máximos em bloco e é possível demonstrar que a única distribuição para a qual \(M_n\) converge com \(n\rightarrow \infty\) é a distribuição de valores extremos generalizada (GEV, da sigla em inglês).

Para tanto, é necessário normalizarmos esta sequência de máximos de forma que sua distribuição seja convergente para uma distribuição \(H(x)\) não-degenerada1. Seja \(F(x)\) a distribuição original de uma variável aleatória iid, é possível normalizar seus máximos em bloco através da relação \(M_n^*=(M_n-d_n)/c_n\) de forma que:

\[\begin{equation}
\lim_{n \rightarrow \infty} P\left(\frac{M_n-d_n}{c_n} \leq x \right)
= \lim_{n \rightarrow \infty} F^n(c_nx + d_n)
= H(x)
\tag{1}
\end{equation}\]

Em outras palavras, para determinadas sequências \(c_n\) e \(d_n\) a serem escolhidas, existe uma distribuição de \(H(x)\) não-degenerada a qual representa a distribuição dos máximos em bloco de \(F(x)\).

A potenciação de \(F\) em \(n\) deriva diretamente da suposição que a variável aleatória é iid, enquanto que a transformação de \(x \rightarrow c_n x+d_n\) é a normalização dos máximos em bloco.

Definição 1 (Domínio de atração de máximos) Se a equação (1) é válida para uma \(H\) não-degenerada, então se diz que \(F \in MDA(H)\), \(F\) pertence ao domínio de atração de máximos de \(H\).
Teorema 1 (Fisher-Tippett) Se \(F \in MDA(H)\) para alguma \(H\) não-degenerada, então \(H\) deve ser uma distribuição do tipo de valores extremos generalizada – GEV.

O teorema 1 foi estabelecido através de três artigos, Fisher and Tippett (1928), Gnedenko (1941) e Gnedenko (1943).

Definição 2 (Distribuição de valores extremos generalizada) É definida por sua p.d.f (função densidade de probabilidades) a qual é dada por:

\[\begin{equation}
H_\xi(x) =
\begin{cases}
exp(-(1+\xi x)^{-\frac{1}{\xi}}), & \xi \neq 0,\\
exp(-e^{-x}), & \xi = 0,\\
\end{cases}
\tag{2}
\end{equation}\]

O parâmetro \(\xi\) (leia-se qsi) é conhecido como o parâmetro de forma da distribuição e dependendo deste valor teremos diferentes tipos de distribuição (casos particulares da GEV). Quando \(\xi=0\) a distribuição resultante é uma Gumbel, quando \(\xi>0\) uma Fréchet surge, e por fim quando \(\xi<0\) temos uma Weibull.

Tomemos como exemplo a distribuição exponencial e calcularemos seu MDA e verificaremos se este está entre umas das distribuições GEV. Uma distribuição exponencial é caracterizada pela seguinte função de distribuição (c.d.f):

\[\begin{equation*}
F(x)=1-e^{- \beta x}, \beta > 0 \text{ e } x \geq 0
\end{equation*}\]

Se escolhermos as sequências \(c_n=1/\beta\) e \(d_n=\ln n /\beta\) podemos substituir diretamente na equação e calcular \(H(x)\).

\[\begin{equation*}
F^n \left(c_nx+d_n \right)=\left(1-\frac{1}{n}e^{-x} \right)^n
\end{equation*}\]

\[\begin{equation*}
\lim_{n \rightarrow \infty} \left(1-\frac{1}{n}e^{-x} \right)^n = H(x)
\end{equation*}\]

Fazendo uma simples substituição de variáveis, \(i=-e^{-x}\), então:

\[\begin{equation*}
H(x)=\lim_{n \rightarrow \infty}\left(1+\frac{i}{n} \right)^n
\end{equation*}\]

Que é o limite fundamental \(e^i\), o qual substituindo novamente \(i\) temos:

\[\begin{equation*}
H(x)=exp\left(-e^{-x}\right)=H_0(x), \text{Distribuição Gumbel}
\end{equation*}\]

Ou seja, a distribuição exponencial pertence ao \(MDA\) da distribuição Gumbel, a qual por sua vez é um dos casos particulares da GEV quando \(\xi=0\).

Via de regra não necessitamos calcular a qual \(MDA\) pertencem nossas distribuições, bastando saber que basicamente todas as distribuições contínuas de utilidade prática estão contidas em \(MDA(H_\xi)\) para algum valor de \(\xi\).

Excessos acima de um limiar

O método conhecido como POT, para calcular a função de distribuição dos valores que excedem um determinado limiar de um conjunto de dados vem sendo empregado no mundo financeiro para ajustar as caudas das distribuições de retornos, ou perdas, dos ativos. Este método é preferido a teoria clássica de valores extremos (e.g. máximos em bloco), pois, desperdiça uma quantidade menor de dados da série original. Qualquer valor que exceda o limiar pré-determinado é considerado na distribuição dos excessos. Esta distribuição dos valores da série que estão acima de um determinado limiar u é definida como:

Definição 3 (Distribuição dos excessos) Seja X uma variável aleatória com função de distribuição c.d.f F. A distribuição dos excessos sobre um limiar u tem a seguinte função de distribuição:

\[\begin{equation}
F_u(x)=P(X-u \leq x | X > u)=\frac{F(x+u)-F(u)}{1-F(u)}
\tag{3}
\end{equation}\]

para \(0 \leq x < x_F-u\), onde \(x_F \leq \infty\) é o limite direito da distribuição F.

Ou seja, a função distribuição dos excessos sobre um limiar u é a probabilidade condicional que um valor X retirado dos dados subtraído de u (o excesso) seja menor que um dado quantil x, sabendo-se que X é maior que u. Uma importante distribuição que surge na modelagem dos excessos sobre um limiar é a distribuição de pareto gereralizada – GPD, que segue.

Definição 4 (Distribuição de Pareto Generalizada) É definida por sua função de distribuição:

\[\begin{equation}
G_{\xi,\beta(u)}(X) =
\begin{cases}
1- \left(1+ \frac{\xi x}{\beta(u)} \right)^{-\frac{1}{\xi}}, & \xi \neq 0,\\
1-exp\left(-\frac{x}{\beta(u)}\right), & \xi = 0,\\
\end{cases}
\tag{4}
\end{equation}\]

onde \(\beta > 0\), e \(x\geq 0\) quando \(\xi \geq 0\) ou \(0 \leq x \leq -\beta / \xi\) quando \(\xi < 0\).

Os parâmetros \(\xi\) e \(\beta\) são conhecidos respectivamente como parâmetros de forma e escala da distribuição. Na figura 1 abaixo, são mostradas três parametrizações para a função de distribuição acumulada (c.d.f) e para a densidade de probabilidades (p.d.f) de GPD com parâmetro \(\xi\) iguais a -0,5, 0 e 0,5 enquanto que o parâmetro de escala \(\beta\) é mantido constante e igual a 1. Perceba como para \(\xi <0\) a p.d.f tem um limite direito que é dado por \(-\beta / \xi\) a partir do qual os valores de \(g(x)\) são zero.


Três parametrizações para uma GPD. A linha sólida corresponde a \(\xi=0,5\), a linha pontilhada a \(\xi=-0,5\) e a linha tracejada a \(\xi=0\).

Figura 1: Três parametrizações para uma GPD. A linha sólida corresponde a \(\xi=0,5\), a linha pontilhada a \(\xi=-0,5\) e a linha tracejada a \(\xi=0\).

A distribuição de Pareto generalizada tem papel fundamental na teoria de valor extremo em função do teorema de Pickands-Balkema-de Haan (Pickands (1975) e Balkema and Haan (1974)) conforme abaixo:

Teorema 2 (Pickands-Balkema-de Haan) Pode ser encontrada uma função \(\beta(u)\) tal que:
\[\begin{equation*}
\lim\limits_{u \rightarrow x_F} \; \sup\limits_{0\leq x <x_F – u} |F_u(x)-G_{\xi, \beta(u)}(x)| = 0
\end{equation*}\]

se e somente se \(F\in MDA(H_\xi)\) para \(\xi \in \mathbb{R}\).

O que este teorema nos diz é que para distribuições as quais os máximos em bloco normalizados convergem para uma GEV (na forma da equação (2)), então a distribuição dos excessos acima de um limiar destas mesmas distribuições convergem para uma GPD, dado um valor de limiar u adequado. Podemos fazer então a seguinte suposição:

Suposição 1: Seja F a distribuição de perdas com limite direito \(x_F\), assuma que para um valor limiar alto o suficiente u nós temos que \(F_u (x)=G_{\xi,\beta} (x)\), onde \(F_u (x)\) denota a distribuição dos excessos de x em relação ao valor de limiar u, para \(0 \leq x < x_F-u\), \(\xi \in \mathbb{R}\) e \(\beta > 0\).

Esta é uma suposição, uma vez que a distribuição dos excessos não segue exatamente uma GPD, mas apenas tende a esta distribuição dado um limiar u alto e uma amostra de dados grande o suficiente.

Dada a parametrização de uma GPD, é interessante sabermos o valor esperado desta distribuição, uma vez que esta medida de valor central nos fornece importante informação sobre a quantidade de risco que estamos buscando medir, assim como a informação de que a própria distribuição foi ajustada aos dados de forma satisfatória, como será demonstrado adiante.

O valor esperado de uma variável aleatória não negativa pode ser computado através da integral de sua cauda, \(P(X>x) = 1-P(X \leq x)\). A cauda da GPD é, para \(\xi \neq 0\), \(\left(1+\xi x / \beta(u) \right)^{-1/ \xi}\)

Bastando, portanto, integrar em relação a \(x\) sobre o domínio deste, que é de \(0\) a \(\infty\).

\[\begin{equation*}
\displaystyle\int\limits_{0}^{\infty} \left(1+ \xi x /\beta(u) \right)^{-1/\xi} dx
\end{equation*}\]

Desta forma, o valor esperado de uma GPD \(G_{\xi,\beta(u)} (X)\), ou seja, sua média, converge para valores de \(\xi<1\) e é dado pela seguinte equação:

\[\begin{equation}
E\left[G_{\xi,\beta(u)} (X) \right]=\frac{\beta(u)}{1-\xi}
\tag{5}
\end{equation}\]

Definição 5 (Função média dos excessos) A função média dos execessos de uma variável aleatória X com média finita é dada por:

\[\begin{equation}
e(u)=E\left(X-u | X > u\right)
\tag{6}
\end{equation}\]

Ou seja, a equação (6) representa o valor esperado da função de distribuição dos excessos dada pela Definição 3. Ela representa a média de \(F_u\) como uma função do limiar u. Esta função por vezes também é conhecida como função média de vida residual (mean residual life function), sendo encontrada esta denominação em alguns pacotes de software estatísticos.

Para uma variável distribuída na forma de uma GPD, o parâmetro de escala é uma função linear em u dado por \(\beta(u)=\beta + \xi u\), Teorema 3.4.13(e) em Embrechts, Klüppelberg, and Mikosch (1997). Utilizando-se deste fato e da equação (5) chegamos ao cálculo da função média dos excessos para uma GPD, dada por:

\[\begin{equation}
e(u)=\frac{\beta+\xi u}{1-\xi}
\tag{7}
\end{equation}\]

onde \(0 \leq u < \infty\) se \(0 \leq \xi <1\) e \(0 \leq u \leq -\beta / \xi\) se \(\xi < 0\). É possível observar que de fato a função média dos excessos em uma GPD é linear em u. Esta é uma característica importante de uma GPD e que nos auxilia a escolher um valor adequado do limiar u de tal forma que a Suposição feita anteriormente faça sentido.

Assim, quando estamos analisando uma determinada distribuição de perdas F e desejamos ajustar a cauda desta distribuição, ou seja, as perdas acima de um dado valor limiar u a uma GPD \(G_{\xi, \beta}(x)\) precisamos primeiramente determinar um valor adequado de u de modo que a suposição \(F_u(x)\rightarrow G_{\xi, \beta}(x)\) seja válida. Um método frequentemente utilizado é o gráfico da função média dos excessos com relação a u. Analisando este gráfico, escolhemos o menor valor de u para o qual a partir deste ponto a relação \(e(u) \text{ vs } u\) torna-se linear.

Desejamos o menor valor de u para o qual a relação é linear pois, mesmo o método POT implica em grande perda de dados da série temporal, já que apenas os valores acima deste limiar são utilizados para fazer a estimação dos parâmetros \(\xi\) e \(\beta\) da GPD. Portanto, existe um trade-off na escolha do valor limiar u, escolhendo um valor muito baixo termos uma boa quantidade de dados para estimar os parâmetros da GPD, mas a própria distribuição resultante não será GPD, uma vez que não estaremos trabalhando na região onde a relação \(e(u) \text{ vs } u\) é linear. Por outro lado, um valor limiar muito alto nos impõe o custo de trabalhar com poucos dados para fazer a estimação dos parâmetros da distribuição e por conseguinte, os erros padrões dessas estimativas serão elevados.

Lema 1 Sob a Suposição 1 segue que \(F_v (x)=G_{\xi,\beta+\xi(v-u)} (x)\) para qualquer valor limiar \(v \geq u\).

Logo, a distribuição dos excessos sobre limiares mais altos que u, também segue uma GPD com o mesmo parâmetro de forma \(\xi\) e parâmetro de escala que cresce linearmente com este limiar mais alto v. Se \(\xi < 1\), a média desta nova GPD converge e é dada por:

\[\begin{equation}
e(v)=\frac{\beta+\xi(v-u)}{1-\xi}=\frac{\xi v}{1- \xi}+ \frac{\beta-\xi u}{1-\xi}
\tag{8}
\end{equation}\]

Esta é a função média dos excessos sobre limiares mais altos, e está definida para \(u \leq v < \infty\) se \(0 \leq \xi < 1\) e, \(u \leq v \leq u-\beta / \xi\) se \(\xi < 0\).

Esta função é muito útil para calcularmos o \(ES_\alpha\) (expected shortfall), considerando que \(VaR_\alpha\) nada mais é que um quantil superior ao limiar \(u\) escolhido.

Modelando caudas e medidas de risco associadas

Através da modelagem da cauda da distribuição F de perdas por uma GPD, como feito na seção anterior, é possível calcularmos as medidas de riscos \(VaR_\alpha \text{ e } ES_\alpha\) para esta distribuição de perdas em função dos parâmetros da GPD estimada e também fazendo uso da distribuição empírica de F.

Sob a Suposição 1 nós temos que a cauda da distribuição F, \(\bar{F}(x)\), para \(x \geq u\) é dada por:

\[\begin{align}
\bar{F}(x) & = P(X>u)P(X>x|X>u) \nonumber \\
& = \bar{F}(u) P(X-u>x-u|X>u) \nonumber \\
& = \bar{F}(u)\bar{F}_u(x-u) \nonumber \\
& = \bar{F}(u)\left(1+\xi \frac{x-u}{\beta}\right)^{-1/\xi}
\tag{9}
\end{align}\]

Da qual se soubéssemos exatamente a distribuição F teríamos um modelo analítico para as probabilidades de perdas na cauda da distribuição. Aqui \(x\) são os valores a serem observados das perdas, e portanto \(x-u\) são as perdas em excesso ao limiar.

O que fizemos através da equação (9) foi efetivamente separar a distribuição F, ou melhor, sua cauda, em duas partes. A primeira parte, para valores menores que u, não foi modelado analiticamente e portanto utilizamos a distribuição empírica das perdas, aqui representada por sua cauda \(\bar{F}(u)\), que nada mais é que o número observado de excessos de u sobre o número total de observações da amostra.

A segunda parte é justamente a modelagem através de uma GPD com parâmetros \(\xi \text{ e } \beta\) dado o limiar u. Por esta modelagem paramétrica podemos conhecer as probabilidades de cauda para valores de x maiores que u.

O quantil \(\alpha\) é a inversa da função distribuição e nos retorna o valor para o qual um percentual \(\alpha\) de observações da amostra é menor ou igual. Assim sendo, \(VaR_\alpha\) nada mais é que um quantil alto para o qual determinamos que \(\alpha \%\) das perdas devem ser menores ou iguais a este valor.

Como a equação (9) fornece a probabilidade de cauda, então esta é igual a \(1- \alpha\) para um valor de \(\alpha \geq F(u)\). Fazendo \(\bar{F}(x)=1-\alpha\) na equação (9) o valor de x representará \(VaR_\alpha\) e nos basta manipular esta equação até isolarmos \(VaR_\alpha\) como função de \(\bar{F}(u), \alpha \text{ e dos parâmetros da GPD } \xi \text{ e } \beta\). Que nos garante a equação abaixo:

\[\begin{equation}
VaR_\alpha = q_\alpha(F) = u+\frac{\beta}{\xi}\left[ \left( \frac{1-\alpha}{\bar{F}(u)}\right)^{-\xi}-1 \right]
\tag{10}
\end{equation}\]

A medida \(ES_\alpha\) pode ser entendida como a média das perdas que excedem o valor dado por \(VaR_\alpha\). Como o próprio \(VaR_\alpha\) é um quantil acima do valor de limiar u, \(ES_\alpha\) é dado pelo valor do \(VaR_\alpha\) somado a função média dos excessos dada pela equação (8) fazendo \(v = VaR_\alpha\). Esta média é convergente para valores de \(\xi < 1\) conforme já demonstrado. Ou seja, \(ES_\alpha=VaR_\alpha + e(VaR_\alpha)\). A qual nos rende de forma mais geral:

\[\begin{equation}
ES_\alpha = \frac{VaR_\alpha}{1-\xi}+\frac{\beta-\xi u}{1-\xi}
\tag{11}
\end{equation}\]

Portanto, ambas medidas de risco \(VaR_\alpha\) e \(ES_\alpha\), para distribuições de perdas que tiveram suas caudas modeladas através de uma GPD da forma \(G_{\xi, \beta(u)}\) com \(\xi <1 \text{ e } \beta > 0\), podem ser calculadas respectivamente através das equações dadas em (10) e (11). As estimativas destas medidas de risco serão encontradas através das estimativas dos parâmetros da GPD, assim como do limiar utilizado e de uma medida empírica de \(\bar{F}(u)\) que será o número de excessos verificados sobre o total de amostras. É claro que, ao adotarmos esta estimativa para \(\bar{F}(u)\) estamos implicitamente supondo que o número de amostras na série de perdas é significativa, assim como o número de excessos verificados. Daí a importância de se utilizar um valor u adequado, conforme explicitado na seção anterior.

As estimativas de medidas de risco desenvolvidas nesta seção se qualificam como medidas incondicionais, no sentido que elas não dependem do estado atual das coisas, mas sim de todo o histórico de eventos de forma uniforme. Em outras palavras, \(VaR_\alpha \text{ e } ES_\alpha\) derivados a partir das equações (10) e (11) são medidas históricas de risco associado ao ativo em análise e não levam em consideração se nos eventos mais recentes a volatilidade das perdas pode ser diferente do valor histórico.

De fato, uma das características marcantes das perdas (ou retornos, como o leitor preferir) dos ativos financeiros é o chamado clustering de volatilidade, onde grandes volatilidades (retornos positivos ou negativos) têm tendência a ficarem próximas ao longo da linha temporal. Em geral estas aglomerações de volatilidades surgem a partir da autocorrelação destas, ou seja, a volatilidade em um período t é dependente das volatilidades verificadas em períodos anteriores. Um modelo bastante encontrado na literatura que busca modelar estas dependências é o modelo GARCH e suas variantes.

Assim, ao passo que as estimativas de risco desenvolvidas nesta seção são valiosas para prazos mais longos, ainda é necessário desenvolver um modelo que lide com o fato das autocorrelações de volatilidades e portanto, que nossa variável aleatória não é independente e igualmente distribuída ao longo do tempo. O modelo proposto por McNeil and Frey (2000) pode ser utilizado para encontrar as medidas de risco \(VaR_\alpha\) e \(ES_\alpha\) condicionais que desejamos, ainda dentro da metodologia de peaks over treshold.

Medidas condicionais de risco

Ativos financeiros possuem características de autocorrelação, senão em seus retornos propriamente ditos, ao menos em suas volatilidades ou variações absolutas. Ou seja, dada uma grande variação no momento t é de se esperar novamente uma grande variação, não necessariamente na mesma direção daquela anterior, para o momento t+1 e posteriores. Desta forma, medidas de risco incondicionais, conforme aquelas derivadas na seção de medidas de risco podem ser adequadas somente para horizontes temporais mais longos, pois implicitamente tomam em consideração os fatos mais recentes com o mesmo valor de predição que fatos mais longínquos.

Também já foi bastante estudado e mostrado no artigo anterior que modelos que levem em conta riscos condicionais ao incorporarem as autocorrelações nas volatilidades, levam a resultados de testes melhores. Assim, nesta seção trabalharemos com o modelo proposto por McNeil and Frey (2000) os quais fazem uma adequação dos retornos dos ativos a um modelo GARCH e posteriormente tratam os erros desta modelagem como iid e portanto, a metodologia de POT e ajuste de uma GPD pode ser feito. Este modelo pode ser entendido como um modelo condicional para medidas de risco pois, efetivamente, é levado em conta o estado atual da previsão para a média e principalmente para a volatilidade ao se calcular o VaR. Desta forma a medida responde rapidamente às variações nos humores do mercado e pode sinalizar de forma ágil uma inadequação de capital reservado pela instituição financeira.

Além desta vantagem de cunho prático, a técnica possui uma atratividade teórica. O método POT deve ser aplicado a séries iid que sabidamente não é o caso de perdas de ativos financeiros. Ao se utilizar a técnica POT nos resíduos padronizados de um modelo GARCH o que se está realizando é uma pré-filtragem destas perdas, de forma a obter resíduos padronizados que sejam iid e portanto, aplicável a teoria de valor extremo.

Primeiramente vamos estabelecer um modelo GARCH para as perdas do ativo subjacente. Se denotarmos \(L_t\) como sendo a perda observada no período t, \(\mu_t\) e \(\sigma_t\) são respectivamente a média e o desvio padrão condicionais e mensuráveis através do conjunto de informações disponíveis em t-1 e seja \(Z_t\) inovações iid com média zero e desvio padrão unitário, então temos que:

\[\begin{equation}
L_t=\mu_t+\sigma_t Z_t
\tag{12}
\end{equation}\]

Seja \(F_L(l)\) a distribuição marginal de \(L_t\), então \(F_{L_{t+1}} | \mathcal{G}_t(l)\) é a distribuição preditiva da perda para o próximo período, onde \(\mathcal{G}_t\) é o conjunto de informações disponíveis no período t, incluindo-o. Portanto, para o cálculo das medidas condicionais de risco estamos interessados em um quantil \(\alpha\) na cauda de \(F_{L_{t+1} | \mathcal{G}_t}(l)\). Este quantil \(\alpha\), que será o nosso \(VaR_\alpha\), é o ínfimo l tal que o valor da distribuição preditiva seja maior ou igual a \(\alpha\). Ao passo que o valor condicional do ES será o valor esperado das perdas previstas que sejam maiores que VaR para o mesmo intervalo de confiança. Ou seja:

\[\begin{align}
VaR_\alpha^t=&\inf\{l \in \mathbb{R}: F_{L_{t+1} | \mathcal{G}_t}(l) \geq \alpha\}, \\
ES_\alpha^t=&E[L_{t+1} | L_{t+1} > VaR_\alpha^t]
\end{align}\]

Considerando que nossa distribuição de perdas é dada pela equação (12) e sabendo das propriedades de variáveis aleatórias e do operador de expectância, as equações dadas acima subsumem a:

\[\begin{align}
VaR_\alpha^t=&\mu_{t+1}+\sigma_{t+1}z_\alpha, \tag{13} \\
ES_\alpha^t=&\mu_{t+1}+\sigma_{t+1}E[Z | Z>z_\alpha] \tag{14}
\end{align}\]

onde \(z_\alpha\) é o quantil \(\alpha\) das inovações Z.

Agora nos falta escolher um processo que modele nossa série temporal dada em (12), ou seja, precisamos especificar o comportamento de \(\mu_t\) e \(\sigma_t\). Por suposição do modelo, especificamos que o comportamento destas variáveis é dependente de acontecimentos passados, contidos no conjunto de informações \(\mathcal{G}_{t-1}\) . Dentre os diversos modelos já propostos para estimar médias e volatilidades condicionais, está o simples porém efetivo modelo GARCH(1,1) para a volatilidade condicional e o modelo AR(1) para a média condicional. Uma extensão destes modelos básicos para outros mais complexos pode ser facilmente obtida e é vasta na literatura, como exemplo modelos GARCH-M, Treshold GARCH, EGARCH, etc. para volatilidades condicionais e um modelo do tipo ARMA para a média.

Como critérios para a escolha deste modelo de filtro no primeiro estágio, deseja-se que as inovações \(Z_t\), através de suas realizações na forma dos resíduos padronizados estimados no modelo possuam 2 características, ausência de autocorrelação serial em seus valores e nos seus quadrados.

Neste artigo, visando aplicar a teoria do valor extremo para o cálculo das medidas condicionais de risco, não faremos maiores assunções acerca da distribuição das inovações, como por exemplo assumir uma determinada distribuição (e.g. Normal ou t de Student), mas está implícito que esta pertence ao MDA de uma GEV e portanto a distribuição de seus excessos sobre um limiar segue aproximadamente uma GPD.

Dadas estas considerações, o modelo adotado segue um formato em dois estágios para ser implementado, como segue.

Referências

Balkema, A A, and L de Haan. 1974. “Residual Life Time at Great Age.” The Annals of Probability 2 (5): 792–804. doi:10.1214/aop/1176996548.

Embrechts, P, C Klüppelberg, and T Mikosch. 1997. Modelling Extremal Events for Insurance and Finance. Springer.

Fisher, R A, and L H C Tippett. 1928. “Limiting forms of the frequency distribution of the largest or smallest member of a sample.” Proceedings of the Cambridge Philosophical Society 24: 180–90.

Gnedenko, B V. 1941. “Limit theorems for the maximal term of a variational series.” Comptes Rendus (Doklady) de L’Académie Des Sciences de L’URSS 32: 7–9.

———. 1943. “Sur la distribution limite du terme maximum d’une série aléatoire.” Annals of Mathematics 44: 423–53.

McNeil, Alexander J, and Rüdiger Frey. 2000. “Estimation of tail-related risk measures for heteroscedastic financial time series: an extreme value approach.” Journal of Empirical Finance 7 (3-4): 271–300. doi:10.1016/s0927-5398(00)00012-8.

Pickands, James. 1975. “Statistical Inference Using Extreme Order Statistics.” Annals of Statistics 3: 119–31. doi:10.1214/aos/1176343003.


  1. Distribuição degenerada é aquela cuja densidade de probabilidade está totalmente concentrada em apenas um ponto de seu domínio.
Posted by Rafael F. Bressan in Derivativos & Riscos, 2 comments
Risco de mercado, princípios de Basileia e a teoria do valor extremo

Risco de mercado, princípios de Basileia e a teoria do valor extremo

Neste artigo iniciaremos uma discussão sobre a utilização da teoria do valor extremo – EVT para o cálculo de risco de mercado de ativos financeiros. Desta forma, a EVT pode ser utilizada tanto para o cálculo de VaR quanto ES, recaindo sobre a categoria de modelo semi-paramétrico.

Este será o primeiro artigo de uma série de três. Nesta introdução a EVT, faremos uma vasta revisão da literatura aplicada a finanças. O segundo artigo apresentará ao leitor já familiarizado a modelagem matemática das medias de risco utilizando a EVT e por fim, o último artigo apresentará um estudo de caso, comparando diversos modelos para o cálculo do VaR e inferindo qual modelo é mais adequado com base em critérios bem definidos na literatura. Os artigos foram adaptados de um trabalho de iniciação científica do autor e, portanto, apresentam um caráter mais acadêmico que o normalmente encontrado nos artigos do Clube de Finanças. Ainda assim, o assunto é relevante e atual dentro do gerenciamento de risco das instituições financeiras e desta forma acreditamos que nossos leitores se beneficiarão desta série.

Introdução

A medição do risco de mercado ao qual os portfólios dos investidores está sujeito é objeto de devoção de esforços tanto por parte das instituições e investidores em geral como por parte dos reguladores. Instituições financeiras – IF em todo o mundo, de acordo com suas regulações locais e com os princípios de Basileia ( Basel Comittee on Banking Supervision – BCBS do Banco de Compensações Internacionais – BIS) são obrigadas a reservar uma parcela de seu capital como provisionamento contra flutuações adversas do mercado, como forma de mitigar seu risco de insolvência.

Estas instituições devem manter seu risco de insolvência controlado, e a percepção externa deve ser tal que não haja desconfiança do público com sua habilidade em controlar este risco. Se a confiança na instituição se esvai e a percepção de risco é elevada, rapidamente uma crise de liquidez pode surgir, com depositantes sacando seus recursos ao mesmo tempo em que outras fontes de funding também se tornam escassas. Em tal situação, é natural o banco ou IF, ir ao mercado para vender seus ativos e levantar os recursos necessários. Neste momento uma crise de liquidez no mercado pode levar a uma possível insolvência da IF pois, não há garantias que no mercado aberto, os ativos do banco serão justamente avaliados e arrematados.

Uma importante característica das séries de retornos financeiros é sua alta volatilidade, não constante e tampouco seguindo uma distribuição Normal. Assim, eventos extremos, e neste caso estamos interessados em perdas de grande magnitude, acontecem com uma frequência alta demais para serem descartadas como apenas outliers, e portanto passaram a atrair a atenção dos participantes do mercado, entre eles os investidores e reguladores. Estas observações induziram uma gama de estudos, empíricos e teóricos, voltados a explicar o comportamento dos retornos de séries financeiras e modelar de forma adequada as caudas da distribuição destes retornos. Não somente estes estudos são de grande relevância para o gerenciamento de risco nas instituições financeiras, como também são obrigatórios segundo o acordo de Basileia, uma vez que este requer o cálculo do Valor em Risco – VaR, para então a instituição poder projetar o seu nível requerido de capital.

De acordo com os princípios de Basileia III, BCBS (2011), BCBS (2013a), BCBS (2014), as instituições financeiras supervisionadas pelos Bancos Centrais devem manter buffers de capital contra riscos de mercado, crédito, liquidez, entre outros. Dentro dos riscos de mercado, as duas formas mais usuais de fazer a quantificação destes são os métodos de Valor em Risco – VaR e o Expected Shortfall – ES. Este último relacionado ao primeiro, sendo definido como o valor esperado das perdas que excedem o VaR calculado para um determinado nível de confiança.

VaR é um quantil alto \(\alpha\) da distribuição de perdas de um ativo ou portfólio em um determinado período de tempo, ao passo que ES é o valor esperado das perdas que excedem VaR, para um mesmo período e nível de confiança \(\alpha\).

O método VaR para cálculo de risco de mercado ao qual um portfólio está sujeito foi primeiramente introduzido através de RiskMetrics (1995), uma metodologia adotada pelo banco J. P. Morgan. Vem desde então sendo amplamente adotado pela indústria financeira e largamente estudado pela academia. Inúmeras variantes do modelo foram propostas e continuam sendo utilizadas com o passar dos anos. Para o cálculo do VaR é necessária uma suposição acerca da distribuição dos retornos, e por conseguinte do comportamento da cauda desta.

As variações na metodologia original de estimação do VaR surgem principalmente em função de críticas a abordagem proposta, a qual inclui a suposição de retornos independentes e igualmente distribuídos, covariâncias constantes entre os ativos de um portfólio e a distribuição normal dos retornos.

Por meio de dois artigos Artzner et al. (1997) e Artzner et al. (1999), foi introduzido na literatura o conceito de medida coerente de risco. Para uma medida ser considerada coerente, primeiramente foram introduzidas quatro propriedades cunhadas através de axiomas, as quais estas medidas deveriam possuir, invariância translacional, sub-aditividade, homogeneidade positiva, e monotonicidade.

VaR especificamente não possui a propriedade da sub-aditividade para alguns casos, sendo esta uma das grandes críticas ao VaR. Desta forma, em casos específicos, é possível uma carteira diversificada em que sejam computados o VaR de cada um de seus ativos, ser agregada e possuir um VaR do portfólio maior que o maior VaR de seus componentes, algo que não condiz com uma medida coerente de risco. Para contornar este fato, Acerbi and Tasche (2002) propuseram o Expected Shortfall e comprovam que este é uma medida coerente de risco. Além de ser coerente, o ES possui uma segunda vantagem com relação ao VaR, considerando que o ES nos informa uma medida de tendência central do tamanho das perdas que excedem o valor do quantil VaR. Ou seja, o VaR nos informa apenas que uma proporção \(\alpha\) das perdas serão menores que a medida, mas nada nos informa se esta perda extraordinária de fato ocorrer. Mesmo sendo criticado como uma medida não coerente de risco, o VaR continua a ser amplamente utilizado, mesmo que agora em conjunto com o ES.

Mais recentemente o Comitê de Supervisão Bancária de Basileia tem se proposto a adotar o Expected Shortfall como medida de risco de mercado. BCBS (2013b). O Comitê cita a grande importância da escolha da medida de risco e sua calibração, e portanto estas são relevantes para as decisões de política do Banco. Entre as dificuldades encontradas pelo VaR estão mais notadamente sua inabilidade em estimar o “risco de cauda” da distribuição de perdas, uma vez que VaR não leva em conta a distribuição das perdas acima do valor de corte.

Desta forma, foi decidido que o ES seria a medida de risco favorita para a abordagem pelo banco chamada de modelos internos. Ou seja, os bancos supervisionados devem utilizar o ES para o cálculo do risco de mercado a que estão sujeitos em seus modelos internos. O comitê também se decidiu por um nível de confiança de 97,5% para o ES, em contraposição a 99% para o VaR. O comitê espera que esta abordagem para o cálculo da medida de risco de mercado trará benefícios se comparada a antiga abordagem pelo Var, entre elas um modelo com resultados mais estáveis e menor sensibilidade a observações extremas (outliers).

Revisão de Literatura

Teoria do valor extremo, é um ramo da estatística que lida diretamente com eventos raros, extremos. Seu objetivo é modelar o comportamento assintótico de eventos que se distanciam muito da mediana de uma distribuição. Justamente por esta característica, a EVT está sendo utilizada para modelar riscos que possuem distribuição com caudas longas, um dos fatos estilizados bem conhecidos sobre retornos de ativos financeiros.

Ao utilizar a EVT, e mais especificamente o método conhecido como peaks over treshold – POT, se está interessado em modelar apenas a parte da cauda da distribuição das perdas de um ativo financeiro maiores que um determinado valor de limiar u. É da modelagem desta cauda, portanto, que se calcula a estimativa de VaR.

A teoria do valor extremo vem sendo utilizada nas finanças a algum tempo. Devido as características das séries financeiras, por exemplo a leptocurtose, a distribuição normal para os retornos vem sendo rechaçada, enquanto outras distribuições mais adequadas assumem o posto para descrever o comportamento das perdas e retornos de séries financeiras. A EVT, ao modelar distribuições com caudas longas, pode ser utilizada para esta finalidade. A introdução da EVT em dois estágios para a estimação de medidas condicionais de risco pode ser atribuída a McNeil and Frey (2000). Neste artigo os autores propuseram um modelo para a estimação do VaR e ES de forma condicional, tanto para período de um dia como para dez dias a frente, de acordo com o normativo de Basileia vigente a época. Seu modelo, que leva em conta as longas caudas e a natureza estocástica da volatilidade, se ajustam de forma mais fidedigna aos dados. Daníelsson and Morimoto (2000) fizeram uma crítica aos modelos condicionais de cálculo do VaR para o mercado japonês e chegaram a conclusão que um modelo EVT incondicional, inclusive sem o estágio de filtragem inicial, era mais adequado para fins práticos.

Byström (2004) encontrou que ambas abordagens da EVT, máximos em bloco como POT, combinadas com análise de séries temporais tradicional (ARIMA e GARCH), no que se configura uma abordagem condicional para a estimação do VaR, têm os melhores resultados tanto em períodos ditos tranquilos como em épocas de alta volatilidade. Voltando a aplicação da EVT para mercados emergentes, Gencay and Selcuk (2004) utilizaram a teoria de valor extremo para o cálculo de VaR e teste de estresse. Seus resultados apontam que a EVT se torna melhor a medida que o quantil utilizado para o cálculo se eleva. Além disso, encontraram que as caudas da distribuição de retornos se comportam de maneira diferente entre ganhos e perdas. Uma comparação entre diversos modelos de previsão de VaR foi realizada por Kuester, Mittnik, and Paolella (2006). Encontraram que a grande maioria dos modelos subestima o risco, mesmo sendo aceitáveis do ponto de vista regulatório, sendo que o modelo condicional GARCH-EVT está entre as melhores estimações.

Karmakar and Shukla (2014) retomam o modelo em dois estágios e fizeram uma comparação entre o modelo EVT condicional e outros modelos já consagrados no cálculo de VaR em 3 mercados desenvolvidos (EUA, Reino Unido e Japão) e 3 mercados emergentes asiáticos (Índia, Hong Kong e Corea do Sul). O modelo GARCH adotado no primeiro estágio é diferente para cada mercado, porém com uma particularidade comum, todos são modelos assimétricos. Novamente encontram que o modelo EVT condicional é superior aos demais através de testes de cobertura incondicional e condicional.

Chavez-Demoulin, Davison, and McNeil (2005) e Herrera and Schipp (2013) tomam um caminho diferente para modelar a EVT. Enquanto o primeiro adota o método de processos pontuais de auto-excitação1, que dadas algumas condições, converge para o método POT, o segundo modela explicitamente as durações de tempo entre as observações de extremos, ou seja, as perdas em excesso ao limiar escolhido. A magnitude destas perdas continua a ser modelada através da distribuição generalizada de Pareto – GPD. Seu modelo é então chamado de autoregressive conditional duration peaks over threshold model – ACD-POT.

Rocco (2014) fez uma grande revisão sobre o uso da EVT em finanças. As principais aplicações encontradas foram o teste de suposições para diferentes distribuições dos dados, cálculo de medidas de risco como o VaR e ES, alocação de ativos sob restrições e otimização de portfólios, e no estudo de contágio e dependência entre mercados sob condições de alto estresse.

Mais recentemente a EVT encontrou outras formas de aplicação e cálculo. Chavez-Demoulin, Embrechts, and Hofert (2016) sugeriram um modelo onde a frequência e a severidade das perdas podem ser modeladas através da EVT com covariantes. Karmakar and Paul (2016) por sua vez, fizeram uma aplicação do modelo EVT condicional a retornos intra-diários de dezesseis mercados diferentes.

O cálculo de VaR em instituições financeiras e bancos comerciais vem sendo implementado e é requerimento do comitê de Basileia. A EVT entra como uma das metodologias utilizadas neste cálculo, Longin (2000) a utilizou e propôs um modelo para agregar o risco de uma posição de mercado, em contraste a modelos univariados apenas. Testes de estresse podem ser realizados através de sua técnica. Utilizando-se de dados reais de seis grandes bancos comerciais americanos, Berkowitz and O’Brien (2002) analisou a precisão de seus modelos VaR. Ele encontrou que os bancos são amplamente conservadores em suas estimativas de VaR, com níveis de cobertura muito acima dos valores nominais. Wong, Cheng, and Wong (2003) promoveu um estudo sobre as implicações da precisão do modelo VaR no gerenciamento do risco de mercado em bancos. Ele adotou os critérios de Basileia para realizar um estudo de backtest e verificou que modelos baseados em previsões de volatilidade através de GARCH não estão de acordo com estes critérios por muitas vezes. Já em um estudo recente, O’Brien and Szerszeń (2017) fez uma avaliação dos modelos de risco de mercado de bancos no pré, durante e pós crise financeira de 2008. Encontrou que tanto no pré quanto no pós crise, os bancos se comportaram de maneira excessivamente conservadora, entretanto, durante a crise financeira as violações ao VaR excederam muito seu valor esperado assim como aconteceram de forma agrupada, um sinal de má especificação nos modelos adotados. O autor comparou estes resultados com um modelo baseado em GARCH e verificou que esta alternativa é muito superior aos atuais modelos.

Conclusão

A avaliação da probabilidade de eventos raros e extremos é uma questão importante no gerenciamento de riscos das carteiras financeiras. A teoria dos valores extremos fornece os fundamentos sólidos necessários para a modelagem estatística de tais eventos e o cálculo de medidas de risco extremo. Não somente a teoria é adequada para este tipo de modelagem, como também é requerido das instituições financeiras que façam suas estimativas de risco de cauda de maneira conservadora mas realista com as atuais condições de mercado. Seja qual for a medida de risco de mercado desejada, VaR ou ES, a EVT através do método POT vem sendo utilizada com excelentes resultados e tem se tornado a prática de mercado.

Em um próximo artigo faremos uso da EVT e outras técnicas de modelagem de VaR para avaliar, através de testes estatísticos, a capacidade preditiva de sete modelos distintos de cálculo da métrica de valor em risco comumente encontrados na literatura, por meio da técnica de backtesting. Os testes aplicados abrangem características importantes do VaR como cobertura incondicional, independência entre violações e superioridade do modelo dada uma função de perda adequada.

Referências

Acerbi, Carlo, and Dirk Tasche. 2002. “On the coherence of expected shortfall.” Journal of Banking & Finance 26 (7). Elsevier: 1487–1503.

Artzner, Philippe, Freddy Delbaen, Jean-Marc Eber, and David Heath. 1997. “Thinking Coherently.” RISK 10 (11): 68–71.

———. 1999. “Coherent Measures of Risk.” Mathematical Finance 9 (3): 203–28. doi:10.1111/1467-9965.00068.

BCBS. 2011. “Basel III: A global regulatory framework for more resilient banks and banking systems.” Revised ve. Bank for International Settlements -Basel Committee on Banking Supervision. http://www.bis.org/publ/bcbs189.pdf.

———. 2013a. “Basel III: The liquidity coverage ratio and liquidity risk monitoring tools.” Bank for International Settlements – Basel Committee on Banking Supervision. http://www.bis.org/publ/bcbs238.pdf.

———. 2013b. “Fundamental review of the trading book: A revised market risk framework.” Bank for International Settlements – Basel Committee on Banking Supervision. http://www.bis.org/publ/bcbs265.pdf.

———. 2014. “Basel III: The net stable funding ratio.” Bank for International Settlements – Basel Committee on Banking Supervision. http://www.bis.org/bcbs/publ/d295.pdf.

Berkowitz, Jeremy, and James O’Brien. 2002. “How Accurate Are Value-at-Risk Models at Commercial Banks?” The Journal of Finance 57 (3). Blackwell Publishers, Inc.: 1093–1111. doi:10.1111/1540-6261.00455.

Byström, Hans NE. 2004. “Managing Extreme Risks in Tranquil and Volatile Markets Using Conditional Extreme Value Theory.” International Review of Financial Analysis 13 (2). Elsevier: 133–52.

Chavez-Demoulin, V, A C Davison, and A J McNeil. 2005. “Estimating value-at-risk: a point process approach.” Quantitative Finance 5 (2): 227–34. doi:10.1080/14697680500039613.

Chavez-Demoulin, Valérie, Paul Embrechts, and Marius Hofert. 2016. “An Extreme Value Approach for Modeling Operational Risk Losses Depending on Covariates.” Journal of Risk and Insurance 83 (3): 735–76. doi:10.1111/jori.12059.

Daníelsson, Jón, and Yuji Morimoto. 2000. “Forecasting Extreme Financial Risk: A Critical Analysis of Practical Methods for the Japanese Market.” Monetary and Economic Studies 2 (18). Institute for Monetary; Economic Studies, Bank of Japan: 25–48.

Gencay, Ramazan, and Faruk Selcuk. 2004. “Extreme Value Theory and Value-at-Risk: Relative Performance in Emerging Markets.” International Journal of Forecasting 20 (2). Elsevier: 287–303.

Hawkes, Alan G. 1971. “Spectra of Some Self-Exciting and Mutually Exciting Point Processes.” Biometrika 58 (1): 83–90. doi:10.2307/2334319.

Herrera, Rodrigo, and Bernhard Schipp. 2013. “Value at risk forecasts by extreme value models in a conditional duration framework.” Journal of Empirical Finance 23: 33–47. doi:10.1016/j.jempfin.2013.05.002.

Karmakar, Madhusudan, and Samit Paul. 2016. “Intraday Risk Management in International Stock Markets: A Conditional Evt Approach.” International Review of Financial Analysis 44. Elsevier: 34–55.

Karmakar, Madhusudan, and Girja K. Shukla. 2014. “Managing Extreme Risk in Some Major Stock Markets: An Extreme Value Approach.” International Review of Economics and Finance. doi:https://doi.org/10.1016/j.iref.2014.09.001.

Kuester, Keith, Stefan Mittnik, and Marc S. Paolella. 2006. “Value-at-Risk Prediction: A Comparison of Alternative Strategies.” Journal of Financial Econometrics 4 (1): 53–89. doi:10.1093/jjfinec/nbj002.

Longin, François M. 2000. “From Value at Risk to Stress Testing: The Extreme Value Approach.” Journal of Banking & Finance 24 (7): 1097–1130. doi:https://doi.org/10.1016/S0378-4266(99)00077-1.

McNeil, Alexander J, and Rüdiger Frey. 2000. “Estimation of tail-related risk measures for heteroscedastic financial time series: an extreme value approach.” Journal of Empirical Finance 7 (3-4): 271–300. doi:10.1016/s0927-5398(00)00012-8.

O’Brien, James, and Paweł J. Szerszeń. 2017. “An Evaluation of Bank Measures for Market Risk Before, During and After the Financial Crisis.” Journal of Banking & Finance 80 (Supplement C): 215–34. doi:https://doi.org/10.1016/j.jbankfin.2017.03.002.

RiskMetrics. 1995. “Technical Document – 3rd Edition.” J.P Morgan Guaranty Trust Company.

Rocco, Marco. 2014. “Extreme Value Theory in Finance: a survey.” Journal of Economic Surveys 28 (1). Wiley Online Library: 82–108. doi:10.1111/j.1467-6419.2012.00744.x.

Wong, Michael Chak Sham, Wai Yan Cheng, and Clement Yuk Pang Wong. 2003. “Market Risk Management of Banks: Implications from the Accuracy of Value-at-Risk Forecasts.” Journal of Forecasting 22 (1). Wiley Online Library: 23–33.


  1. Para maiores detalhes sobre processos pontuais de auto-excitação, Hawkes (1971) é a referência original.
Posted by Rafael F. Bressan in Derivativos & Riscos, 0 comments
Betting against beta

Betting against beta

Betting agains beta (BAB), ou apostando contra o beta é uma conhecida estratégia de investimento que surgiu com o trabalho de Frazzini&Pedersen(2014). De fato, a estratégia é tratada como um fator explicativo de retornos e deriva de uma conhecida “anomalia” de mercado, a low risk anomaly da qual a estratégia é um caso particular.

Em nosso artigo anterior, utilizamos esta estratégia para apresentar a plataforma Quantopian. Agora vamos aprofundar na análise e implementação desta estratégia, pormenorizando seus fundamentos, (tentativas de) explicações sobre o porquê esta estratégia funciona e como implementá-la no Quantopian.

Anomalia do baixo risco

Esta anomalia, em relação a hipótese de mercados eficientes e das teorias de risco-retorno em geral, relaciona-se ao fato que, empiricamente é observado que retornos são negativamente relacionados ao risco, seja este risco medido por volatilidade ou, em nosso caso de interesse, o beta. É chamada anomalia pelo simples fato que a teoria financeira, e basicamente todo o senso comum sobre o assunto, nos informa que quanto maior o risco tomado, maiores devem ser os retornos esperados, ou seja, uma relação positiva entre risco e retorno. O fato de empiricamente, dentro de uma mesma classe de ativos (e.g. ações) observarmos uma relação inversa, vai de encontro a teoria e portanto seria uma “anomalia”.

Esta anomalia em geral é tratada através de duas vertentes, da baixa volatilidade ou low volatility anomaly que busca explicar os resultados em que ações com baixa volatilidade apresentam retornos consideravelmente maiores que ações de alta volatilidade, e a anomalia do beta. A teoria de Sharpe-Lintner, o CAPM, prescreve que ações com maiores betas, assim entendido a sensibilidade do retorno de uma ação específica com relação ao retorno da carteira de mercado, devem apresentar maiores retornos que ações com menores betas. Este maior retorno seria explicado pela maior exposição ao risco de mercado, de forma que o beta seria esta medida de risco.

Porém, já na década de 70 esta relação positiva entre beta e retorno começou a ser atacada através de testes econométricos. Black, Jensen e Scholes (1972) encontraram de fato uma relação positiva, entretanto muito horizontal, com pouco retorno excedente para ativos de alto beta, o que não condizia com o CAPM. Fama&French (1992) também atacaram o beta em seu artigo seminal. Considerando os fatores valor e tamanho, o mercado tornava-se um fator de pouco poder de explicação.

Em seu livro “Asset Management: a systematic approach to factor investing”, Andrew Ang (2014) fornece um bom resumo da anomalia do beta. Um dos problemas centrais, e que pode causar as discrepâncias com relação ao CAPM observadas, é como estimar o beta de uma ação e relacioná-lo aos retornos futuros. A grande maioria dos artigos utiliza uma regressão linear simples entre retornos passados tanto do ativo quanto do mercado para a estimação do beta. Feita a estimação, o que se obtém é uma medida ex-ante que será então comparada ao retornos ex-post (i.e. futuros). Por detrás desta metodologia está a assunção que os betas estimados permanecerão os mesmos durante o período futuro, o que na prática não é verdade.

Valores de beta das ações pode variar bastante a medida que novas informações fluem dia após dia, em outras palavras, o beta não é constante no tempo. A categorização de ações de alto/baixo beta em um período pode não ser mantida em período posterior, o que poderia ao menos em parte explicar a falha dos testes em verificar a relação positiva entre retornos e beta.

De qualquer forma, a previsão que o CAPM faz é que os retornos e betas contemporâneos estão positivamente relacionados. Ou seja, o que realmente interessa para a teoria é a relação entre beta/retorno realizados na mesma janela temporal. Quando feitos testes neste sentido os retornos se apresentam crescentes quanto maior o beta realizado. Porém existe um problema de ordem prática com a teoria, não é possível fazer uma estimação de variáveis contemporâneas! Não podemos estimar o beta sem que ainda tenhamos observado o retorno da carteira de mercado. E este problema nos remete a situação anterior, onde os retornos ex-post estão negativamente relacionados aos betas ex-ante.

BAB e sua fundamentação

O fator BAB foi originalmente proposto por Frazzini&Pederesen (2014) que constroem o fator fazendo-o comprar ações de baixo beta e vender aquelas de alto risco sistemático. Porém construir um fator para negociar a anomalia do beta não pode ser feito apenas tomando as diferenças dos portfólios na figura 1 abaixo. As diferenças nos retornos médios entre os quintis são pequenos, a verdadeira diferença reside nas razões de Sharpe entre as carteiras. Os autores portanto, formam seu fator BAB escalando os portfólios de beta baixo e alto pelos betas ex-ante dos próprios portfólios.

As ações são classificadas em ordem crescente com base em seu beta estimado e são atribuídas a um dos dois portfólios: beta baixo e beta alto. Em cada carteira, os títulos são ponderados pelos betas (ou seja, as ações de beta inferior têm pesos maiores no portfólio de beta baixo e aquelas de beta mais altos têm pesos maiores no portfólio de beta alto). As carteiras são rebalanceadas a cada mês.

Porém, apenas ponderando o peso das ações pelos seus betas no momento de formação do portfólio, este não seria neutro ao mercado e, portanto, não poderia ser considerado um fator de risco que explica retornos em excesso ao retorno do mercado. Assim, é necessário reescalar as posições compradas e vendidas pelos seus respectivos betas e o resultado será um portólio market neutral (i.e. ex-ante ao menos) porém alavancado. As ações de baixo beta necessitarão de alavancagem para chegar a um beta igual a 1, enquanto as ações vendidas, de alto beta, serão apenas uma fração menor da carteira e não financiarão completamente a parte comprada. A diferença, é tomada emprestada a taxa de juros livre de risco.

Ao final, o retorno do fator BAB pode ser escrito como:

$$BAB_{t+1} = \frac{r_{L,t+1} − r_f}{\beta_{L,t}} – \frac{r_{H,t+1} − r_f}{\beta_{H,t}}$$

onde \(r_{L,t+1}\) é o retorno da carteira de beta baixo e \(r_{H,t+1}\) é o retorno da carteira de beta alto. Os betas dos sub-portfólios baixo (comprado) e alto (vendido) no início do período são dados por \(\beta_{L,t}\) e \(\beta_{H,t}\), respectivamente.

Por ser um fator construído de forma a ser neutro ao mercado, qualquer retorno positivo que esta carteira apresente será um retorno não explicado pelo mercado, um retorno extraordinário.

Quantopian research

Terminamos com a teoria e passamos a prática. Conforme prometido no artigo anterior, vamos demonstrar os códigos Python necessários para implementar a estratégia BAB no Quantopian.

Começamos no ambiente de pesquisa. Vamos importar as bibliotecas necessárias para realizar o pipeline de aquisição de informações e cálculo de fatores (i.e. beta), do universo de ativos de nosso interesse e do Alphalens para análise da estratégia.

Utilizaremos a função SimpleBeta para calcular o beta das ações e então ranquea-los. Esta é uma função de cálculo de fator fornecida pela API do Quantopian e é desenvolvida tendo em mente desempenho, ela é diversas vezes mais rápida que, por exemplo, extrair o beta via regressão linear de alguma biblioteca como a StatsModels.

# Importa Pipeline
from quantopian.pipeline.data.builtin import USEquityPricing
from quantopian.research import run_pipeline
from quantopian.pipeline import Pipeline
from quantopian.pipeline.factors import SimpleBeta
from quantopian.pipeline.filters import QTradableStocksUS
# Importa Alphalens
import alphalens as al
# Gerais
import datetime as dt

Para análise no Alphalens, deve-se estabelecer as datas inicial e final.

# Start and end dates for analysis
sdate = '2008-01-01'
edate = '2008-12-31'

Criando a pipeline

A função make_pipeline é ideal para coletar os dados dos ativos e fazer o screen destes. Ou seja, ela carrega dados de preços, volumes, fundamentos, etc. o que for necessário para o analista criar métricas, chamadas de “fatores” no Quantopian, que então possibilitam a filtragem destes ativos, restando apenas aqueles interessantes para compor a carteira.

Cálculos mais detalhados, como por exemplo os pesos que os ativos escolhidos irão ocupar na carteira não são adequados de serem feitos nesta função. Portanto, usualmente o que make_pipeline deve retornar são os valores dos filtros aplicados, se forem utilizados mais tarde no algoritmo, e valores lógicos indicando se o ativo faz parte da carteira como compra (long) ou venda (short). Ativos que não farão parte do portfólio neste momento podem ser excluídos da lista.

# Pipeline definition
def make_pipeline():
    """Pipeline for Betting Against Beta strategy.
    Author: Clube de Finanças Esag
    Collect assets and benchmark returns.
    Computes assets betas. Remember, beta is not affected by risk-free rate
    Rank the assets according to beta, sell top half and buy lowest half
    Rebalance every month"""
    universe = QTradableStocksUS() 
    beta = SimpleBeta(target=symbols('SPY'), regression_length = 252)
    z = - beta.zscore(mask = universe) # Lower betas, higher zscore

    # Filer for zscore >= 0
    zgeq0 = (z >= 0)

    return Pipeline(
        columns = {
            'beta': beta,
            'zscore': z,
            'zgeq0': zgeq0,
        },
        screen = (universe & z.notnan() & z.notnull())
    )

Agora basta rodar esta função que criamos, make_pipeline, através da API run_pipeline e atribuir o resultado a uma variável, que chamamos de output. Utilizamos o método head para verificar o formato retornado, que é um pandas DataFrame.

output = run_pipeline(make_pipeline(), sdate, edate)
output.head()
beta zgeq0 zscore
2008-01-02 00:00:00+00:00 Equity(2 [ARNC]) 1.344555 False -0.739436
Equity(24 [AAPL]) 1.183625 False -0.273716
Equity(31 [ABAX]) 1.207313 False -0.342267
Equity(41 [ARCB]) 1.346829 False -0.746016
Equity(52 [ABM]) 1.081440 True 0.022002

Agora que temos o resultado do pipeline, podemos fazer os cálculos necessários para atribuir os ativos às suas carteiras e seus pesos nesta. Como as carteiras serão apenas duas, metade long e outra metade dos ativos short, a coluna zgeq0 serve como indicador dos ativos comprados (true) e ativos vendidos. Já o cálculo dos pesos é realizado em duas etapas.

A primeira é atribuir os pesos proporcionais ao beta do ativo, dentro da sua carteira. Ao final da primeira etapa, teremos a soma dos pesos dos ativos comprados igual a 1 e a soma dos ativos vendidos igual a -1. Na segunda etapa deve-se reescalar estes pesos pelos betas das carteiras comprada e vendida, chegando aos pesos finais de cada ativo no portfólio completo.

# First round
# Compute weights for assets in output
k = 2.0 / sum(abs(output['zscore']))
output.loc[:, 'weight'] = k * output['zscore']
output.loc[:, 'beta_w'] = output['beta'] * output['weight']
print('Soma dos pesos comprados: ' + str(sum(output[output['zgeq0']]['weight'])))
print('Soma dos pesos vendidos: ' + str(sum(output[~output['zgeq0']]['weight'])))
Soma dos pesos comprados: 1.0
Soma dos pesos vendidos: -1.0
# Second round
betaL = sum(output[output['zgeq0']]['beta_w'])
betaH = sum(-output[~output['zgeq0']]['beta_w'])
output.loc[output['zgeq0'], 'weight'] = output.loc[output['zgeq0'], 'weight'] / betaL
output.loc[~output['zgeq0'], 'weight'] = output.loc[~output['zgeq0'], 'weight'] / betaH
print('BetaL: ' + str(betaL))
print('BetaH: ' + str(betaH))
print('Soma dos pesos comprados: ' + str(sum(output[output['zgeq0']]['weight'])))
print('Soma dos pesos vendidos: ' + str(sum(output[~output['zgeq0']]['weight'])))
BetaL: 0.667586254686
BetaH: 1.61494272142
Soma dos pesos comprados: 1.49793377707
Soma dos pesos vendidos: -0.619217007969

E para verificar como ficou nosso DataFrame, novamente o método head:

output.head()
beta zgeq0 zscore weight beta_w
2008-01-02 00:00:00+00:00 Equity(2 [ARNC]) 1.344555 False -0.739436 -2.311748e-06 -5.019681e-06
Equity(24 [AAPL]) 1.183625 False -0.273716 -8.557359e-07 -1.635728e-06
Equity(31 [ABAX]) 1.207313 False -0.342267 -1.070051e-06 -2.086322e-06
Equity(41 [ARCB]) 1.346829 False -0.746016 -2.332319e-06 -5.072912e-06
Equity(52 [ABM]) 1.081440 True 0.022002 1.663968e-07 1.201309e-07

Análise no Alphalens

Alphalens é uma biblioteca desenvolvida pelo próprio Quantopian que auxilia na análise preliminar de fatores explicativos de retorno, que os autores chamam de alfa. A função do Alphalens, portanto, é desenvedar quais fatores realmente possuem poder preditivo sobre os retornos dos ativos e desta forma orientar na formação de portfólios.

Esta biblioteca é capaz de gerar uma grande gama de estatísticas e gráficos dos fatores que incluem relatórios de retornos, turnover, grupamentos, coeficientes de informação, etc.

Uma vez que tem-se o DataFrame resultado da pipeline, devemos coletar os preços dos ativos utilizados pela estratégia no período de análise. O primeiro passo para tanto é saber quais ativos foram estes e guardá-los em uma lista. Em seguida utiliza-se a função da API get_pricing para baixar os preços destes ativos no período de interesse.

# Testing with Alphalens
# Get list of unique assets from the pipeline output
asset_list = output.index.levels[1].unique()

# Query pricing data for all assets present during
# evaluation period
asset_prices = get_pricing(
    symbols = asset_list,
    start_date = sdate,
    # end_date must be further down than edate from pipeline
    end_date = dt.datetime.strptime(edate, '%Y-%m-%d') + dt.timedelta(180),
    fields = 'open_price',
)

Uma vez com os preços capturados, o Alphalens fornece uma função para analisarmos o poder preditivo do nosso fator (i.e. os pesos calculados com base na estratégia BAB) em explicar retornos futuros. Basicamente esta função alinha o valor do fator em uma data t com os retornos obtidos em datas futuras de nossa escolha, por exemplo t+30, t+60, t+90. No caso de nossa estratégia, estaremos utilizando o fator weight para separar os ativos em duas metades, alto e baixo beta. Assim o argumento quantiles é utilizado para criar um determinado número de grupos de ativos dados pelo valor do fator. Se nosso objetivo fosse, por exemplo, comprar os 20% dos ativos de menores beta (maiores pesos) e vender os 20% com maiores betas, o argumento quantiles seria igual a 5 (cinco partes iguais cada uma com 20% dos ativos) e o Alphalens irá simular a compra do quantil mais alto e a venda do mais baixo.

# Get asset forward returns and quantile classification
# based on beta
factor_data = al.utils.get_clean_factor_and_forward_returns(
    factor = output['weight'],
    prices = asset_prices,
    quantiles = 2,
    periods = (30, 60, 90),
)
factor_data.head()
Dropped 0.6% entries from factor data: 0.6% in forward returns computation and 0.0% in binning phase (set max_loss=0 to see potentially suppressed Exceptions).
max_loss is 35.0%, not exceeded: OK!
30D 60D 90D factor factor_quantile
date asset
2008-01-02 00:00:00+00:00 Equity(2 [ARNC]) -0.007205 -0.003878 0.086637 -2.311748e-06 1
Equity(24 [AAPL]) -0.350630 -0.281026 -0.070558 -8.557359e-07 1
Equity(31 [ABAX]) -0.176192 -0.357959 -0.284639 -1.070051e-06 1
Equity(41 [ARCB]) 0.389765 0.440274 0.793690 -2.332319e-06 1
Equity(52 [ABM]) 0.006953 0.111918 0.023621 1.663968e-07 1

Visualizando resultados preliminares

Agora que possuímos os dados preparados pelo Alphalens, é possível visualizar alguns resultados. Apresentamos abaixo apenas um gráfico de retornos futuros separados por quantis, entretanto a biblioteca possui várias outras funções sendo uma delas bastante completa, que traz diversas tabelas e gráficos com inúmeras análises, al.tears.create_full_tear_sheet(factor_data) que não será mostrada aqui devido ao grande tamanho de sua resposta. Sugerimos também a leitura do tutorial do Alphalens.

# Calculate mean return by factor quantile
mean_return_by_q, std_err_by_q = al.performance.mean_return_by_quantile(factor_data)

# Plot mean returns by quantile and holding period
# over evaluation time range
al.plotting.plot_quantile_returns_bar(
    mean_return_by_q.apply(
        al.utils.rate_of_return,
        axis=0,
        args=('1D',)
    )
);

Os resultados obtidos, mesmo que preliminarmente, parecem promissores. O quantil 2, nossos ativos comprados, obtiveram retornos consideravelmente maiores que o quantil vendido, ou seja, nossa estratégia long-short em tese extrairá este spread de retornos e está pronta para ser levada ao ambiente de backtest, a IDE.

Portando para a IDE

A função make_pipeline foi criada de forma a ser copiada do ambiente de pesquisa e colada diretamente na IDE para implementação do algoritmo de backtest, sem a necessidade de maiores adaptações. Este é todo o propósito da bilioteca Pipeline. Entretanto, os cálculos que realizamos fora desta função, como por exemplo a definição dos pesos, devem sem implementadas no algoritmo de acordo com as bibliotecas e funções disponíveis neste.

Além das funções já programadas no ambiente de pesquisa, para o correto funcionamento do backtest deve-se programar obrigatoriamente a função initialize, que roda uma única vez ao início do algoritmo, e opcionalmente as funções handle_data e before_trading_start. Nosso algoritmo não faz uso de dados minuto-a-minuto, portanto não será implementada a função handle_data. Já a função before_trading_start é utilizada para cálculos antes de o mercado abrir, todos os dias. Também não haverá necessidade em implementar esta função, uma vez que nosso portfólio é rebalanceado apenas uma vez por mês.

Prosseguimos, portanto, com a implementação da função inicial. Relembrando, ela é executada apenas uma vez no início do backtest, logo, esta é a função onde faremos o agendamento (i.e. schedule) do rebalanceamento da carteira, que por sua vez irá chamar o pipeline criado.

import quantopian.algorithm as algo
# Pipeline
from quantopian.pipeline import Pipeline
from quantopian.pipeline.data.builtin import USEquityPricing
from quantopian.pipeline.filters import QTradableStocksUS
# Importing Factors used
from quantopian.pipeline.factors import  SimpleBeta
# Import Optimize API module
import quantopian.optimize as opt

def initialize(context):
    """
    Called once at the start of the algorithm.
    """    
    # Rebalance every month
    algo.schedule_function(
        rebalance,
        algo.date_rules.month_start(),
        algo.time_rules.market_open(),
    )
    # Create our dynamic stock selector.
    algo.attach_pipeline(make_pipeline(), 'pipeline')

Vejam como a função de inicialização é simples para esta estratégia. Antes de mais nada, é necessário importar as bibliotecas que serão utilizadas pelo algoritmo. No caso, estamos usando apenas implemetações do próprio Quantopian, entre elas funções da pipeline, fatores e o módulo de otimização que na verdade será usado apenas para o envio das ordens, conforme sugere a própria plataforma.

Após, faz-se a definição da função initialize. Tudo o que temos de fazer é programar nossa função de agendamento, schedule_function e informar qual o pipeline que será utilizado. Na função de agendamento informamos qual função deve ser chamada periodicamente, rebalance que definiremos a seguir e qual a periodicidade e momento da chamada. Nosso algoritmo chama a função rebalance todo início de mês assim que o mercado abre. Já a nossa conhecida função make_pipeline é atribuída ao nome pipeline e seu resultado será chamado durante a execução do rebalanceamento da carteira.

def rebalance(context, data):
    """
    Execute orders according to our schedule_function() timing.
    It is called every month start.
    """
    # Actually runs the pipeline. A DataFrame is the output
    output = algo.pipeline_output('pipeline')       
    output.dropna(inplace=True)

    # Compute weights for assets in output
    k = 2.0 / sum(abs(output['zscore']))
    output.loc[:, 'weight'] = k * output['zscore']
    output.loc[:, 'beta_w'] = output['beta'] * output['weight']
    betaL = sum(output[output['zgeq0']]['beta_w'])
    betaH = sum(-output[~output['zgeq0']]['beta_w'])
    output.loc[output['zgeq0'], 'weight'] = output.loc[output['zgeq0'], 'weight'] / betaL
    output.loc[~output['zgeq0'], 'weight'] = output.loc[~output['zgeq0'], 'weight'] / betaH

    # Sets objective function
    obj = opt.TargetWeights(output['weight'])
    # Execute orders to rebalance portfolio
    algo.order_optimal_portfolio(
        objective=obj,
    )

E por fim, implementa-se a função de rebalanceamento. É nesta função que chamamos a aquisição dos dados através de pipeline_output e salvamos o resultado daquele dia em uma variável chamada output. Este é um DataFrame contendo os zscores exatamente como mostrado no ambiente de pesquisa. Os mesmos ajustes dos pesos são realizados para tornar (na medida do possível) a estratégia em market neutral e então o objeto de otimização é utilizado para enviar as ordens.

Como nosso algoritmo calcula diretamente os pesos de cada ativo na carteira, utiliza-se a função TargetWeights para esta informação e então order_optimal_portfolio se encarrega de enviar as ordens de compra e venda necessárias para obter a carteira desejada com os pesos corretos.

Na figura acima, podemos verificar o resultado do backtest para o ano de 2009, da grande crise financeira. A lógica central de estratégias long-short como esta é terem pouca ou nenhuma correlação com o benchmark, no caso o índice S&P500, e ainda assim apresentarem retornos consistentemente positivos, indicando que a estratégia possui alpha. Este teste não foi tão animador quanto os resultados de pesquisa. Enquanto, de fato, a estratégia obteve baixa correlação com o mercado, representada pelo seu beta com pequena magnitude, os retornos não foram atraentes, ficando muito próximos a zero no valor acumulado e um drawdown não desprezível de quase 20%1.

Conclusão

Este artigo apresentou uma implementação simplificada da estratétia Betting Against Beta – BAB utilizando a plataforma Quantopian. O objetivo maior foi demonstrar o uso da plataforma e não necessariamente desenvolver uma estratégia lucrativa de investimento.

Uma vez conhecida a estratégia, a teoria por trás desta e o algoritmo de operação, pode-se utilizar os ambientes de pesquisa e desenvolvimento do Quantopian para pesquisar, testar e implementar (em Python somente) a estratégia. A plataforma dispõe de um grande conjunto de dados, especialmente para o mercado Estado Unidense, mas também existem dados para o Brasil. Diversas técnicas de algorithmic trading podem ser investigadas, aprimoradas e compartilhadas.

Referências

ANG, Andrew. Asset management: A systematic approach to factor investing. 2014.

BLACK, Fischer et al. The capital asset pricing model: Some empirical tests. Studies in the theory of capital markets, v. 81, n. 3, p. 79-121, 1972.

FRAZZINI, Andrea; PEDERSEN, Lasse Heje. Betting against beta. Journal of Financial Economics, v. 111, n. 1, p. 1-25, 2014.


  1. Este resultado pode ser devido a nossa implementação da estratégia ou ao pouco tempo coberto pelo backtest. O resultado da estratégia BAB, para um longo período de tempo pode ser encontrado no site da AQR Capital em https://www.aqr.com/Insights/Datasets 

Posted by Rafael F. Bressan in Code, Derivativos & Riscos, 0 comments
Estratégias Iniciais no Mercado de Opções

Estratégias Iniciais no Mercado de Opções

Se você anda pesquisando sobre o mercado financeiro ou possui particular interesse nesse campo, com certeza você já esbarrou na palavra “derivativos”. Ao longo do tempo esse mercado adquiriu grande representatividade para os agentes econômicos, servindo como mecanismo de proteção contra a oscilação de preços e também como ferramenta para a especulação.

De maneira intuitiva podemos entender os derivativos como títulos que possuem origem em outro mercado ou que estão intimamente relacionados à esse mercado. De forma pragmática, “Derivativos são títulos cujos valores dependem dos valores de outras variáveis mais básicas”, Antonio Carlos Figueiredo (2016, p. 01). Temos como alguns exemplos desses instrumentos, o mercado futuro de petróleo, cujo preço depende dos volumes e patamares de preços no mercado à vista de petróleo.

Com o objetivo de diferenciar o mercado de derivativos do entendimento usual de que um “título” = “investimento”, Martin Mayer define a utilização desse mercado: “Não se pode dizer que uma operação com derivativos é um investimento. Na realidade, representa uma expectativa da direção, dimensão, duração e velocidade das mudanças do valor de outro bem que lhe serve de referência” (Martin Mayer, artigo “The Next Generation”, revista The Bankers, 1997).

Dentro desse mercado podemos segmentá-lo em quatro tipos: a termo, futuro, de opções e de swap. O último, em função da sua semelhança com o mercado a termo, não é considerado por alguns especialistas como uma quarta modalidade de derivativo.

Nesse artigo daremos continuidade ao estudo sobre o mercado de opções. Em consonância com o primeiro post publicado no blog do Clube de Finanças, “Introdução ao Mercado de Opções”, vamos apresentar algumas estratégias que podem ser operacionalizadas nesse mercado, usando as posições conhecidas como “travas”, utilizadas essas com o objetivo de limitar o risco. Analisaremos as principais estratégias dentro dessa posição, começando pelas “Posições Sintéticas”, “Travas de alta e baixa” e a estratégia “Butterfly”.

Estratégias

  • Posições Sintéticas

Dentre as posições sintéticas temos, de forma pragmática, uma situação cujo investidor acredita numa determinada situação de mercado (como por exemplo, uma elevação do Ibovespa), mas, para se proteger de algum possível erro na sua predisposição ele mescla algumas estratégias para proteção (hedge). Então, iremos aos exemplos desde expectativa de alta, quanto baixa de mercado:

De início, assumindo uma expectativa de alta no mercado, o indivíduo fica comprado no índice Bovespa (exemplo, compra de BOVA11), também denominado de Long Instrument.

Conforme observamos na tabela 1.1 acima, o valor da compra de BOVA11 no mercado à vista é de R$ 90,00 e, de acordo com possíveis (des)valorizações, o seu preço tende a mudar no futuro. Caso o investidor venda o ativo, ele realizará seu lucro (ou prejuízo) de acordo com o “Resultado Final” e demonstrado no gráfico abaixo.

Com o intuito de se proteger de uma possível queda no índice, usar-se-ia uma Long Put, ou seja, comprar uma opção de venda do mesmo ativo (BOVA11). Assim, como exemplificado na tabela 1.2, se pagaria um prêmio ao vendedor desta put para ter o direito de realizar uma venda de BOVA11 a R$ 90,00 caso este ativo perca valor – no caso do vendedor, este teria a obrigação de comprar o ativo.

Aqui, observamos que caso o ativo se valorize, o investidor não irá efetuar seu direito de venda a R$ 90,00, ficando com apenas os custos do prêmio pago. Caso contrário, quanto maior a desvalorização frente aos R$ 90,00, mais In The Money (ITM) esta posição ficará.

Ao mesclarmos estas duas estratégias, chegaremos a uma Long Synthetic Call:

Sendo assim, há um limite de perda máxima de R$ 5,00 caso sua expectativa de valorização do mercado não se concretize. Para este mesmo exemplo, formamos uma estratégia inversa, ou seja, expectativa de desvalorização de mercado, cujo investidor ficaria vendido em BOVA11 – denominado de Short Instrument.

Junto a esta expectativa, neste caso o investidor pretende se proteger de uma eventual valorização de mercado. Com isto, ele irá adquirir o direito de comprar uma ação aos mesmos R$ 90,00, ou seja, Long Call. Ilustrados na tabela 1.5:

Ao juntar estas duas estratégias, resultarão em uma Long Synthetic Put, cujo indivíduo ficaria protegido de uma inesperada valorização de mercado fixando sua perda máxima em R$ 5,00, conforme ilustrado abaixo:

Como segundo exemplo, temos uma expectativa de desvalorização da Bolsa onde o indivíduo fica vendido em BOVA11. Segundo o exemplo anterior, resultaremos na mesma estratégia de Short Instrument.

No entanto, para este exemplo vamos supor que o investidor em questão será a parte vendedora do mercado de opções (ou seja, ele terá a obrigatoriedade de compra/venda e receberá um prêmio pelo ativo). Conforme ilustraremos na tabela a seguir, este ficará vendido em uma opção de venda (Short Put) com os mesmos R$ 90,00 de strike.

Como resultado, chegaremos a Short Synthetic Call cuja perda é diluída caso sua primeira estratégia não se concretize. No entanto, ele terá seu ganho limitado a R$ 5,00 conforme figura abaixo:

Como exemplo de expectativa de elevação de mercado. Teremos um Long Instrument, ou seja, o investidor comprado em BOVA11.

E para se proteger, ele ficaria vendido em uma opção de compra a R$ 90,00 – denominada de Short Call.

Por fim, estas duas estratégias resultariam em um Short Synthetic Put, também chamada de “Venda Coberta”. Assim como no outro caso, limitamos o ganho máximo em R$ 5,00, no entanto, ocorreria um hedge para uma eventual desvalorização de mercado.

  • Posições Bull e Bear

No primeiro artigo sobre o mercado de opções, a Trava de alta com a compra e venda simultânea de duas opções de compra (Calls) foi demonstrada ao leitor. Neste artigo pretendemos abordar a Trava de baixa e também a Trava de alta, no entanto, executando essa última estratégia através de opções de venda (Puts).

Assumindo a expectativa de um mercado em baixa, podemos explorar a Trava de baixa operada através de duas puts,. Assim como outras travas, essa posição também pode ser montada com calls. Chamada de Bear Put Spread, nessa estratégia o investidor compra uma put de preço de exercício superior e vende uma put com preço de exercício inferior. Ao executar essa posição espera-se que o preço do ativo no mercado à vista caia, porém, não alcance o preço de exercício da put vendida.

Tomando como exemplo a compra de uma put com preço de exercício de exercício de R$ 1.200 por um prêmio de R$ 115 e a venda de outra put com preço de exercício de R$ 1.000 por um prêmio de R$ 30, o investidor “trava” uma área de ganho entre R$ 1.000 e aproximadamente R$ 1.100 do preço do ativo objeto. Os gráficos e tabelas abaixo elucidam a estratégia:

Com base nas opções utilizadas como exemplos, podemos auferir que a perda máxima da operação é de R$ 85 (a diferença entre o prêmio recebido e o pago) e o retorno máximo é de R$ 115, no momento em que o ativo objeto atingir R$ 1.000. É importante salientar que as opções de venda a serem compradas e vendidas devem possuir datas de vencimento iguais.

Em contraponto à Trava de baixa, a Trava de alta pode ser montada quando o titular da posição acreditar em uma alta no mercado. Ao executar essa estratégia o investidor deseja estar “comprado”, entretanto, acredita que existe certo ponto de máximo para o preço do ativo. Podemos definir como uma expectativa de “alta moderada”.

Utilizaremos como exemplo de Trava de alta, a Bull Put Spread, operada através de opções de venda. Nessa estratégia o investidor escolhe duas opções que proporcionem o maior retorno ou a execução mais barata, vendendo uma put com preço de exercício maior e comprando uma put com preço de exercício menor.

Ao vender uma put de preço de exercício R$ 1.300 com prêmio de R$ 120 e comprar uma put com preço de exercício de R$ 1.200 e prêmio de R$ 35 o investidor “trava” o retorno máximo da operação em R$ 85 e ao mesmo tempo a perda máxima em R$ 15.

As tabelas e gráficos auxiliam na visualização da estratégia, a qual também deve ser executada através de puts com datas de vencimento iguais.

  • Butterfly

Agora, vamos explorar uma trava conhecida como Short Butterfly. Nessa estratégia, ocorre a venda de uma call e de uma put de mesmo preço de exercício, no exemplo, R$350,00, com prêmios de R$10,00 e R$15,00, respectivamente. Ocorre também a compra de uma call de preço de exercício superior, R$400,00, por R$3,00 e de uma put de preço de exercício inferior, R$300,00, por R$4,00. O objetivo dessa estratégia é restringir o risco aos preços de exercício das opções compradas. Para facilitar a compreensão, vamos ao gráfico e tabelas:

Como é possível observar no gráfico, a zona de risco dessa operação se concentra entre o preço de exercício da put comprada e o preço de exercício das opções vendidas menos o prêmio líquido da operação, neste caso, R$18,00. Também está compreendida entre o preço de exercício das opções intermediárias (inferior e superior ao preço de exercício) e o prêmio líquido. O ganho estará limitado, espera-se que o mercado oscile e permaneça sempre entre os preços da primeira call comprada e da primeira call vendida, descontado os prêmios pagos.

Com estas estratégias abordadas pretendemos que os leitores entendam um pouco mais a respeito do mercado de derivativos (principalmente, na área de opções), assim como já fora discutido em posts anteriores. Dentre os pontos que entramos em questão, boa parte destas técnicas tem o viés de reduzir a volatilidade ou exemplificar um investidor que esta aplicado em baixa volatilidade de mercado – ou em um ativo específico.

De forma geral, aqui aprendemos algumas técnicas básicas. Conforme houver mais posts acerca deste tema iremos cada vez mais mostrar ao leitor possíveis estratégias de maior complexidade, mas ainda assim, de forma didática.

Ainda ficou com alguma dúvida? Procure-nos no Instagram e no Facebook!


Referências:

Figueiredo, Antonio Carlos. 2016. Introdução aos derivativos – 3 ed. rev. e ampl. – São Paulo : Cengage Learning.

Mayer, Martin. 1997. “The Next Generation.” The Bankers.

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

Autores:

Caroline Zago, Pedro Rosa e Thiago Barreto
Posted by Rafael F. Bressan in Derivativos & Riscos, 2 comments
Algo trading com Quantopian

Algo trading com Quantopian

Abriremos nossas discussões sobre algorithmic trading, ou algo trading para os iniciados, fazendo um review da plataforma mais popular atualmente, o Quantopian.

Da própria definição sobre a plataforma temos que:

O Quantopian é uma empresa de investimentos quantitativos com origem em crowd source. Nós inspiramos pessoas talentosas de todo o mundo a escrever algoritmos de investimento.

O Quantopian fornece capital, educação, dados, um ambiente de pesquisa e uma plataforma de desenvolvimento para autores de algoritmos (quants).

Mas o que isso tudo significa na prática? O Quantopian nasceu com o desejo de encontrar na multidão de pessoas, talentosos quants que pudessem escrever algoritmos de investimentos bons o suficiente para receberem um aporte de capital. Da necessidade de como fazer esta visão tornar-se realidade, o quantopian foi sendo moldado. Talvez a ordem das palavras destacadas no parágrafo anterior devessem constar na forma inversa. A plataforma surgiu como um ambiente de desenvolvimento, agregou um ambiente de pesquisa, fornece dados gratuitos e pagos (premium), edução na forma de tutorias e lectures e por fim, se o seu algoritmo se destacar na competição, eles financiam um fundo quantitativo que roda o seu algo e lhe paga royalties.

Ambiente de desenvolvimento

A chamada IDE (de Interactive Development Environment) é toda baseda na linguagem Python, a mais utilizada1 atualmente para ciência de dados e machine learnig. É na IDE que a implementação e o backtesting de estratégias deve ser feito. Ela registra automaticamente as principais métricas de desempenho e compara sua estratégia com um benchmark. Algoritmos também podem ser simulados usando dados ao vivo, algo conhecido como paper trading. Operar com dinheiro real, live trading não é mais possível no Quantopian. No passado já houve uma integração com uma conhecida corretora americana, mas esta possibilidade não existe mais.

Nesta IDE três métodos estão definidos para serem implementados pelo quant, um deles é obrigatório que são as definições de setup do backtesting que devem constar no método initialize(context). Os métodos opcionais são handle_data(context, data), em geral utilizado em algoritmos minuto-a-minuto e before_trading_start(context, data) muito utilizado em conjunto com algum método de pipeline que baixa e processa o algoritmo de investimento sobre um determinado universo de ativos.

Na figura abaixo podemos ver uma amostra parcial do ambiente de desenvolvimento, com o código a esquerda e alguns resultados de backtesting a direita e logs da simulação logo abaixo.

Ambiente de desenvolvimento - IDE

Ambiente de pesquisa

O módulo de research do quantopian é fundamentado no conceito de notebooks do IPython. De fato, o ambiente é um Jupyter notebook, como toda a sua interatividade disponível. Neste notebook o quant pode programar seus algoritmos e testá-los sem fazer um backtest completo.

Nesta plataforma aberta pode-se carregar todos os dados disponibilizados pela plataforma e explorar novas ideias de investimento. O ambiente de pesquisa é o lugar para fazer hipóteses e análises, “comprar empresas de baixo P/L realmente dá lucro a longo prazo?”, “se eu montar uma estratégia long-short com os fatores de Fama&French, vou ser bem sucedido?”, estes questionamentos devem ser feitos e analisados no ambiente de pesquisa. Neste ambiente se tem acesso a todos os dados, volume, fundamentos corporativos e outros conjuntos de dados, incluindo dados de sentimento entre outros, para os EUA. Para outros países, incluindo o Brasil, existem dados diários de preço e volume e fundamentos, que exploraremos na seção seguinte.

O ambiente de pesquisa também é útil para analisar o desempenho de backtests. Você pode carregar o resultado do backtest de um algoritmo e analisar resultados e comparar com desempenhos de outros algoritmos.

Por ser implementado em Python, ele abre a possibilidade de usar bibliotecas poderosas para analisar dados de séries temporais, como StatsModels para estatística e scikit-learn para machine learning em Python. Estas bibliotecas também estão disponíveis no ambiente de desenvolvimento e seu algoritmo pode fazer uso destas e participar da competição.

Além disso, o Quantopian desenvolveu2 várias ferramentas internas, como o Alphalens – uma nova ferramenta para análise de fatores “alfa”. Aqui deixo o alfa entre parentêses pois a ideia deles é encontrar uma métrica, que chamam de “fator”, que explique os retornos do portfolio. Portanto, no melhor entendimento deste autor, se trata de beta e não de alfa.

Na figura abaixo temos um amostra do ambiente de pesquisa. Pode-se verificar que em muito pouco este difere de um típico Jupyter notebook.

Bases de dados

Certamente o foco da empresa ainda é os EUA. Para aquele mercado a plataforma conta com dados históricos em barras de 1 minuto para ações, ETFs e futuros dos EUA desde 2002 até o último dia completo de negociação.

Os dados históricos de preço ou volume é ajustado para splits, fusões e dividendos na data atual da simulação. Esse ajuste é feito para que o algoritmo possa fazer cálculos corretos usando os valores da janela histórica.

O Quantopian também fornece acesso a dados fundamentalistas e de demonstrações contábeis. Os dados da Morningstar consistem em mais de 600 métricas que medem o desempenho financeiro das empresas. Também estão disponívei dados do vendor Factset. O uso mais comum desses dados é a filtragem para um subconjunto de ativos para uso posterior em um algoritmo.

O banco de dados inclui todas as ações e ETFs negociados desde 2002, mesmo aqueles que não são mais negociados. Isso é muito importante porque ajuda a prevenir o famoso survivorship bias, um dos vilões de “super” algoritmos que funcionam somente no backtesting. Bancos de dados que omitem títulos que não são mais negociados ignoram falências e outros eventos importantes, e levam a um falso otimismo sobre um algoritmo.

Uma lista com todas as bases de dados disponíveis pode ser consultada aqui. Uma interessante opção para aqueles que desejam utilizar a plataforma como meio de pesquisa é a possibilidade de colocar no ambiente o seu próprio conjunto de dados! Mesmo que este conjunto de dados não possa fazer parte de um algoritmo de competição, esta possibilidade é muito interessante para descobrir novas estratégias lucrativas com dados que por ventura não estejam disponíveis no Quantopian, e após esta descoberta, utilizar a plataforma de sua preferência para negociar.

Felizmente, e para alegria geral da nação, nem só de EUA vive o Quantopian. No final de 2018 a plataforma anunciou que passou a suportar, no ambiente de pesquisa, dados de preço/volume e dados fundamentalistas de 26 países. O Brasil está entre eles. Os dados de preços e fundamentos para cada um desses países estão disponíveis desde 2004. Os dados de preços são diários, incluindo as barras do OHLCV (Open-High-Low-Close-Volume). Os dados de fundamentos são do FactSet Fundamentals.

Educação

No quesito educação do investidor a plataforma oferece recursos como um ativo fórum de discussões, tutoriais para aprendizagem inicial e uma série de lectures que são vídeos demonstrando alguns usos mais avançados dos recursos.

No fórum podem ser compartilhados tanto backtests quanto notebooks e a troca de ideias de aloritmos é fomentada. Entretanto, predominam as discussões acerca de implementação dos algos e correção de bugs. Os tutoriais são bastante instrutivos, e recomenda-se iniciar por ali. Apesar de a linguagem de programação ser o conhecido Python, a plataforma faz uso intenso de sua API proprietária. São diversas classes, métodos e atributos que não fazem parte do core ou mesmo das famosas bibliotecas da linguagem e sim, são criações do Quantopian. Como iniciar diretamente pela referência a API é muito difícil e certamente logo afastaria iniciantes da plataforma, a empresa fez bons e simples tutoriais que já permitem ao quant wannabe criar seus primeiros algos, analisá-los através do Alphalens e rodar o backtesting na IDE.

Mas, na opinião deste autor, a verdadeira estrela desta seção são as lectures que podem ser vistas nesta lista. Estas são vídeos, no estilo webinar, e são acompanhadas de seus respectivos notebooks que podem ser clonados e modificados ao gosto do usuário. Os temas abordados são abragentes e relevantes, indo desde introdução ao NumPy e pandas, passando por conceitos importantes como momentos estatísticos e regressão múltipla, indo até assuntos avançados e muito pertinentes para qualquer algo trader como pairs trading, cointegração, análise de componentes principais e filtros de Kalman. São ao todo 56 lectures, material de ótima qualidade.

Conclusão

O Quantopian é uma excelente plataforma para pesquisar e implementar estratégias de negociação. Entre seus pontos fortes destacamos o ambiente de pesquisa, baseado na interatividade dos notebooks, a vasta base de dados, o uso da linguagem Python e os tutoriais e lectures que fornecem um bom suporte para o iniciante. Entre os pontos negativos da plataforma o uso de muitas classes e métodos proprietários, com pouca documentação, soam como uma caixa preta para o usuário e dificultam bastante o aprendizado inicial.

Ainda assim, se você está procurando um lugar para começar, a plataforma é uma das mais completas e sugere-se iniciar pelos tutoriais e então aprofundar seus conhecimentos com a série Lectures.

Em um próximo artigo, o Clube de Finanças implementará um algoritmo de demonstração, explicando o passo-a-passo para realizar a pesquisa e implementar o backtesting na IDE.


  1. Retirado de https://www.kaggle.com/kaggle/kaggle-survey-2017#multipleChoiceResponses.csv 

  2. Desenvolveu e mantém em código aberto boa parte de sua estrutura no repositório: https://github.com/quantopian 

Posted by Rafael F. Bressan in Derivativos & Riscos, 12 comments
Superfície SVI

Superfície SVI

Superfície SVI, ou somente SSVI é uma generalização do modelo SVI de (Gatheral 2004) que busca solucionar o problema de restrição dos parâmetros do modelo para evitar a presença de arbitragem do tipo borboleta em um dado smile. Este modelo foi proposto por (Gatheral and Jacquier 2014) e extende o modelo SVI original apresentando duas outras parametrizações equivalentes e então o modelo para superfícies propriamente dito.

Reparametrizações equivalentes

Existem duas outras formas de se apresentar um modelo SVI que são equivalentes a parametrização RAW já apresentada. Estas são as parametrizações “Natural” e “Jump-Wings” que são apresentadas abaixo.

Para um dado conjunto de parâmetros \(\chi_N=\{\Delta, \mu, \rho, \omega, \zeta\}\) a parametrização natural de um SVI é dada por:

\[\begin{equation} w(k; \chi_N)=\Delta+\frac{\omega}{2}\left\lbrace 1+\zeta\rho(k-\mu)+\sqrt{(\zeta(k-\mu)+\rho)^2+(1-\rho^2)} \right\rbrace \tag{1} \end{equation}\]

onde \(\omega\geq 0\), \(\Delta, \mu \in \mathbb R\), \(|\rho|<1\) e \(\zeta>0\). A correspondência entre as parametrizações raw e natural é dada pelo seguinte mapeamento e seu inverso:

\[\begin{equation} (a, b, \rho, m, \sigma)=\left(\Delta+\frac{\omega}{2}(1-\rho^2), \frac{\omega\zeta}{2}, \rho, \mu-\frac{\rho}{\zeta}, \frac{\sqrt{1-\rho^2}}{\zeta}\right) \tag{2} \end{equation}\] \[\begin{equation} (\Delta, \mu, \rho, \omega, \zeta)=\left(a-\frac{\omega}{2}(1-\rho^2), m+\frac{\rho\sigma}{\sqrt{1-\rho^2}}, \rho, \frac{2b\sigma}{\sqrt{1-\rho^2}}, \frac{\sqrt{1-\rho^2}}{\sigma}\right) \tag{3} \end{equation}\]

A desvantagem destas parametrizações é que o valor de seus parâmetros não são intuitivos para os traders, eles não carregam estes valores em sua memória durante a negociação. Valores característicos de uma superfície de volatilidade implícita que traders têm em mente são, por exemplo, volatilidade ATM, skew de volatilidade ATM e assíntotas. Desta forma a parametrização Jump-Wings é útil, pois relaciona estes valores típicos aos parâmetros raw de um SVI.

A parametrização JW é dada em termos da variância implícita (e não da variância total) e portanto existe uma dependência explícita do tempo em sua formulação. Para um dado tempo até a expiração, \(\tau\), o conjunto de parâmetros \(\chi_{J}=\{v_\tau, \psi_\tau, p_\tau, c_\tau, \tilde v_\tau\}\) é definido pelas seguintes equações a partir dos parâmetros raw:

\[\begin{align} v_\tau&=\frac{a+b\{-\rho m + \sqrt{m^2+\sigma^2}\}}{\tau},\\ \psi_\tau&=\frac{1}{\sqrt{w_\tau}}\frac{b}{2}\left(-\frac{m}{\sqrt{m^2+\sigma^2}}+\rho\right),\\ p_\tau&=\frac{1}{\sqrt{w_\tau}}b(1-\rho),\\ c_\tau&=\frac{1}{\sqrt{w_\tau}}b(1+\rho),\\ \tilde v_\tau&=\frac{1}{\tau}\left(a+b\sigma\sqrt{1-\rho^2}\right) \tag{4} \end{align}\]

onde \(w_\tau=v_\tau \tau\) relaciona a variância total ATM com a variância ATM. Os parâmetros possuem as seguintes interpretações: \(v_\tau\) é a variância ATM, \(\psi_\tau\) o skew ATM, \(p_\tau\) a inclinação da asa esquerda (puts), \(c_\tau\) a inclinação da asa direita (calls) e \(\tilde v_\tau\) é a variância implícita mínima.

A figura 1 apresenta uma esquematização destes parâmetros sobre um smile fictício para melhor compreensão.

Interpretação dos parâmetros de um SVI-JW.

Figura 1: Interpretação dos parâmetros de um SVI-JW.

As relações inversas que trazem uma parametrização JW para uma raw, assumindo que \(m \neq 0\) são:

\[\begin{align} b&=\frac{\sqrt{w_\tau}}{2}(c_\tau+p_\tau),\\ \rho&=1-\frac{p_\tau\sqrt{w_\tau}}{b},\\ a&=\tilde v_\tau \tau-b\sigma\sqrt{1-\rho^2},\\ m&=\frac{(v_\tau-\tilde v_\tau)\tau}{b\left\lbrace-\rho+sign(\alpha)\sqrt{1+\alpha^2}-\alpha\sqrt{1-\rho^2}\right\rbrace},\\ \sigma&=\alpha m. \tag{5} \end{align}\]

onde as variáveis auxiliares são definidas da seguinte forma: \(\beta:=\rho-(2\psi_\tau\sqrt{w_\tau})/b\) e \(\alpha:=sign(\beta)\sqrt{1/\beta^2 – 1}\), com \(\beta \in [-1, 1]\) para garantir a convexidade do smile.

Se \(m=0\), então as equações para \(a, b, \rho\) se mantêm, porém, \(\sigma = (v_\tau \tau-a)/b\). Desta forma temos relações entre as três parametrizações SVI, sendo possível navegar entre elas com tranquilidade. Um trader pode verificar no mercado os valores dos parâmetros JW e traduzi-los para raw e simular o smile ou fazer o caminho reverso, calibrar uma fatia da superfície com parâmetros raw, traduzi-los para JW e apresentar para sua mesa, onde todos conseguirão interpretar os valores a que estão habituados.

Superfície SVI

Uma SSVI surge como uma extensão à parametrização natural de um SVI, e fornece em uma única equação, a possibilidade de parametrizar uma superfície de volatilidade implícita por inteiro. É necessário, antes de mais nada, fazer algumas definições preliminares. Defina a variância total implícita no dinheiro (ATM) como \(\theta_\tau:=\sigma_{BS}^2(0, \tau)\tau\) e \(\lim\limits_{\tau\rightarrow 0}\theta_\tau = 0\).

Definição 1 Seja \(\varphi\) uma função suave em \(\mathbb R_+^*\mapsto \mathbb R_+^*\) tal que \(\lim\limits_{\tau\rightarrow 0}\theta_\tau \varphi(\theta_\tau)\) exista em \(\mathbb R\). Uma SSVI é definida por:

\[\begin{equation} w(k, \theta_\tau)=\frac{\theta_\tau}{2}\left\lbrace 1+\rho\varphi(\theta_\tau)k+\sqrt{(\varphi(\theta_\tau)k+\rho)^2+(1-\rho^2)} \right\rbrace \tag{6} \end{equation}\]

Veja que na representação SSVI, engenhosamente os autores substituíram a dimensão de tempo, \(\tau\), típica de superfícies de volatilidde, pela variância total ATM. Com esta representação, eles conseguiram derivar as condições necessárias para a ausência de arbitragem estática na superfície e sempre que necessário, é possível retornar a dimensão de tempo no calendário.

Agora é necessário definir a função \(\varphi\), que então será substituída na equação (6) da definição 1 com seus próprios parâmetros e teremos por fim uma função \(w(k, \theta_\tau; \chi_{ssvi})\) que poderá ser calibrada para o conjunto de parâmetros da SSVI, \(\chi_{ssvi}\) contra os dados observados no mercado. No fundo, qualquer função que obedeça as condições impostas na definição 1 pode ser utilizada, entretanto os autores apresentam dois tipos de função que condizem com as observações empíricas.

Heston

Considere a função \(\varphi\) definida por:

\[\begin{equation} \varphi(\theta)\equiv\frac{1}{\gamma\theta}\left\lbrace 1-\frac{1-e^{-\gamma\theta}}{\gamma\theta}\right\rbrace \tag{7} \end{equation}\]

com \(\gamma > 0\). Esta função recebeu este nome pois, seu skew na variância implícita é compatível com aquele previsto no modelo de Heston.

Lei de potência

A parametrização da função \(\varphi\) como uma lei de potência é primeiramente considerada da seguinte forma: \(\varphi(\theta)=\eta\theta^{-\gamma}\) com \(\eta > 0\) e \(0< \gamma<1\). Entretanto, esta parametrização apresenta algumas limitações com relação a arbitragem do tipo borboleta e então é proposta a seguinte forma funcional:

\[\begin{equation} \varphi(\theta)=\frac{\eta}{\theta^\gamma(1+\theta)^{1-\gamma}} \tag{8} \end{equation}\]

que é garantida não possuir arbitragem estática dado que \(\eta(1+|\rho|)\leq 2\).

Condições de não-arbitragem

As condições para ausência de arbitragem estática para uma SSVI são colocadas através de dois teoremas (4.1 e 4.2) e provadas no artigo de (Gatheral and Jacquier 2014), dos quais resulta o seguinte corolário.

Corolário 1 A superfície SVI definida em 1 está livre de arbitragem estática se as seguintes condições são satisfeitas:

  1. \(\partial_\tau\theta_\tau\geq 0, \text{ para todo } \tau > 0\)
  2. \(0\leq \partial_\theta(\theta\varphi(\theta))\leq\frac{1}{\rho^2}\left(1+\sqrt{1-\rho^2}\right)\varphi(\theta), \text{ para todo } \theta>0\)
  3. \(\theta\varphi(\theta)(1+|\rho|)<4, \text{ para todo } \theta>0\)
  4. \(\theta\varphi(\theta)^2(1+|\rho|)\leq 4, \text{ para todo } \theta>0\)

Onde os dois primeiros itens dizem respeito a ausência de arbitragem de calendário, enquanto que os seguintes são exigências para a superfície estar livre de arbitragem do tipo borboleta.

Para uma função \(\varphi\) do tipo Heston, as condições nos seus parâmetros são: \(\gamma>0\) que garante o atendimentos as condições 1 e 2 do corolário 1 e \(\gamma\geq(1+|\rho|)/4\) para garantir a ausência de arbitragem borboleta, a qual subsume a primeira condição.

Para a função do tipo lei de potência dada em (8) são necessárias as condições \(0< \gamma<1\) e \(\eta(1+|\rho|)\leq 2\)

A maneira típica de impor as restrições dos parâmetros no momento da calibração do modelo é inserir uma penalidade na função objetivo, quando a restrição é violada. Por exemplo, consideramos a restrição de inequalidade para a lei de potência, \(\eta(1+|\rho|)-2\leq 0\). No momento da calibração, nós devemos calcular o valor desta expressão e se o seu resultado for maior que zero, uma penalidade é somada a função objetivo da calibração (em geral a soma dos quadrados dos erros).

Densidade neutra ao risco

Já comentamos sobre a distribuição neutra ao risco implícita no preço de opções que pode ser obtida através da fórmula de (Breeden and Litzenberger 1978), assim como já foi introduzida uma certa função \(g(k)\) que desempenha um papel fundamental para garantir a ausência de arbitragem do tipo borboleta em smiles de variância total. O fato é que, para garantir a ausência de arbitragem a função \(g(k)\) deve ser não negativa em todo o seu suporte \(k \in \mathbb R\). Ao mesmo tempo, a definição de ausência de arbitragem borboleta se confunde com o fato que a densidade neutra ao risco deve também ser não negativa, caso contrário não seria uma densidade de probabilidade. Logo percebe-se a estreita relação entre a função \(g(k)\) e a densidade neutra ao risco implícita no preço de opções. De fato, a fórmula de Breeden-Litzenberger nos fornece:

\[\begin{equation} p(k)=\left.\frac{\partial^2C_B(k, w(k))}{\partial K^2}\right|_{K=Fe^k} \end{equation}\]

que após fazer as derivações da equação de Black e as substituições e manipulações algébricas com as reparametrizações do modelo B&S, resulta em:

\[\begin{equation} p(k)=\frac{g(k)}{\sqrt{2\pi w(k)}}\exp\left(-\frac{d_2(k)^2}{2}\right) \tag{9} \end{equation}\]

E para relembrarmos, a função \(g(k)\) é dada por:

\[\begin{equation} g(k)=\left(1-\frac{kw\prime(k)}{2w(k)}\right)^2-\frac{w\prime(k)^2}{4}\left(\frac{1}{w(k)}+\frac{1}{4}\right)+\frac{w\prime\prime(k)}{2} \tag{10} \end{equation}\]

Ou seja, uma vez parametrizado um SVI para um dado prazo de maturidade, \(\tau\), se torna simples a tarefa de extrair a densidade implícita. Possuímos a função \(w(k)\) e suas derivadas e certamente \(d_2(k)\), bastando portanto, aplicar a equação (9) para extrair importante informação do mercado de opções.

Superfície de volatilidade local

De maneira semelhante ao procedimento realizado com a densidade implícita, também é possível, uma vez parametrizada a SSVI, derivar a superfície de volatilidade local através da equação de (Dupire 1994). Esta equação toma a seguinte forma funcional:

\[\begin{equation} \sigma_L^2(K, \tau)=\frac{\partial_\tau C_B(K, \tau)}{\frac{1}{2}K^2\partial_{KK}C_B(K, \tau)} \tag{11} \end{equation}\]

Novamente tomando as derivadas da equação de Black e fazendo as substituições necessárias1 chegamos a relação entre a superfície SVI e variância local.

\[\begin{equation} \sigma^2_L(k, \tau)=\frac{\partial_\tau w(k, \theta_\tau)}{g(k, w(k, \theta_\tau))} \tag{12} \end{equation}\]

De forma bastante simplista, a superfície de volatilidade local pode ser entendida como aquela superfície de volatilidades instantâneas para o ativo subjacente, \(\sigma(S, t)\) que depende tanto do nível de preço deste ativo quanto do tempo, e fornece a previsão do mercado para a volatilidade instantânea de \(S\) dado que este ativo hoje está precificado em \(S_0\) e no tempo futuro \(\tau\) estará em \(K\). Fazendo uma analogia com o mercado de juros, a superfície local está para a curva forward assim como a superfície implícita está para a curva de juros, numa aproximação.

A superfície local é muito utilizada para precificar opções exóticas, aquelas que possuem perfil de payoff distinto das opções europeias e podem ou não terem seus resultados atrelados ao caminho seguido pelo preço do ativo objeto durante a vida da opção. Nestes casos, a precificação se dá através da incorporação da superfície local estipulando um valor de volatilidade instantânea para cada possível combinação \((S_t, t)\) em geral em um ambiente de simulação de Monte Carlo.

No caso da equação (12) temos uma nova derivada a ser computada, \(\partial_\tau w(k, \theta_\tau)\), que só poderia ser feita de forma analítica caso \(\theta_\tau\) fosse parametrizada explicitamente. Nem sempre este é o caso, já que \(\theta_\tau\) são os valores de variância total ATM implícitas, ou seja, observa-se no mercado apenas alguns pontos de \(\theta_\tau\), pontos estes que podem estar espaçados em intervalos diferentes de tempo. A solução para esta derivação é interpolar estes pontos, nem que seja uma simples interpolação linear, e então fazer a derivação de forma numérica através de um método de diferenças finitas. Note que na interpolação deve-se garantir a condição de não arbitragem de calendário, \(\partial_\tau\theta_\tau\geq 0\).

Calibração

Vamos retomar nosso exemplo de superfície de volatilidade do artigo anterior, porém agora com todas as datas de expiração, ou seja, a superfície completa. Os códigos R apresentados abaixo ajudam na compreensão do procedimento.

library(readr)
library(dplyr)
library(purrr)
library(kableExtra)
library(ggplot2)
library(ggthemes)
library(plot3D)
source('svi.R')
source('ssvi.R')

Primeiramente foram carregados os pacotes necessários para a leitura e manipulação dos dados (readr, dplyr e purrr) assim como os pacotes de visualização (kableExtra, ggplot2, ggthemes e plot3D). Em seguida os arquivos svi.R e ssvi.R são implementações do Clube de Finanças para as funções necessárias para calibrar uma SSVI.

Carregados os pacotes e as funções, deve-se carregar os dados da superfície de volatilidade e organizá-los da forma que necessitamos.

ssvi_data <- read_csv("../../static/input/IV_Raw_Delta_surface.csv",
                     col_types = cols(date = col_date(format = "%m/%d/%Y"))) %>% 
  mutate(tau = period / 365,
         theta = theta_vec(moneyness, tau, iv)) %>% 
  rename(k = moneyness)

Para calibrar os parâmetros de uma SSVI, com a função \(\varphi\) do tipo lei de potência, necessitaremos dos dados de moneyness (\(k\)), vencimento (\(\tau\)) e volatilidade implícita (\(iv\)) que será internamente convertida em variância total implícita (\(w\)). Dentro da função de ajuste dos parâmetros fit_ssvi() a variância total ATM implícita \(\theta_\tau\) é calculada através de interpolação spline para cada uma das fatias da superfície, pois, nossos dados não necessariamente possuem esta observação. Cabe ressaltar também que os dados estão organizados de forma tidy, sendo portanto, todos os argumentos passados para as funções na forma de vetores, não sendo necessário gerar uma matriz contendo o grid \((k, \tau)\).

k <- ssvi_data$k
tau <- ssvi_data$tau
iv <- ssvi_data$iv
theta <- ssvi_data$theta

set.seed(12345)
powerlaw_par <- fit_ssvi(tau, k, iv, "powerlaw")
kable(powerlaw_par,
      caption = "Parâmetros da SSVI-power-law estimados.",
      col.names = "SSVI-PL")
Tabela 1: Parâmetros da SSVI-power-law estimados.
SSVI-PL
rho -0.6479238
gamma 0.4926757
eta 0.8607807

Podemos rapidamente checar se estes parâmetros estimados geram uma superfície livre de arbitragem.

paste("Parametrização livre de arbitragem borboleta? :", 
      ssvi_butterfly_cons(powerlaw_par, "powerlaw") <= 0)
## [1] "Parametrização livre de arbitragem borboleta? : TRUE"

Com os parâmetros estimados, é simples plotar todos os smiles que compõe a superfície e verificar visualmente o ajuste. Vamos plotar a variância total em função do moneyness e vencimentos, pois neste gráfico se verifica a condição de arbitragem de calendário simplesmente através do fato que as curvas geradas não devem se cruzar.

plt_df <- ssvi_data %>% 
  mutate(w_pl = ssvi_fun(powerlaw_par, theta, k)) %>% 
  select(k, tau, w_pl, iv) %>% 
  filter(tau < 0.5)

ggplot(plt_df, aes(x = k, y = w_pl)) + 
  geom_line(aes(color = as.factor(format(tau, digits = 3)))) +
  geom_point(aes(y = iv^2 * tau)) +
  guides(color = guide_legend(title = "Vencimento")) +
  labs(title = "SSVI Lei de Potência",
       x = "Forward log-moneyness (k)",
       y = "Variância total implícita (w)",
       caption = "Elaborado por Rafael Bressan para o Clube de Finanças.") +
#  scale_y_continuous(labels = scales::percent) +
  scale_color_viridis_d() +
  theme_economist_white()

Foram retirados os vencimentos mais longos apenas para uma melhor visualização da parte mais curta da superfície, que em geral é a mais complicada de se calibrar através de SVI. O resultado parece interessante, com as variâncias ao redor do dinheiro tendo boa aderência aos dados observados, porém para puts muito fora do dinheiro, a parametrização aparenta subestimar o valor da variância total e portanto estaria subprecificando as opções.

Iremos agora verificar a densidade da distribuição implícita para o período de vencimento de 90 dias. Utiliza-se para tanto a equação (9) onde \(w(k)\) (e suas derivadas e o próprio \(d_2\)) será agora calculado com base nos parâmetros da tabela 1 para um vetor de moneyness mais amplo e denso. O resultado pode ser observado através da figura 2

thetadens <- ssvi_data %>% 
  filter(period == 90) %>% 
  pull(theta) %>% 
  `[`(1)
kdens <- seq(-0.5, 0.3, length.out = 100)
dens <- ssvi_density(powerlaw_par, thetadens, kdens, "powerlaw")
dens_tbl <- tibble(kdens = kdens, dens = dens)

ggplot(dens_tbl, aes(x = kdens, y = dens)) + 
  geom_line() +
  labs(title = "Densidade neutra ao risco SSVI",
     x = "Forward log-moneyness (k)",
     y = "Densidade",
     caption = "Elaborado por Rafael Bressan para o Clube de Finanças.") +
  scale_color_viridis_d() +
  theme_economist_white()
Densidade implícita estimada a partir da SSVI. Presença de assimetria e leptocurtose a esquerda.

Figura 2: Densidade implícita estimada. Presença de assimetria e leptocurtose a esquerda.

Este é um gráfico interessante, que nos mostra exatamente o que se espera de um smile típico de equities que possui skew negativo. Percebemos como a densidade de probabilidades é assimétrica, com a cauda esquerda muito mais longa, refletindo o sentimento de mercado de uma maior probabilidade de grandes quedas no preço do ativo objeto que altas equivalentes. Sempre que verificamos um smile com skew negativo, como é o presente caso, a distribuição de probabilidades é assimétrica a esquerda.

Vamos conferir se a área sob esta curva de densidade integra aproximadamente 1, como deve ser.

area <- integrate(function(x) ssvi_density(powerlaw_par, thetadens, x, "powerlaw"),
                  lower = kdens[1],
                  upper = kdens[length(kdens)])
paste("Área sob a curva de densidade é: ", area$value)

[1] “Área sob a curva de densidade é: 0.999302879362191”

Chegou o momento de inferirmos a superfície de volatilidade local a partir de nossa parametrização SSVI. O método será a aplicação direta da equação (12) pois, com a parametrização realizada, dispomos de todos os dados necessários para seu cômputo.

Antes porém, devemos observar uma peculiaridade dos nossos dados. O site ivolatility.com fornece dados alinhados por Delta, ou seja, para cada período de vencimento temos um mesmo conjunto de Deltas, mas não de moneyness. Os valores deste último irá variar conforme o vencimento, uma vez que pela definição de forward log-moneyness que vimos utilizando é dependente do tempo para maturidade da opção. Desta forma precisamos gerar um novo grid \((k, \tau)\) para plotar nossa superfície de volatilidade local.

Para tanto, criaremos uma sequência uniforme de valores de \(k\) e tomaremos os valores que já possuímos de \(\tau\) e \(\theta_\tau\) recombinando-os através da função expand.grid() para gerar o data frame que precisamos.

Feito isso, é apenas questão de aplicar a equação (12) e criar uma matriz (pois assim pede a função surf3D()) com os valores da volatilidade local.

kloc <- seq(-.4, 0.4, length.out = 17)
utau <- unique(tau)
utheta <- unique(theta)
names(utheta) <- utau  # utheta will be a lookup vector
grid_df <- expand.grid(kloc, utau) %>% 
  rename(kloc = Var1,
         tau = Var2) %>% 
  mutate(theta = utheta[as.character(tau)])

loc_vol_vec <- ssvi_local_vol(powerlaw_par, 
                              grid_df$tau, 
                              grid_df$theta, 
                              grid_df$kloc, 
                              "powerlaw")
# Matrix where k is row
loc_vol_m <- matrix(loc_vol_vec, nrow = length(kloc))  

# Plot Local Volatility Surface
# x is k, y is tau
M <- mesh(kloc, utau)
surf3D(M$x, M$y, loc_vol_m, colkey = FALSE, bty = "b2", 
       phi = 20, ticktype = "detailed",
       xlab = "k",
       ylab = "\u03c4",
       zlab = "Volatilidade local \u03c3")

Conclusão

Apresentamos o modelo de superfícies SVI, que faz uma generalização dos smiles SVI e apresenta vantagens sobre a parametrização fatia-a-fatia em virtude dos teoremas sobre arbitragem estática, apresentando restrições para os parâmetros do modelo que garantem a ausência deste tipo de arbitragem.

Uma vez parametrizada toda uma SSVI, torna-se simples, uma mera aplicação de fórmulas a obtenção tanto da densidade da distribuição neutra ao risco implícita no preços das opções, como da superfície de volatilidade local através da equação de Dupire.

Referências

Breeden, Douglas T, and Robert H Litzenberger. 1978. “Prices of State-Contingent Claims Implicit in Option Prices.” Journal of Business. JSTOR, 621–51.

Dupire, Bruno. 1994. “Pricing with a Smile.” Risk 7 (1): 18–20.

Gatheral, Jim. 2004. “A Parsimonious Arbitrage-Free Implied Volatility Parameterization with Application to the Valuation of Volatility Derivatives.” Presentation at Global Derivatives & Risk Management, Madrid.

Gatheral, Jim, and Antoine Jacquier. 2014. “Arbitrage-Free Svi Volatility Surfaces.” Quantitative Finance 14 (1). Taylor & Francis: 59–71.

  • Referimos o leitor ao material do prof. Antoine Jacquier para uma prova desta relação aqui

    Posted by Rafael F. Bressan in Derivativos & Riscos, 0 comments
    Calibrando um SVI

    Calibrando um SVI

    Neste post iremos mostrar como fazer uma calibração de um smile SVI baseado nos trabalhos de (Gatheral 2004) e (De Marco and Martini 2009). Escolheremos apenas uma fatia da superfície de volatilidade, fixando o tempo para expiração (maturidade) e coletando as volatilidades implícitas para diversos strikes.

    Como já apresentado em posts anteriores, existem diversas formas de interpolar, extrapolar, parametrizar e calibrar smiles de volatilidade. Exsitem vantagens e desvantagens para cada método. Neste post iremos fixar nossa atenção no modelo paramétrico de smile chamado SVI – Stochastic Volatility Inspired – uma forma que une a “simplicidade” de um modelo paramétrico com o poder de adesão aos dados de mercado dos modelos de volatilidade estocástica (i.e. Heston, SABR e afins).

    Chamar o modelo SVI de simples é puro eufemismo, ele é um modelo poderoso, com fundamento teórico avançado e diversos detalhes para sua calibração.

    Modelo SVI

    Este modelo foi apresentado por Jim Gatheral na conferência Global Derivatives & Risk Management 2004 e foi bem recebido pelos profissionais de mercado interessados em superfícies de volatilidade para equities, principalmente.

    O modelo possui duas propriedades que são as razões para sua popularidade. Ele satisfaz a fórmula do momento de Lee (2004), que é um resultado independente de modelo que especifica os limites assintóticos para um smile de volatilidade implícita. Portanto, o modelo SVI é válido para extrapolação além da região central dos dados disponíveis. Além disso, afirma-se que o modelo SVI é relativamente fácil de calibrar para dados de mercado, de modo que a superfície de volatilidade implícita correspondente é livre de arbitragem de calendário. As condições que garantem a ausência de arbitragem de borboleta forma resolvidas em um segundo artigo por Gatheral and Jacquier (2014).

    No SVI é possível se estabelecer condições explícitas em seus parâmetros, de modo que o modelo não gere preços onde oportunidades de arbitragem estáticas possam ocorrer. A calibração para dados reais de mercado requer algoritmos de otimização não-linear e pode ser bastante demorada. Mais recentemente, um método para calibração que usa a estrutura inerente do modelo para reduzir as dimensões do problema de otimização foi desenvolvido em De Marco and Martini (2009).

    A parametrização conhecida como RAW do SVI é apresentada na equação (1), seguindo a notação já introduzida anteriormente, portanto, estamos modelando a variância total implícita para um determinado prazo. Para diferentes maturidades, teremos diferentes conjuntos de parâmetros.

    \[\begin{equation} w(k) = a + b\left(\rho(k-m)+\sqrt{(k-m)^2 + \sigma^2}\right) \tag{1} \end{equation}\]

    onde: \(a \in \mathbb R\), \(b \geq 0\), \(|\rho| < 1\), \(m \in \mathbb R\), \(\sigma > 0\), e \(a+b \sigma\sqrt{1 − \rho^2} \geq 0\) para garantir que \(\min w(k)>0, \, \forall k \in \mathbb R\).

    Restrições de não-arbitragem

    Antes de demonstrar a restrição imposta aos parâmetros \(b\) e \(\rho\) em função dos limites de inclinação das asas do smile, vamos derivar as expressões para \(w\prime(k)\) e \(w\prime\prime(k)\) que nos serão úteis na demonstração.

    A expressão para \(w\prime(k)\) é bastante simples:

    \[\begin{equation} w\prime(k) = b \left[\rho + \frac{(k-m)}{\sqrt{(k-m)^2+\sigma^2}}\right] \tag{2} \end{equation}\]

    Derivando novamente a equação (2) em relação a \(k\) teremos uma expressão ainda mais simples, mesmo que após alguma manipulação algébrica um tanto tediosa1, e resulta em:

    \[\begin{equation} w\prime\prime(k)=\frac{b\sigma^2}{[(k-m)^2+\sigma^2]^{3/2}} \tag{3} \end{equation}\]

    onde, se considerarmos \(b>0\) temos que \(w\prime\prime(k)>0, \,\forall k\in \mathbb R\), ou seja, o smile de volatilidade definido pela equação (1) é estritamente convexo.

    Rogers and Tehranchi (2010) definiram os limites possíveis para a inclinação das asas em função do tempo para expiração, provando que o smile tende a ficar mais horizontal a medida que o prazo aumenta. Este limite pode ser escrito da seguinte forma e é uma condição necessária para a ausência de arbitragem:

    \[\begin{equation} |w\prime(k)|\leq \frac{4}{\tau} \qquad \forall k \in \mathbb R, \quad \forall \tau \in (0, \infty) \tag{4} \end{equation}\]

    Sendo o smile convexo, suas máximas inclinações ocorrem quando \(k\rightarrow \pm \infty\). Portanto, deve-se avaliar a restrição dada pela equação (4) nestes limites da seguinte maneira:

    \[\begin{align} \lim\limits_{k\rightarrow\infty}w\prime(k)&=b(1+\rho)\geq 0\\ \lim\limits_{k\rightarrow-\infty}w\prime(k)&=-b(1-\rho)\leq 0 \end{align}\]

    que satisfazendo estas duas relações ao mesmo tempo em que se restringe os parâmetros \(b\) e \(\rho\) através da inequalidade de Rogers e Tehranchi nos garante o seguinte resultado para um SVI livre de arbitragem de travas.

    \[\begin{equation} b(1+|\rho|)\leq\frac{4}{\tau} \tag{5} \end{equation}\]

    Para garantir que a superfície gerada está livre de arbitragem do tipo borboleta deve-se primeiramente definir uma função2 \(g: \mathbb R\rightarrow \mathbb R\), tal que:

    \[\begin{equation} g(k)=\left(1-\frac{kw\prime(k)}{2w(k)}\right)^2-\frac{w\prime(k)^2}{4}\left(\frac{1}{w(k)}+\frac{1}{4}\right)+\frac{w\prime\prime(k)}{2} \tag{6} \end{equation}\]

    e seguir o lema :

    Lema 1 Uma fatia da superfície de volatilidade está livre de arbitragem do tipo borboleta se, e somente se, \(g(k) \geq 0\) para todo \(k \in \mathbb R\) e \(\lim\limits_{k\rightarrow+\infty}d_1(k)=-\infty\).

    Infelizmente, a natureza altamente não-linear da função \(g(k)\) impossibilita a derivação de restrições gerais aos parâmetros do SVI. A forma mais simples de eliminar arbitragem do tipo borbobleta é incluir a restrição \(g(k) \geq 0\) na função perda e proceder com a calibração dos parâmetros.

    Reparametrização Quasi-explicit

    Um dos problemas mais marcantes com a calibração do SVI dado pela equação (1) é sua natureza altamente não-linear que gera inúmeros pontos de mínimo locais. Mesmo em um ambiente simulado, um típico otimizador de mínimos quadrados como Levenberg-Marquardt não consegue chegar ao mínimo global, onde a função perda é igual a zero. A solução encontrada é dependente dos valores iniciais inputados ao otimizador e a robustez do conjunto de parâmetros encontrados não é garantida.

    Uma forma de contornar este problema pode ser a utilização de otimizadores globais, como algortimos genéticos, em um primeiro estágio e então o refinamento desta solução através de um otimizador local (LM, por exemplo).

    Outra forma, adotada em De Marco and Martini (2009) é a reparametrização da equação (1) de forma que esta possa ser tratada como um prolema linear. Para tanto, considere a seguinte troca de variáveis:

    \[\begin{equation} y = \frac{k-m}{\sigma} \end{equation}\]

    então a parametrização RAW do SVI se torna.

    \[\begin{equation} w(y) = a + b\sigma\left(\rho y + \sqrt{y^2 + 1}\right) \end{equation}\]

    Definindo agora as seguintes variáveis reparametrizadas é possível reduzir a dimensão de parâmetros de um SVI de 5 para apenas 3:

    \[\begin{align} c = &b\sigma\\ d = &\rho b \sigma \end{align}\] \[\begin{equation} w(y)=a+dy+c\sqrt{y^2+1} \tag{7} \end{equation}\]

    Portanto, para um par fixo de \((m, \sigma)\) nosso problema reduzido é:

    \[\begin{equation} P_{m, \sigma}:=\min\limits_{a, c, d \in D}f_y(a, c, d) \tag{8} \end{equation}\]

    onde \(f_y(\cdot)\) é a função objetivo da reparametrização, e é dada pela seguinte equação:

    \[\begin{equation} f_y(a, c, d)=\sum_{i=1}^{n}\left[w(y_i)-\tilde w_i\right]^2 \tag{9} \end{equation}\]

    onde \(\tilde w_i\) é a variância total observada correspondente ao moneyness \(k_i\).

    O domínio \(D\) dos parâmetros \(\{a, c, d\}\) é encontrado a partir do limite imposto por (5).

    \[\begin{equation} D = \begin{cases} 0 \leq c \leq 4\sigma\\ |d| \leq c \quad \text{e}\quad |d| \leq 4\sigma – c\\ 0 \leq a \leq \max\{\tilde w_i\}\\ \end{cases} \tag{10} \end{equation}\]

    O problema reduzido dado pela equação (8), é um típico problema de mínimos quadrados com restrições lineares. Este problema, por ser convexo, admite uma única solução interior (se existente) que será o mínimo global para este problema e é encontrada através do gradiente da função objetivo igualando-o a zero, \(\nabla f_y = 0\). Esta equação gera um sistema linear nos parâmetros \(a, c, d\) que pode ser explicitamente resolvido. Caso a solução encontrada para este problema esteja contida no domínio \(D\), esta solução é interior e é o mínimo desejado, caso contrário, deve-se percorrer o perímetro do domínio e encontrar o menor valor da função objetivo que será uma solução de canto.

    Seja \((a^*, c^*, d^*)\) a solução de (8) e \((a^*, b^*, \rho^*)\) os correspondentes parâmetros originais recuperados, então o problema completo de calibração é:

    \[\begin{equation} P:=\min\limits_{m, \sigma}\sum_{i=1}^n (w_*(k_i)-\tilde w_i)^2 \tag{11} \end{equation}\]

    onde \(w_*(k)=a^*+b^*\left(\rho^*(k-m)+\sqrt{(k-m)^2 + \sigma^2}\right)\).

    O problema completo, (11) é um problema em apenas duas dimensões, \((m, \sigma)\) e não-linear, que deve ser abordado através de algum tipo de otimizador global.

    Solução explícita do problema reduzido

    Nesta seção apresentaremos a solução, sem considerar as restrições impostas em (10) para o problema reduzido em (8), algo omitido em De Marco and Martini (2009). Esta seção é opcional para o leitor atento que já percebeu a semelhança entre o problema reduzido e um típico problema de regressão linear múltipla.

    Para encontrar o conjunto de parâmetros \((a^*, c^*, d^*)\) que representam os valores ótimos na equação (8), devemos resolver o seguinte sistema de equações:

    \[\begin{equation} \nabla f_y = \left[ \begin{array}{c} \partial f_y / \partial a\\ \partial f_y / \partial d\\ \partial f_y / \partial c \end{array} \right] = \boldsymbol{0} \tag{12} \end{equation}\]

    Cada uma das derivadas parciais da equação acima quando igualadas a zero dão origem ao sistema linear apresentado abaixo:

    \[\begin{equation} \scriptsize \begin{bmatrix} &n &\sum y_i &\sum\sqrt{y_i^2+1}\\ &\sum y_i &\sum y_i^2 &\sum(y_i\sqrt{y_i^2+1})\\ &\sum\sqrt{y_i^2+1} &\sum(y_i\sqrt{y_i^2+1}) &\sum(y_i^2+1)\\ \end{bmatrix} \cdot \begin{bmatrix} a \\ d \\ c \end{bmatrix} = \begin{bmatrix} \sum\tilde w_i \\ \sum \tilde w_i y_i \\ \sum(\tilde w_i\sqrt{y_i^2+1}) \end{bmatrix} \tag{13} \end{equation}\]

    Portanto, o problema reduzido pode ser resolvido através de um sistema linear de ordem 3 sob restrições também lineares.

    Algoritmo

    A otimização para encontrar os parâmetros ótimos de um SVI dadas observações de mercado e a técnica de calibração Quasi-explicit de De Marco and Martini (2009) pode ser resumida nos seguintes passos:

    1. Definir valores iniciais para os parâmetros \((m, \sigma)\),

    2. Iniciar algum otimizador global com estes parâmetros e resolver o problema completo (11)

      2.1 Dentro da otimização global, resolver o problema reduzido (8) para os parâmetros \((m, \sigma)\) dados,

    3. Na convergência do problema completo do passo 2, otimizar uma última vez o problema reduzido,

    4. Recuperar os parâmetros \((a, b, \rho, m, \sigma)\)

    A escolha dos otimizadores fica a cargo pessoal, sendo sugerido testar vários para o mesmo problema. Eventualmente, para um determinado smile um otimizador pode se mostrar melhor que outro que vinha sendo utilizado em outras ocasiões.

    Nos testes realizados pelo Clube de Finanças, entre os otimizadores globais para o problema completo utilizamos Algoritmos Genéticos, Nelder-Mead restrito e um Método não-linear generalizado. Para o problema reduzido, apesar de ser linear, o método de Nelder-Mead restrito se mostrou tão eficiente quanto e de mais fácil implementação. Se o objetivo for fazer uma calibração direta, dos cinco parâmetros ao mesmo tempo, uma combinação de otimizador global em primeiro estágio e o método de Levenberg-Marquardt restrito para refinamento da solução é o ideal.

    Resultados

    A seguir apresentamos um smile de referência para a calibração, obtido de ivolatility.com e então partimos para diferentes técnicas de calibração de um SVI. Os códigos em R também estão apresentados ao longo do texto para melhor compreensão e estudo do leitor.

    Os dados utilizados neste exemplo estão apresentados na tabela 1 abaixo. Esta é uma típica apresentação de um slice de superfície, ou seja, dados para um smile apenas. As principais variáveis são: a data em que os dados foram coletados (date), o preço de fechamento do ativo (stock_price), o prazo para expiração em dias (period), e medidas de moneyness como delta, strike e o próprio moneyness, além é claro da volatilidade implícita (iv) retirada do mercado.

    Tabela 1: Dados reais para exemplo de calibração de uma SVI.
    date symbol exchange stock_price_for_iv period delta moneyness strike iv
    2017-09-21 IWM NYSEArca 143.73 30 10 0.03 148.41 0.09
    2017-09-21 IWM NYSEArca 143.73 30 15 0.03 147.49 0.09
    2017-09-21 IWM NYSEArca 143.73 30 20 0.02 146.80 0.09
    2017-09-21 IWM NYSEArca 143.73 30 25 0.02 146.21 0.09
    2017-09-21 IWM NYSEArca 143.73 30 30 0.01 145.69 0.09
    2017-09-21 IWM NYSEArca 143.73 30 35 0.01 145.19 0.10
    2017-09-21 IWM NYSEArca 143.73 30 40 0.01 144.69 0.10
    2017-09-21 IWM NYSEArca 143.73 30 45 0.00 144.18 0.10
    2017-09-21 IWM NYSEArca 143.73 30 50 0.00 143.66 0.10
    2017-09-21 IWM NYSEArca 143.73 30 55 0.00 143.12 0.11
    2017-09-21 IWM NYSEArca 143.73 30 60 -0.01 142.53 0.11
    2017-09-21 IWM NYSEArca 143.73 30 65 -0.01 141.88 0.11
    2017-09-21 IWM NYSEArca 143.73 30 70 -0.02 141.13 0.12
    2017-09-21 IWM NYSEArca 143.73 30 75 -0.02 140.26 0.13
    2017-09-21 IWM NYSEArca 143.73 30 80 -0.03 139.16 0.13
    2017-09-21 IWM NYSEArca 143.73 30 85 -0.04 137.66 0.14
    2017-09-21 IWM NYSEArca 143.73 30 90 -0.06 135.32 0.16

    Esta tabela poderia conter (de fato contém no arquivo original) outros períodos de expiração, e neste caso uma das colunas de moneyness começa a se repetir, no caso seria o delta pois baixamos uma tabela de volatilidades implícitas por delta. Assim, em uma tabela simples em formato tidy é possível armazenar informações de uma superfície inteira, a qual de outra forma necessitaria de um arranjo em 3 dimensões.

    Ressaltamos aqui que a unidade de volatilidade implícita está em percentuais ao ano, equanto que nosso período é de dias corridos. É necessário harmonizar estas medidas de forma que, para volatiliades dadas em percentual ao ano, o período também seja dado em anos. Logo nosso \(\tau = 30/365\), ou seja, 0.08219.

    Demonstraremos aqui os resultados para a calibração de uma RAW SVI pelos métodos “Direto”, “GA”, “Quasi-NM” e “Quasi-PQ”, abaixo explicados.

    O método “Direto” é uma calibração direta através de um algoritmo de Levenberg-Marquardt da equação (1), ou seja, não existe reparametrização Quasi-explicit e o problema resolvido é não-linear em 5 dimensões. São realizadas 10 calibrações com estimativas iniciais dos parâmetros aleatórias, mas dentro de seus respectivos domínios. A melhor solução, aquela com o menor valor para a função objetivo, é selecionada. Todos os outros métodos utilizam a reparametrização, ocorrendo variações apenas nos algoritmos de otimização utilizados nos problemas reduzido e completo.

    A calibração “GA” faz uso do otimizador global de algoritmos genéticos para o problema completo, ou seja, para estimar o par \((m, \sigma)\) que corresponde ao mínimo global. Após, o problema reduzido é resolvido através do algoritmo de Nelder-Mead. Este método é robusto, pois o algoritmo genético tem grande probabilidade de encontrar a região onde se encontra o mínimo global e não ficar preso localmente. Entretanto a robustez ocorre as expensas do tempo de computação.

    Os métodos ditos “Quasi” diferem entre si na resolução do problema reduzido. Enquanto “PQ” remete a programação quadrática e faz uso da resolução do sistema linear apresentado na equação (13) com as restrições impostas por (10), o método “Quasi-NM” utiliza o método de Nelder-Mead com restrições para a resolução deste mesmo problema reduzido. Em ambos os métodos, o problema completo é resolvido com um algoritmo de Nelder-Mead com 50 reinicializações das estimativas iniciais dos parâmetros \((m, \sigma)\), o que causa algum impacto no tempo de computação destes métodos.

    smile <- dados %>% 
      mutate(tau = period / 365) %>% 
      select(moneyness, iv, tau)
    
    par_names <- factor(c("a", "b", "$\\rho$", "m", "$\\sigma$"),
                        levels = c("a", "b", "$\\rho$", "m", "$\\sigma$"))
    k <- smile$moneyness
    w <- smile$iv^2 * smile$tau
    
    init_direct <- proc.time()
    par_direct <- svi_fit_direct(k, w)
    end_direct <- proc.time()
    time_direct <- end_direct - init_direct 
    
    init_ga <- proc.time()
    par_ga <- svi_fit_ga(k, w)
    end_ga <- proc.time()
    time_ga <- end_ga - init_ga 
    
    init_quasipq <- proc.time()
    par_quasipq <- svi_fit_quasi(k, w, inner = "quadprog")
    end_quasipq <- proc.time()
    time_quasipq <- end_quasipq - init_quasipq 
    
    init_quasinm <- proc.time()
    par_quasinm <- svi_fit_quasi(k, w)
    end_quasinm <- proc.time()
    time_quasinm <- end_quasinm - init_quasinm 
    
    iv_direct <- sqrt(svi_fun(par_direct$par[[1]], k) / smile$tau)
    iv_ga <- sqrt(svi_fun(par_ga$par[[1]], k) / smile$tau)
    iv_quasipq <- sqrt(svi_fun(par_quasipq$par[[1]], k) / smile$tau)
    iv_quasinm <- sqrt(svi_fun(par_quasinm$par[[1]], k) / smile$tau)
    
    plot_tbl <- tibble(k = k,
                  Direct = iv_direct,
                  GA = iv_ga,
                  QuasiPQ = iv_quasipq,
                  QuasiNM = iv_quasinm,
                  observed = smile$iv) %>% 
      gather(key = method, value = iv, -c(k, observed))
    
    par_tbl <- bind_rows(par_direct, par_ga, par_quasipq, par_quasinm) %>% 
      select(method, par) %>% 
      unnest() %>% 
      mutate(names = rep(par_names, 4)) %>% 
      spread(method, par) %>% 
      select(names, Direct, GA, QuasiPQ, QuasiNM) %>% 
      mutate(names = as.character(names)) %>% 
      mutate_at(vars(Direct:QuasiNM), arred)
    
    rmse_tbl <- bind_rows(par_direct, par_ga, par_quasipq, par_quasinm) %>% 
      select(method, par) %>% 
      unnest() %>% 
      group_by(method) %>% 
      summarise(RMSE = rmse(par, k, w)) %>% 
      spread(method, RMSE) %>% 
      mutate(names = "RMSE") %>% 
      select(names, Direct, GA, QuasiPQ, QuasiNM) %>% 
      mutate_at(vars(Direct:QuasiNM), format, digits = 3, scientific = TRUE)
    
    time_tbl <- tibble(method = c("Direct", "GA", "QuasiPQ", "QuasiNM"),
                       time = rbind(time_direct, time_ga, 
                                    time_quasipq, time_quasinm)[, 3]) %>% 
      spread(method, time) %>% 
      mutate(names = "Tempo") %>% 
      select(names, Direct, GA, QuasiPQ, QuasiNM) %>% 
      mutate_at(vars(Direct:QuasiNM), arred)
    
    frame_tbl <- bind_rows(par_tbl, rmse_tbl, time_tbl)

    Abaixo é apresetanda uma tabela com os valores estimados para os parâmetros da SVI, o RMSE (root mean square error) e o tempo total em segundos para a calibração. Aqui o RMSE é definido como \(\sqrt{1/n\sum(w(k_i)-\tilde w_i)^2}\) e nos fornece um valor típico de erro na variância.

    kable(frame_tbl,
          col.names = c("Estimativa", "Direto", "GA", 
                        "QuasiPQ", "QuasiNM"),
          caption = "Parâmetros estimados da calibração, RMSE e tempo de computação em segundos.") %>% 
      kable_styling(bootstrap_options = "striped",
                    font_size = 20,
                    full_width = FALSE)
    Tabela 2: Parâmetros estimados da calibração, RMSE e tempo de computação em segundos.
    Estimativa Direto GA QuasiPQ QuasiNM
    a 0.00000 0.00000 0.00000 0.00011
    b 0.01964 0.01952 0.01651 0.01870
    \(\rho\) -0.81157 -0.80220 -1.00000 -0.90090
    m -0.00861 -0.00773 -0.01131 -0.01145
    \(\sigma\) 0.05101 0.05039 0.07100 0.05027
    RMSE 8.71e-06 8.68e-06 9.62e-05 1.02e-05
    Tempo 0.11800 24.93800 0.14100 5.94600

    O método Direto, com algoritmo de Levenberg-Marquardt se mostrou muito mais rápido que os demais, principalmente com relação ao algoritmo genético, e com um bom ajuste dado o baixo valor de RMSE. O algoritmo genético é consideravelmente mais lento, entretanto durante as várias calibrações realizadas em testes (e que não estão apresentadas na tabela 2), este algoritmo sempre se mostrou robusto, com baixo RMSE, diferentemente dos outros métodos que por vezes, denpendendo das estimativas iniciais, podem convergir para um mínimo local.

    O gráfico com os ajustes realizados pode ser observado abaixo.

    ggplot(plot_tbl, aes(x = k)) + 
      geom_point(aes(y = observed)) +
      geom_line(aes(y = iv, color = method)) +
      guides(color = guide_legend(title = "")) +
      labs(title = "",
           x = "Forward log-moneyness",
           y = "Volatility",
           caption = "") +
      scale_y_continuous(labels = scales::percent) +
      scale_color_viridis_d() +
      theme_economist_white()
    Comparação entre diferentes métodos de calibração de uma SVI.

    Figura 1: Comparação entre diferentes métodos de calibração de uma SVI.

    De fato o método direto e o método Quasi-explicit com otimizador global do tipo algoritmo genético se mostram mais adequados para a calibração de um SVI. Enquanto o método direto é muito mais eficiente em termos computacionais, o método Quasi-explicit com GA é mais robusto. Desta forma, deve-se salientar que é necessário que o usuário, ao fazer uma calibração de smile de volatilidade, deve dispor de diferentes métodos de fazê-lo, e a inspeção visual do resultado é obrigatória para determinar qual método foi mais eficiente em ajustar a curva aos dados.

    Conclusão

    Apesar de neste exemplo ter se mostrado um método efetivo, com bom ajuste e baixo tempo de calibração, o método direto é altamente dependente dos valores iniciais dos parâmetros. Para tornar este método mais robusto, um número maior de reinicializações deve ser feita o que penaliza o tempo de calibração. O método Quasi-explicit com algoritmo genético para encontrar a região de \((m, \sigma)\) onde se encontra o mínimo global se mostrou bastante robusta, entretanto, de convergência lenta. Para ajustar apenas um smile alguns segundos a mais não representam problema. Porém, se imaginarmos que em uma grande instituição financeira são necessárias calibrações de, talvez, milhares de smiles representando inúmeras superfícies de diversos instrumentos, este método pode se mostrar computacionalmente caro.

    Já os métodos Quasi-explicit que utilizam um algoritmo de Nelder-Mead para a resolução do problema completo se mostraram muito sensíveis às estimativas iniciais dos parâmetros. Mesmo utilizando 50 reinicialzações do método, diversas vezes o ajuste realizado foi insatisfatório. A resolução através de programação quadrática é rápida, se comparada com NM, entretanto, quando as restrições impostas pela equação (10) se tornam ativas, este método parece sofrer com algum viés em sua solução.

    Referências

    De Marco, S, and C Martini. 2009. “Quasi-Explicit Calibration of Gatheral’s Svi Model’.” Zeliade White Paper, 1–15.

    Gatheral, Jim. 2004. “A Parsimonious Arbitrage-Free Implied Volatility Parameterization with Application to the Valuation of Volatility Derivatives.” Presentation at Global Derivatives & Risk Management, Madrid.

    Gatheral, Jim, and Antoine Jacquier. 2014. “Arbitrage-Free Svi Volatility Surfaces.” Quantitative Finance 14 (1). Taylor & Francis: 59–71.

    Lee, Roger W. 2004. “The Moment Formula for Implied Volatility at Extreme Strikes.” Mathematical Finance: An International Journal of Mathematics, Statistics and Financial Economics 14 (3). Wiley Online Library: 469–80.

    Rogers, Leonard CG, and MR Tehranchi. 2010. “Can the Implied Volatility Surface Move by Parallel Shifts?” Finance and Stochastics 14 (2). Springer: 235–48.

  • A resolução desta derivada é uma simples regra da divisão, entretanto a simplificação do resultado pede alguma manipulação algébrica. É possível utilizar sistemas de computação simbólica, o qual recomendamos o SymPy

  • Condições para ausência de arbitragem do tipo borboleta em um SVI estão detalhadas na seção 2.2 do artigo de Gatheral and Jacquier (2014).

    Posted by Rafael F. Bressan in Derivativos & Riscos, 0 comments
    Métodos de calibração de superfícies de volatilidade

    Métodos de calibração de superfícies de volatilidade

    2019/02/08

    Métodos de calibração são as diferentes formas existentes entre “interpolação”, “suavização” e “parametrização” que podem ser utilizadas para fazer o ajustes dos dados obtidos do mercado de opções às superfícies de volatilidade.

    Como já apresentado em artigos anteriores, existem diversas formas de interpolar, extrapolar, parametrizar e calibrar smiles de volatilidade. Existem vantagens e desvantagens para cada método.

    Calibração versus Interpolação

    Uma forma simples de gerar um smile de volatilidade a partir de dados observados no mercado é a interpolação destes dados. Diversas formas de interpolação existem, sendo talvez a mais conhecida a spline cúbica. Não é a proposta deste artigo detalhar os procedimentos de interpolação, restando saber que em tal procedimento é gerada uma função contínua em partes (piecewise) que passa por todos os pontos observados.

    Uma interpolação força a passagem da função interpolada em todos os seus pontos de referência, como se estivesse ligando estes pontos em um desenho a mão livre. Portanto, nestes pontos o erro da interpolação é zero por definição, entretanto em pontos intermediários podem surgir erros, inclusive aqueles que possibilitam a existência de arbitragem entre strikes de um mesmo smile1.

    Em contraposição a métodos de interpolação, podem ser derivados métodos de suavização (smoothing) ou então a parametrização do smile de volatilidade. Seja suavização, ou parametrização, estes métodos não forçam a passagem da função que representa o smile pelos pontos de mercado, mas buscam minimizar alguma função perda dos desvios em relação a estes pontos ao mesmo tempo em que buscam “suavizar” o smile, para que este não apresente variações bruscas entre os strikes ou alterações de convexidade na curva de preços, que não são condizentes com a teoria de precificação de derivativos.

    Um método paramétrico, como o SVI, Heston ou SABR, busca ajustar às volatilidades implícitas observadas através dos preços das opções sendo praticados no mercado a uma determinada função, que possui parâmetros em sua definição que por sua vez determinam a forma desta. Ao se ajustar os parâmetros, pode-se adequar a função para ficar “o mais próxima possível” dos dados observados, sem necessariamente, no entanto, passar por todos estes pontos.

    A figura abaixo tenta mostrar as diferenças entre uma interpolação spline cúbica, uma suavização e uma parametrização SVI. Enquanto que a interpolação liga todos os pontos marcados, a suavização e a parametrização não necessariamente passam sobre estes mas fornecem uma curva mais “suave”, sem trocas de convexidade, o que geraria oportunidades de arbitragem e probabilidades negativas de ocorrência de determinados preços para o ativo subjacente, que ferem os princípios de precificação de opções. Os dados utilizados neste e nos próximos artigos sobre superfícies de volatilidade foram obtidos do site ivolatility.com na forma de amostra gratuita fornecida livremente. O ativo subjacente é o ETF IWM para a data de 21/09/2017.

    Diferentes métodos de ajuste de dados a um smile.

    Figura 1: Diferentes métodos de ajuste de dados a um smile.

    Pode-se verificar como os métodos SVI e a suavização não passam sobre todos os pontos marcados, com a suavização tendo dificuldade com a curvatura nos valores mais altos de moneyness e a SVI possuindo uma inclinação mais branda na asa esquerda do smile.

    Spline cúbica

    Este método é possivelmente um dos mais flexíveis e conhecidos de interpolação de dados univariados existente, embora também exista sua versão bi-dimensional. Uma spline nada mais é que “uma curva definida matematicamente por dois ou mais pontos de controle”2.

    No caso da spline cúbica, esta é uma função polinomial de grau 3 definida em cada subintervalo demarcados pelos pontos de controle, no caso de interpolação são todos nós. Ou seja, considere um segmento entre dois pontos consecutivos \([c, d]\in S\) a spline é uma função cúbica com seus parâmetros calculados pelo algoritmo de ajuste. Para o próximo intervalo de pontos dentro do domínio da função, um novo polinômio de grau 3 é ajustado, sendo que nos pontos de nós uma restrição de igualdade entre as derivadas nos dois segmentos é aplicada para garantir a suavidade da função interpolada como um todo.

    Assim, uma spline cúbica é uma função contínua, suave e diferenciável até a segunda ordem. Entretanto, suas derivadas, apesar de contínuas, podem não ser suaves, especialmente aquela de segunda ordem que pode apresentar pontos de “ruptura”. Esta característica de uma spline cúbica a torna pouco atrativa para a inferência de distribuições de probabilidade a partir de dados de volatilidade ou mesmo dos preços de opções.

    Cada segmento de uma spline cúbica é um polinômio de grau 3 diferente.

    Figura 2: Cada segmento de uma spline cúbica é um polinômio de grau 3 diferente.

    Suavização

    A técnica de suavização é muito semelhante a interpolação, inclusive o método spline também é aplicado, com algumas modificações de forma que nem todos os pontos fornecidos serão nós.

    Na spline de suavização (ou aproximação), os pontos fornecidos são separados entre os nós, onde a função deve passar e pontos de controle, que são utilizados para controlar a curvatura da função nestes pontos.

    Estas suavizações são principalmente utilizadas quando se possui muitas observações sujeitas a ruídos, de forma que uma interpolação entre todos os pontos seria tanto impraticável quanto sem sentido. O que se deseja, portanto, é uma função aproximada que melhor descreva o processo sob análise.

    Um ponto em comum entre estas técnicas é o parâmetro de suavização, ausente, na interpolação, que controla a “suavidade” da função estimada.

    Menor parâmetro de suavização gera granularidade na curva.

    Figura 3: Menor parâmetro de suavização gera granularidade na curva.

    Parametrização

    E por fim as técnicas de parametrização. Nesta categoria estão diversos conhecidos modelos de superfícies de volatilidade implícita, dentre eles os modelos de Heston (1993) e SVI de Gatheral (2004).

    Em comum, estes modelos tentam parametrizar a superfície, e por conseguinte o smile de volatilidade, de acordo com alguma função, em geral não-linear, que possui características condizentes com a teoria de precificão de derivativos e também a observação empírica das superfícies.

    Por exemplo, a parametrização raw da SVI possui a seguinte forma para a variância total3 :

    \[ w(k) = a + b\left(\rho(k-m)+\sqrt{(k-m)^2 + \sigma^2}\right)\]

    que fornece um espaço de cinco parâmetros \(\chi_B=\{a, b, \rho, m, \sigma\}\) que definem o smile e devem, portanto, serem calibrados a partir de dados observados no mercado.

    O procedimento de calibração consiste em encontrar o conjunto de parâmetros que minimizam uma função perda entre a volatilidade prevista pelo modelo e os dados de mercado, enquanto satisfazem algumas restrições adicionais, como “ausência de arbitragem”, suavidade, etc. Trata-se, via de regra, de problemas de otimização não-linear com restrições de inequalidade também não-lineares.

    Função perda

    A função perda, ou função de calibração pode ser definida de diversas maneiras, de forma geral, para uma determinada maturidade, ela toma a forma:

    \[L=\sum\limits_{i=1}^n\lambda_i||\hat w(k_i)-w_{imp}(k_i)||\] onde \(||\cdot||\) é alguma medida de norma, sendo a mais conhecida o quadrado das diferenças, dando origem a minimização do erro quadrático médio (MSE). Para o presente smile sendo calibrado existem \(n\) strikes (\(k_i\)) e suas volatilidades implícitas observadas são \(w_{imp}(k_i)\). A resposta do modelo para um determinado strike é \(\hat w(k_i)\) e \(\lambda_i\) são os pesos dados na função perda para cada um destes strikes.

    Os pesos \(\lambda_i\) são utilizados para ponderar as observações das volatilidades mais importantes para o cálculo, onde se deseja que a curva ajustada possua um menor erro. Em geral, estes pesos são calculado como inversamente proporcionais:

    • ao quadrado dos spreads bid-ask, para dar mais importância às opções mais líquidas
    • ao quadrado da grega vega calculada a partir do modelo BSM

    Otimizadores

    Os otimizadores são os algoritmos pelos quais o problema de minimização posto é resolvido. Se a função perda é convexa, e ela deve ser construída de forma a ser, mesmo que não estritamente, então ela possui um ou mais pontos de mínimo onde o gradiente desta função é igual a zero. O que os otimizadores fazem é buscar o conjunto de parâmetros que minimizam a função perda e atendem as restrições impostas simultaneamente. Os otimizadores podem ser classificados em dois grandes grupos, globais e locais.

    Algoritmos locais dependem de uma estimativa inicial dos parâmetros para começarem a busca pelo mínimo. Seguindo uma regra utilizando-se o gradiente da função ou alguma heurística, estes otimizadores caminham em direção ao ponto de mínimo mais próximo da estimativa inicial, daí o nome “local”. Como desvantagem destes otimizadores é a mais evidente é que se a função perda for altamente não-linear, com diversos pontos de mínimo local, este otimizador pode ficar preso em um destes pontos sem nunca, no entanto, encontrar o mínimo global. Eles são, portanto muito sensíveis à estimativa inicial dos parâmetros.

    Por sua vez, otimizadores globais buscam mapear todo o espaço factível para os parâmetros e encontrar o ponto mínimo da função perda dentro deste espaço. Estes algoritmos não dependem de estimativas iniciais, uma vez que tentarão avaliar o espaço completo. São utilizados quando o problema de minimização é não-linear e possui múltiplos pontos de mínimo local. Estes algoritmos usam alguma forma de heurística para encontrar a região onde o mínimo global está localizado, mas são, em geral, ineficientes em apontar rapidamente onde este ponto de mínimo se encontra com precisão. Por esta razão, é frequente a utilização de otimizadores globais com um posterior refinamento de sua solução por algum algoritmo local.

    Abaixo apresentamos alguns exemplos mais comuns de otimizadores, tanto locais quanto globais:

    • Gauss-Newton: Este método é utilizado para encontrar as raízes de alguma função. Para encontrar o ponto de mínimo da função perda, precisa-se encontrar as raízes do gradiente desta função, portanto o método de Newton em otimização faz uso da função gradiente. Este é um método de otimização local.

    • Levenberg-Marquardt: Método muito utilizado para problemas não-lineares, ele parte de uma modificação ao método de Gauss-Newton ao introduzir um fator de amortecimento calculado iterativamente.

    • L-BFGS-B: BFGS é um método conhecido como quasi-Newton, onde não é necessário calcular a Hessiana do problema, ela é aproximada a partir do próprio gradiente. É bastante utilizado para resolver problemas não-lineares e em sua versão L-BFGS-B pode lidar com restrições do tipo box, intervalo dos parâmetros é fixo.

    • Nelder-Mead: Este é um método livre do uso de gradiente, já que usa uma heurística para construir um simplex e a partir deste “procurar” por um mínimo. Bastante utilizado quando a função objetivo pode não ser diferenciável. Faz uso de um simplex inicial, que pode ser grande o suficiente para encampar o mínimo global, entretanto, não se classifica como um otimizador global.

    • Algoritmo Genético: Este método utiliza conceitos da seleção natural para gerar os resultados da otimização. É um otimizador global, no sentido que independe de uma estimativa inicial de parâmetros e faz uma busca por todo o espaço factível. Em um algoritmo genético, uma população aleatória inicial de parâmetros é criada e a partir desta, as gerações evoluem conforme mutações e cross-over de características e é avaliado o fitness de cada conjunto de parâmetros até um deles ser considerado adequado.

    • Evolução Diferencial: É um método de otimização global, assim como o Algoritmo Genético e o Enxame de Partículas. Sua diferença reside no fato de que sua população inicial é constantemente avaliada e deslocada de posição. Se o agente obtiver uma situação melhor (menor valor para a função perda) na nova posição, esta agora faz parte da população. Desta forma os agentes, antes espalhados pelo espaço factível dos parâmetros, tendem a convergir para um ponto com o menor valor da função perda.

    • Enxame de Partículas: Do inglês, Particle Swarm Optimization – PSO este método é semelhante ao DE (Differential Evolution) porém as partículas (o equivalente dos agentes no DE) matém informações sobre a posição da melhor partícula até então, de forma a fazer com que as partículas tendam para a melhor solução.

    Conclusão

    Dependendo do objetivo da aplicação, superfícies de volatilidade podem ser interpoladas, suavizadas ou parametrizadas. A parametrização tem recebido especial interesse pois pode, ao mesmo tempo que garante uma superfície livre de arbitragem estática se devidamente construída, ajustar-se muito bem aos dados observados e gerar distribuições neutras ao risco implícitas factíveis.

    Para gerar uma superfície parametrizada, primeiramente é necessário um modelo teórico com propriedades desejáveis e que se ajuste aos dados de mercado quando calibrado. Escolhido este modelo paramétrico, passa-se a calibração do mesmo onde existem diversas opções de escolha entre otimizadores. Ao final do processo teremos um modelo de superfície devidamente parametrizado com valores que melhor se ajustam segundo alguma função perda escolhida.

    Com a superfície de volatilidade calibrada, as aplicações possíveis incluem a precificação de derivativos, gerenciamento de risco, simulações de Monte Carlo, análises de stress, entre outras.

    Referências

    Gatheral, Jim. 2004. “A Parsimonious Arbitrage-Free Implied Volatility Parameterization with Application to the Valuation of Volatility Derivatives.” Presentation at Global Derivatives & Risk Management, Madrid.

    Heston, Steven L. 1993. “A Closed-Form Solution for Options with Stochastic Volatility with Applications to Bond and Currency Options.” The Review of Financial Studies 6 (2). Oxford University Press: 327–43.

  • Veja mais detalhes no artigo anterior: Smile de volatilidade – parte 2
  • Definição retirada de https://pt.wikipedia.org/wiki/Spline
  • A variância total é o produto entre a variância implícita e o tempo para expiração, (w=\sigma^2_{imp}\cdot\tau).
  • Posted by Rafael F. Bressan in Derivativos & Riscos, 0 comments
    Superfícies de Volatilidade

    Superfícies de Volatilidade

    2019/02/01

    Já mostramos em artigos anteriores, processos estocásticos em finanças, o modelo de Black&Scholes e, como na realidade dos mercados surgem os smiles de volatilidade em duas partes, uma anomalia não prevista por B&S. Dado que este modelo não pode explicar o surgimento do smile de volatilidade e tampouco sua superfície, o estudo da volatilidade implícita tornou-se uma preocupação central nas finanças. Diversos modelos de superfícies de volatilidade foram propostos ao longo dos anos, e ainda o são, para buscar conciliar a presença do smile de volatilidade e a natureza estocástica da precificação do ativo subjacente.

    Apresentaremos alguns poucos destes modelos.

    Modelos estocásticos

    Volatilidade estocástica apresenta a noção que a volatilidade instantânea do ativo subjacente também é, por si só, um processo estocástico que pode ser correlacionado com o processo de formação do preço do ativo. O resultado destes modelo é um procedimento livre de arbitragem para a interpolação dos dados de mercado a superfície de volatilidade.

    Heston

    O modelo de Heston, baseado no trabalho de Heston (1993), assume que o quadrado da volatilidade segue uma equação diferencial estocástica – EDE – do tipo Cox-Ingersoll-Ross – CIR, a qual apresenta características desejáveis do ponto de vista da variância. Abaixo estão as três equações que definem um modelo de Heston:

    \[\begin{equation} \begin{aligned} dS_t=&\mu S_t dt + \sqrt{v_t}S_t dW_1\\ dv_t=&-\lambda(v_t-\bar v)dt+\eta\sqrt{v_t}dW_2\\ d\left\langle W_1, W_2 \right\rangle=&\rho dt \end{aligned} \tag{1} \end{equation}\]

    onde \(v_t\) é a variância estocástica, \(\lambda\) é o parâmetro que define a velocidade de convergência da volatilidade para seu valor de longo prazo \(\bar v\), \(\eta\) é a famigerada volatilidade da volatilidade e a notação \(d\left\langle W_1, W_2 \right\rangle\) indica a covariação entre os movimentos Brownianos padrões \(dW_1\) e \(dW_2\).

    Esta modelagem apresenta uma característica desejável, e até certo ponto, intuitiva para a volatilidade, o retorno a uma média de longo prazo. Empiricamente observamos regimes distintos de volatilidade para os ativos financeiros, em alguns momentos a volatilidade está anormalmente baixa ou durante momentos de estresse no mercado, incrivelmente alta. Porém não faria sentido um modelo onde a volatiliade pudesse estacionar permanentemente no limite inferior ou então divergir para infinito. O modelo de Heston garante que, mesmo sendo estocástica, a volatilidade não é atraída para estes extremos.

    Os preços das calls e puts européias possuem fórmula fechada para seu cômputo através da transformada de Fourier, como apresentado no artigo original. A complexidade destas equações e do método para sua resolução está fora do escopo deste blog, entretanto o leitor aficcionado pode encontrar uma demonstração da forma de resolução em Gatheral (2011).

    Basta-nos saber que em um framework geral de precificação de derivativos, o preço de uma call não descontada (preço de Black) pode ser escrita da seguinte forma:

    \[\begin{equation} C_B(x, v, \tau)=K\left[e^xP_1(x, v, \tau)-P_0(x, v, \tau)\right] \tag{2} \end{equation}\]

    onde \(x:=\ln K/F_t\). \(P_1\) e \(P_0\) são duas probabilidades na medida neutra ao risco, \(\mathbb Q\). Enquanto \(e^xP_1\) informa o valor esperado do ativo no vencimento dado que a opção está no dinheiro, \(P_0\) representa a probabilidade de ficar dentro do dinheiro na data de expiração.

    As probabilidades \(P_j\), \(j = 0, 1\) podem ser calculadas através da seguinte equação:

    \[\begin{equation} P_j(x, v, \tau)=\frac{1}{2}+\frac{1}{\pi}\int\limits_0^\infty Re\left\lbrace\frac{exp\{C_j(u, \tau)\bar v + D_j(u, \tau)v + iux\}}{iu}\right\rbrace du \tag{3} \end{equation}\]

    onde \(i\) representa o número imaginário \(\sqrt{-1}\) e \(Re\{\cdot\}\) é apenas a parte real de seu argumento.

    Primeiramente vamos definir algumas variáveis auxiliares:

    \[\alpha_j=-\frac{u^2}{2}-\frac{iu}{2}+jiu\]

    \[\beta_j=\lambda-j\rho\eta-\rho\eta i u\]

    \[\gamma=\frac{\eta^2}{2}\]

    \[r_{\pm}=\frac{\beta_j\pm\sqrt{\beta^2-4\alpha\gamma}}{2\gamma}=\frac{\beta\pm d}{\eta^2}\]

    \[d=\sqrt{\beta^2-4\alpha\gamma}\]

    \[g=\frac{r_-}{r_+}\]

    Então:

    \[C_j(u, \tau)=\lambda\left\lbrace r_-\tau-\frac{2}{\eta^2}\ln\left(\frac{1-ge^{-d\tau}}{1-g}\right) \right\rbrace \tag{4}\]

    \[D_j(u, \tau)=r_-\frac{1-e^{-d\tau}}{1-ge^{-d\tau}} \tag{5}\]

    SABR

    Este modelo foi apresentado por Hagan et al. (2002) e assume que o preço forward, \(F_t\) do ativo subjacente e sua volatilidade instantânea, \(\alpha_t\), seguem as seguintes EDEs:

    \[ \begin{aligned} dF_t=&\alpha_tF_t^\beta dW_1\\ d\alpha_t=&\nu\alpha_t dW_2\\ d\left\langle W_1, W_2 \right\rangle =&\rho dt \end{aligned} \tag{6} \]

    onde \(\nu > 0\) é a volatilidade da volatilidade e \(\beta > 0\) é conhecido como o coeficiente de alavancagem.

    A interpretação financeira se dá pela seguinte maneira: \(\alpha_t\) determina o nível geral de volatilidade do forward no dinheiro, \(\beta\) mede a assimetria do smile sendo as duas escolhas particulares: \(\beta = 1\) correspondendo ao modelo log-normal sem smile e \(\beta = 0\) correspondendo ao modelo normal com um smile irrealista, \(\rho\) também controla a inclinação do smile, quando \(\rho < 0\) uma inclinação negativa típica de equities surge e com a opção \(\rho = 0\) produzindo um smile de volatilidade simétrico, por fim, \(\nu\) é uma medida de convexidade. Também é possível verificar que a volatilidade estocástica, \(\alpha_t\) segue uma distribuição log-normal.

    Comparado com outros modelos de volatilidade estocástica, o SABR é um dos mais simples e possui aproximações analíticas para o cálculo do preço de opções Europeias. Ele pode ser utilizado para ajustar um smile observado no mercado de forma acurada, entretanto, para ajustar uma superfície completa este modelo sofre com algumas restrições.

    Bates

    Em modelos de difusão como B&S e mesmo Heston, o processo de formação de preço do ativo se comporta como um movimento browniano e a probabilidade de que este preço se mova bruscamente em um curto período de tempo é muito pequena. Assim, em tais modelos, os preços das opções OTM mais curtas são muito inferiores ao que se observa nos mercados reais.

    Para endereçar esta deficiência, Bates (1996) amplia o modelo de Heston incluindo saltos no processo de preço do ativo subjacente. Estes modelos, com a inclusão de saltos aleatórios na dinâmica de preços são conhecidos como Jump-Diffusion. A dinâmica é especificada pelas seguintes equações:

    \[\begin{equation} \begin{aligned} dS_t=&\mu S_tdt+\sqrt{v_t}S_tdW_1(t)+J_t S_t dN_t\\ dv_t=&-\lambda(v_t-\bar v)dt+\eta\sqrt{v_t}dW_2(t)\\ d\left\langle W_1, W_2 \right\rangle =&\rho dt \end{aligned} \tag{7} \end{equation}\]

    Muito semelhante, portanto ao modelo de Heston nas equações (1), com a diferença da inclusão de um processo de Poisson, \(dN_t\) com intensidade \(\theta\) indicando a probabilidade instantânea de um salto de tamanho unitário. \(J_t\) é o tamanho do salto aleatório e seu logaritmo segue uma distribuição gaussiana:

    \[\begin{equation} \ln{(1+J)}\sim N\left(\ln(1+\beta)-\frac{1}{2}\alpha^2\,\, ,\,\,\alpha^2\right) \tag{8} \end{equation}\]

    Este modelo possui fórmulas fechadas para os preços de calls e puts, novamente utilizando-se o método da transformada de Fourier, que podem ser encontrados utilizando o método de Duffie, Pan, and Singleton (2000).

    Volatilidade local

    Conforme visto neste artigo anterior sobre o smile de volatilidade, é possível a partir das volatilidades implícitas obter a distribuição neutra ao risco do preço terminal do ativo subjacente. O pesquisador e profissional de mercado Bruno Dupire em seu artigo, Dupire (1994), fez então o seguinte questionamento: dada uma distribuição implícita, existe apenas um processo de difusão1 que seja consistente com esta distribuição? A resposta obtida foi sim, e deste processo surge a função de volatilidade local, \(\sigma_L(S, t)\), por vezes também conhecida como função de volatilidade implícita.

    A equação de Dupire é apresentada abaixo:

    \[\frac{\partial C_B}{\partial \tau}=\frac{1}{2}\sigma_L^2K^2\frac{\partial^2C_B}{\partial K^2} \tag{9}\]

    da qual todos os termos podem ser obtidos a partir dos dados de mercado de uma superfície de volatilidade, com exceção é claro, da função de volatilidade local \(\sigma_L\) que poderá ser calculada. Esta equação pode ser vista como a definição da função de volatiliade local independente do processo que governa a evolução da volatilidade (um processo estocástico, por exemplo).

    Uma forma de interpretar a volatilidade, ou mais precisamente a variância local, é na forma de valor esperado dentro da medida neutra ao risco. Resultado devido a trabalho de Derman and Kani (1998), onde a equação de Dupire pode ser reescrita da seguinte forma:

    \[\frac{\partial C_B}{\partial \tau}=\mathbb E\left[v_T|S_T=K\right]\frac{1}{2}K^2\frac{\partial^2C_B}{\partial K^2} \tag{10}\]

    Ou seja, a variância local é a expectativa neutra ao risco da variância instantânea condicionada ao preço terminal do ativo, \(S_T\) ser igual ao preço de exercício \(K\).

    Uma das formas mais praticadas para a implementação de uma superfície de volatilidade local é através de árvores binomiais conforme apresentado por Derman and Kani (1994).

    Modelos paramétricos

    Diversas representações paramétricas já foram apresentadas para a superfície de volatilidade. Neste tipo de modelo uma função não-linear, dependente de um conjunto de parâmetros é especificada e, a partir dos dados observados no mercado, a parametrização é encontrada através da minimização de alguma função objetivo, método conhecido como calibração.

    SVI

    A parametrização da do tipo SVI (Stochastic Volatility Inspired) para o smile foi introduzida por Gatheral (2004) e é motivada pelo comportamento assintótico para strikes extremos. É baseada no smile gerado por um modelo de Heston (1993). Sua parametrização é dada em termos de forward log-moneyness conforme apresentado anteriormente, \(k=\ln(K/S)-r\tau=\ln(K/F)\), por:

    \[\begin{equation} w(k) = a + b\left(\rho(k-m)+\sqrt{(k-m)^2 + \sigma^2}\right) \tag{11} \end{equation}\]

    onde \(w\) é a variância total e o conjunto de parâmetros \(\chi_R = \{a, b, \rho, m, \sigma\}\) definem a forma deste smile que é conhecido como parametrização raw do SVI. Os limites destes parâmetros são tais que: \(a \in \mathbb R\), \(b \geq 0\), \(|\rho| < 1\), \(m \in \mathbb R\), \(\sigma > 0\), e a condição “óbivia” segundo Gatheral and Jacquier (2014), \(a+b \sigma\sqrt{1 − \rho^2} \geq 0\), que garante \(w(k; \chi_R) \geq 0\) para todo \(k \in \mathbb R\). Alterações nestes parâmetros têm os seguintes efeitos:

    • Aumentar \(a\) eleva o nível geral de variância, um deslocamento vertical do smile
    • Aumentar \(b\) aumenta as inclinações das asas, comprimindo o smile
    • Aumentar \(\rho\) provoca uma rotação no sentido anti-horário
    • Aumentar \(m\) desloca o smile para a direita
    • Aumentar \(\sigma\) reduz a curvatura no dinheiro (ATM) do smile
    Duas parametrizações hipotéticas para a SVI.

    Figura 1: Duas parametrizações hipotéticas para a SVI.

    A figura 1 acima apresenta duas parametrizações hipotéticas para o modelo. A variância total \(w_1\) tem como conjunto de parâmetros, \(\chi = \{0, 0.5, -0.6, 0, 0.3\}\) e poderia representar um smile de taxas de câmbio por exemplo. Enquanto que o modelo \(w_2\) conta com \(\chi = \{-0.04, 0.5, -0.9, 0, 0.4\}\) e se ajusta melhor ao mercado de equities.

    Existem outras duas parametrizações para o SVI, a natural e a jump-wings que podem ser conferidas no artigo de Gatheral and Jacquier (2014) e serão abordadas em outro artigo a ser publicado futuramente pelo CF.

    O SVI tem muitas vantagens, como o baixo tempo computacional, a variância implícita se comporta linearmente nos extremos, conforme prescrito pela fórmula do momento de Lee (2004), e boa aproximação de volatilidades implícitas para strikes muito dentro ou fora do dinheiro. O ajuste do SVI para os mercados de equities é muito melhor do que para outros mercados.

    Modelos não-paramétricos

    Se violações de arbitragem na estimativa da superfície não representam um problema de interesse particular, virtualmente qualquer método não-paramétrico pode ser aplicado a dados de volatilidade implícita. Uma escolha específica deve ser feita a partir de considerações práticas.

    Interpolação e suavização spline

    As seguintes splines2 podem ser empregadas para interpolar smiles de volatilidade:

    • Spline cúbica
    • B-spline cúbica

    No caso da spline cúbica, esta é uma função polinomial de grau 3 definida em cada subintervalo demarcados pelos pontos de controle, no caso de interpolação são todos nós. Uma spline cúbica é uma função contínua, suave e diferenciável até a segunda ordem.

    Uma B-spline3, ou basis-spline é uma função básica para funções spline de mesma ordem, o que significa que todas as funções spline possíveis podem ser construídas a partir de uma combinação linear de B-splines. Estas podem ser preferidas às splines cúbicas, devido à sua robustez a dados ruins e à capacidade de preservar a monotonicidade e a convexidade.

    Praticamente qualquer linguagem de programação e até mesmo o Excel4 possui funções pré-programadas para implementar interpolações spline, sendo um método de fácil aplicação. Entretanto, estas técnicas de interpolação não são específicas para superfícies de volatilidade e, portanto, não garantem que a superfície interpolada seja livre de oportunidades de arbitragem, mesmo que os dados apresentados o sejam.

    Algoritmos livres de arbitragem

    Considerando as limitações das interpolações com relação a presença de arbitragem na superfície gerada, vários artigos propõe algoritmos de interpolação que garantem que oportunidades de arbitragem estática não se apresentem, como em Kahalé (2004) e Wang, Yin, and Qi (2004).

    Em comum, estes algoritmos possuem como requisito que os dados a serem interpolados sejam livres de arbitragem desde o início, o que nem sempre pode ser obtido. Kahalé (2004), por exemplo, propõe um procedimento de interpolação baseado em polinômios convexos por partes que simulam a fórmula de B&S. O resultado da função de preço de calls é livre de arbitragem e, portanto, também a volatilidade implícita calculada a partir dela. Em uma segunda etapa, a variância total implícita é interpolada linearmente ao longo dos strikes.

    A abordagem de Fengler (2012) é baseada na suavização dos preços das opções por spline cúbica, e não em interpolação. Desta forma, os dados de entrada não precisam ser livres de arbitragem. Restrições especificamente adicionadas ao problema de minimização, a fim de garantir que não haja arbitragem, são impostos ao algoritmo spline. Uma possível desvantagem dessa abordagem é o fato de que a função de preço calls é aproximada por polinômios. Isso pode se mostrar desvantajoso, especialmente se extrapolação for necessária, já que a função de precificação certamente não é um polinômio. A escolha de uma grade suficientemente densa nos strikes pode minimizar este problema.

    Extrapolação do smile

    É argumentado em Benaim, Dodgson, and Kainth (2008) que que um método de extrapolação deve resultar em preços livres de arbitragem para as opções europeias (baunilha), ou seja, os preços das opções devem ser funções decrescentes (crescentes) para calls (puts), convexas com relação ao strike, e permanecer dentro de certos limites de inclinação. Além disso, o método de extrapolação deve idealmente ter as seguintes propriedades:

    1. Deve precificar corretamente todas as opções baunilha observadas
    2. A densidade da distribuição implícita e os preços das opções baunilha devem ser fáceis de calcular
    3. O método não deve gerar caudas irrealistas e, se possível, deve permitir controlá-las
    4. Deve ser robusto e flexível o suficiente para ser usado com uma ampla variedade de superfícies de volatilidade implícita
    5. Deve ser fácil e rápido inicializar para um determinado smile

    Uma das formas de extrapolação comumente utilizada é fazer a interpolação dos dados dentro da área observada, por exemplo com splines cúbicas, e então fazer a extrapolação na forma de uma linha reta, ou seja, mantendo na região de extrapolação a mesma inclinação observada no último ponto interpolado. Esta forma, segundo os autores não é adequada pois insere uma descontinuidade na densidade e também gera caudas muito curtas, de fato truncadas, a partir do ponto onde se inicia a extrapolação.

    É proposto um método de extrapolação através de fórmulas fechadas para a asa esquerda (OTM puts) e direita (OTM call) do smile. Estas fórmulas têm as propriedades desejadas para strikes extremos e mantêm a convexidade dos preços. Suponha um intervalo de preços de exercício os quais existem observações de mercado e portanto, é possível fazer interpolação: \(K_-\leq K \leq K_+\), os valores das puts, \(P(K)\), para \(K e das calls, \(C(K)\), para \(K>K_+\) são dados por:

    \[\begin{equation} P(K)=K^\mu \exp\left(a_1+b_1K+c_1K^2\right) \tag{12} \end{equation}\] \[\begin{equation} C(K)=K^{-\nu} \exp\left(a_2+\frac{b_2}{K}+\frac{c_2}{K^2}\right) \tag{13} \end{equation}\]

    onde se garante \(\lim\limits_{K\rightarrow 0} P(K)=0\) e \(\lim\limits_{K\rightarrow \infty} C(K)=0\), fazendo \(\mu > 1\) e \(\nu > 0\). Estes parâmetros também servem para controlar a massa de probabilidade sob as caudas da distribuição.

    As condições para ajustar o preço e suas duas primeiras derivadas em \(K_-\) e \(K_+\) produz um conjunto de equações lineares para os parâmetros \(a_1, b_1, c_1\) e \(a_2, b_2, c_2\), respectivamente.

    Conclusão

    Repassamos neste artigos, algumas das principais metodologias para a construção da superfície de volatilidade implícita. Modelos de volatilidade estocástica são capazes de gerar smiles compatíveis com aqueles observados nos mercados, sendo dependentes de técnicas de calibração destes modelos. O modelo paramétrico SVI pode ser adequado para mercado de equities, entretanto, assim como acontece nas técnicas de interpolação, restrições com relação aos parâmetros devem ser impostas a fim de evitar o surgimento de oportunidades de arbitragem estática. Por fim uma estratégia de como implementar a extrapolação do smile fora da região central foi apresentada.

    Referências

    Bates, David S. 1996. “Jumps and Stochastic Volatility: Exchange Rate Processes Implicit in Deutsche Mark Options.” The Review of Financial Studies 9 (1). Oxford University Press: 69–107.

    Benaim, Shalom, Matthew Dodgson, and Dherminder Kainth. 2008. “An Arbitrage-Free Method for Smile Extrapolation.” Royal Bank of Scotland, Technical Report.

    Derman, Emanuel, and Iraj Kani. 1994. “The Volatility Smile and Its Implied Tree.” Goldman Sachs Quantitative Strategies Research Notes 7 (January).

    ———. 1998. “Stochastic Implied Trees: Arbitrage Pricing with Stochastic Term and Strike Structure of Volatility.” International Journal of Theoretical and Applied Finance 01 (01): 61–110. doi:10.1142/S0219024998000059.

    Duffie, Darrell, Jun Pan, and Kenneth Singleton. 2000. “Transform Analysis and Asset Pricing for Affine Jump-Diffusions.” Econometrica 68 (6). Wiley Online Library: 1343–76.

    Dupire, Bruno. 1994. “Pricing with a Smile.” Risk 7 (1): 18–20.

    Fengler, Matthias R. 2012. “Option Data and Modeling Bsm Implied Volatility.” In Handbook of Computational Finance, 117–42. Springer.

    Gatheral, Jim. 2004. “A Parsimonious Arbitrage-Free Implied Volatility Parameterization with Application to the Valuation of Volatility Derivatives.” Presentation at Global Derivatives & Risk Management, Madrid.

    ———. 2011. The Volatility Surface: A Practitioner’s Guide. Vol. 357. John Wiley & Sons.

    Gatheral, Jim, and Antoine Jacquier. 2014. “Arbitrage-Free Svi Volatility Surfaces.” Quantitative Finance 14 (1). Taylor & Francis: 59–71.

    Hagan, Patrick S, Deep Kumar, Andrew S Lesniewski, and Diana E Woodward. 2002. “Managing Smile Risk.” The Best of Wilmott 1: 249–96.

    Heston, Steven L. 1993. “A Closed-Form Solution for Options with Stochastic Volatility with Applications to Bond and Currency Options.” The Review of Financial Studies 6 (2). Oxford University Press: 327–43.

    Kahalé, Nabil. 2004. “An Arbitrage-Free Interpolation of Volatilities.” Risk 17 (5): 102–6.

    Lee, Roger W. 2004. “The Moment Formula for Implied Volatility at Extreme Strikes.” Mathematical Finance: An International Journal of Mathematics, Statistics and Financial Economics 14 (3). Wiley Online Library: 469–80.

    Wang, Y, H Yin, and L Qi. 2004. “No-Arbitrage Interpolation of the Option Price Function and Its Reformulation.” Journal of Optimization Theory and Applications 120 (3). Springer: 627–49.

  • Processo de difusão é a solução de uma equação diferencial estocástica com propriedades de Markov. O Movimento Browniano é um exemplo.

  • Spline

  • B-Spline

  • Cubic Spline Function in VBA

    Posted by Rafael F. Bressan in Derivativos & Riscos, 0 comments