Gestão de fatores de risco de NTN-B (com planilha!)
Para a gestão de papeis de renda fixa, um ponto importante é a quebra dos fatores de risco individuais para cada um dos papeis que compõe o título. Esse trabalho costuma ser mais árduo para títulos que possuam remuneração híbrida, ou seja, uma parte atrelada à algum fator específico e, outra, prefixada.
Para títulos como a NTN-B, existe muita confusão sobre a maneira pela qual os fatores de risco devem ser olhados, alguns investidores tendem a acreditar que comprar a B, de maneira pura e simples, é ficar comprado em inflação e, independentemente dos outros fatores de mercado, se a inflação subir, a B vai dar dinheiro, o que não é correto na realidade.
Ao analisarmos de forma mais completa a precificação desse bond podemos concluir que a fórmula é bem simples e foi generalizada neste artigo, para este post em questão, resgatarei somente o resultado da generalização de uma fórmula de precificação de um bond, como foi apresentado em (1) na referência.
Para o caso da NTN-B, sabemos que C_f = 2 (dois cupons por ano), FACE = 1 e VNA = VNA Pro rata para cada um dos bonds NTN-B analisados.
Para uma NTN-B pode-se analisar, equivalentemente, o seu preço em termos de YTM e de taxa de juros nominal descapitalizada pela taxa de inflação implícita calculada com os dados de mercado, que, por construção, devem ser iguais:
Para cada um dos fluxos, pode-se derivar a exposição do fluxo aos fatores de risco específicos da NTN-B, que, de modo consolidado são 6:
- 1) VNA: aqui trata-se do VNA Pro Rata calculado para (t) com base na projeção de inflação da ANBIMA para o mês
- 2) Taxa de juros real (YTM): taxa de juros real negociada no mercado de títulos públicos
- a. Taxa de juros prefixada: taxa de juros Pré-DI do mercado para o vencimento
- b. Inflação implícita: inflação implícita calculada usando a taxa de juros real e a Pré-DI do vencimento
- 3) Dias úteis: essencialmente o theta do bond, é o quanto o bond vai ganhar por cada dia de carrego, com todos os outros parâmetros flat
- a. Neste carrego de theta deve-se incluir um fator de risco final: o cary implícito na projeção ANBIMA do IPCA para cálculo do VNA Pro Rata
Derivadas parciais
Para cada um dos fluxos, portanto, calculam-se as derivadas parciais que irão demonstrar a exposição do fluxo aos movimentos marginais de 1 até 3. Para o intuito de demonstração deste artigo apenas apresentarei as derivadas já calculadas:
Resgatarei aqui alguns conceitos relativos ao risco presentes no artigo supracitado,
E, adicionando ao repertório, defino agora o que são 2 variáveis generalistas que serão utilizadas para as derivadas:
Essencialmente, (5) corresponde ao quanto se deve multiplicar o VNA para que se obtenha, em valor financeiro corrente, o quanto que vale um fluxo de juros da NTN-B. Já (6), é o resultado da conta descrita logo acima.
As derivadas parciais, portanto, são calculadas analiticamente:
Ao se analisar as derivadas, a análise de sinais mostra que, apenas na parcial de taxa de juros nominal e de passagem do tempo, os sinais são negativos. Entretanto, cabe aqui um adendo para o tempo, pois a métrica de passagem é inversa ao proposto na derivada, visto que a cada dia que se passa, menos um dia útil vale até o vencimento do bond.
Ajustes das parciais
Para que as parciais sejam utilizadas em mesma escala, alguns ajustes serão necessários. Neste post, utilizarei o padrão de impacto de R$/bp para todas as métricas, exceto o theta (passagem de du), que utilizarei a unidade de um dia útil de shift, pois é o mais comum de padronização geral dos ativos:
Aqui, já ajusto o valor da passagem do tempo para que um dia a menos seja registrado como um resultado positivo (apenas invertendo o sinal da derivada inicial por facilidade na visualização).
Desta forma, caso o gestor deseje saber o quanto que um bp (basis-point) de variação na taxa de inflação implícita irá gerar de impacto no seu portfólio, o gestor deverá multiplicar 1 * d P(t,T)/d r(t,T)_imp.
Planilha
Na planilha, registrei todas as NTN-B disponíveis atualmente no mercado, com todos os seus fluxos de juros quebrados. Para esta planilha, as abas de “Pre_DI” e “TxInd_Anbima” devem ser atualizadas com as taxas de ajuste que correspondem ao proposto na célula “val_date” na aba “Dashboard”. Os valores atualizados na planilha correspondem à data de 26/09/2022.
Simulando uma carteira aleatória, pode-se ver como cada um dos fatores de risco contribui para o risco total da carteira:
Desta forma, com a passagem de um dia, a carteira ganharia 1,4 milhão de reais, entretanto, visto que existe o carrego de 1 dia no VNA Pro Rata entre hoje e o dia seguinte, deve-se acrescer da derivada parcial este valor (inclusive, mostro “Carry implícito Pro Rata” vs “Impacto VNA (via derivada)” para mostrar a precisão). Desta forma, ganharia-se 52 mil reais, dada a projeção de -0,12% para o IPCA mensal da ANBIMA.
Essa carteira, com 520 milhões de reais de valor a mercado, possui às seguintes exposições à cada curva de juros, por basis-point:
Aplicada em 364 mil reais na curva de juros real:
— Aplicada em 344 mil reais na curva de juros prefixada
— Tomada em 363 mil reais na curva de inflação implícita
Simulações
Modificações necessárias na planilha: Range “curve_type” = “Simulada”
Aqui proponho simular curvas de juros da seguinte maneira:
- Float Pré: interpolam-se as taxas de juros real e a inflação implícita, somando-se os cenários propostos para estas duas curvas, na aba simulador
- Float Real: interpolam-se as taxas de juro pré e inflação implícita, somando-se os cenários propostos para estas duas curvas, na aba simulador
- Float Implícita: interpolam-se as taxas de juro pré e real, somando-se os cenários propostos para estas duas curvas, na aba simulador
Estes cenários permitem que com alterações em uma curva específica, as outras duas sejam automaticamente recalculadas. Nesta aba é possível inserir cenários para cada um dos vértices que possui cupom de juros de alguma NTN-B do mercado brasileiro.
Cenário 1: Com a carteira supracitada, simula-se um fechamento de 15 bps da curva de juros prefixada, com Float Real ligado, de modo que:
Visto que o cenário proposto é de Float Real, a taxa de juros real se movimenta com o choque presenciado na ETTJ Pré.
O choque previsto para este cenário era de:
Choque Estimado: P&L = -15 * -335.617 (DV01 Pré) = +5.034.261,66
Choque Realizado: P&L = +5.093.014,25
Um erro absoluto de 1,15% na estimativa para um movimento de 15bps
Cenário 2: Caso seja adicionado um cenário para a implícita, de alta de 30bps, o seguinte ocorrerá:
Choque Estimado: P&L = -15 * -335.617 (DV01 Pré) + 30 * 355.405 = +15.696.417,82
Choque Realizado: P&L = +16.233.133,00
Um erro absoluto de 3,31% na estimativa para um movimento absoluto de 45bps em 2 curvas de juros diferentes!
Apesar de ter um erro que não é tão próximo de 0, um erro de 3,3% para um movimento tão relevante desse é aceitável. As derivadas parciais de grau possuem objetivo de facilitar a vida de um gestor, de ter uma noção em números mais simplificados do quanto que existe de exposição à cada um dos fatores, para, durante o dia, ver o quanto sua carteira pode sofrer ou ir bem de acordo com o que ocorre.
Além disso, foquei aqui apenas no simulado com derivadas, mas ao simular um cenário, a carteira irá ser recalculada, de modo que o Cenário 2 irá gerar o seguinte dashboard:
Ou seja, o full repricing da carteira é feito simultaneamente às alterações nas curvas de juros, permitindo visualização do valor correto para o cenário dado.
Referências bibliográficas
[Neto et. al. (2019)] José Monteiro Varanda Neto, de Souza Santos, José Carlos, Mello, e Eduardo Morato. O mercado de renda fixa no Brasil: conceitos, precificação e risco. Saint Paul, 2019
[Santos e Silva (2017)] José Santos e Marcos Silva. Derivativos e renda fixa: Teoria e aplicações ao mercado brasileiro, volume 1. Atlas, São Paulo, 2017.