Medindo o risco

Gerenciamento Quantitativo de Risco em Python

Jamsheed Shorish

CEO, Shorish Research

A distribuição de perdas

  • Exemplo de Forex:
    • Valor da carteira em dólares: USD 100
    • Fator de risco = taxa de câmbio EUR / USD
    • Valor da carteira em EURO se 1 EUR = 1 USD: USD 100 x EUR 1 / USD 1 = EUR 100.
    • Valor da carteira em EURO se r EUR = 1 USD: = USD 100 x EUR r / 1 USD = EUR 100 x r
    • Perda = EUR 100 - EUR 100 x r = EUR 100 x (1 - r)
  • Distribuição de perdas: Realizações aleatórias de r => distribuição das perdas da carteira no futuro

Histograma de perdas em forex

Gerenciamento Quantitativo de Risco em Python

Perda máxima

  • Qual é a perda máxima de uma carteira?
  • Não é possível limitar perdas com 100% de certeza
  • Nível de confiança: troca 100% de certeza por probabilidade de um limite superior
  • Dá para perguntar: "Qual é a perda máxima que ocorreria em 95% do tempo?"
    • Aqui, o nível de confiança é 95%.
Gerenciamento Quantitativo de Risco em Python

Value at Risk (VaR)

  • VaR: estatística que mede a perda máxima da carteira em um dado nível de confiança
  • Níveis típicos: 95%, 99% e 99.5% (geralmente em decimais)
  • Exemplo de Forex: Se em 95% do tempo a taxa EUR/USD é pelo menos 0,40, então:
    • o valor da carteira é pelo menos USD 100 x 0,40 EUR / USD = EUR 40,
    • a perda da carteira é no máximo EUR 40 - EUR 100 = EUR 60,
    • portanto, o VaR de 95% é EUR 60.

Série temporal da taxa EUR/USD com corte em 0,40

Gerenciamento Quantitativo de Risco em Python

Conditional Value at Risk (CVaR)

  • CVaR: mede a perda esperada dado uma perda mínima igual ao VaR
  • Igual ao valor esperado da cauda da distribuição de perdas:
    • $$\textnormal{CVaR}(\alpha) := \frac{1}{1-\alpha}\mathbb{E} \int_{\textnormal{VaR}(\alpha)}^{\bar{x}} x f(x) dx,$$
    • $f(\cdot)$ = pdf da distribuição de perdas
    • $\bar{x}$ = limite superior da perda (pode ser infinito)
    • $\textnormal{VaR}(\alpha)$ = VaR no nível de confiança $\alpha$.
  • Exemplo de Forex:
    • CVaR 95% = perda esperada nos 5% dos casos em que o valor da carteira é menor que EUR 40

Gráfico da distribuição de perdas mostrando a dependência entre VaR e a cauda do CVaR

Gerenciamento Quantitativo de Risco em Python

Derivando o VaR

  1. Definir o nível de confiança, ex.: 95% (0,95)
  2. Criar uma Series de observações de loss
  3. Calcular loss.quantile() no nível definido
  4. VaR = .quantile() calculado no nível desejado

  5. Distribuição de perdas em scipy.stats: a percent point function .ppf() também pode ser usada

loss = pd.Series(observations)

VaR_95 = loss.quantile(0.95) print("VaR_95 = ", VaR_95)
Var_95 = 1.6192834157254088
Gerenciamento Quantitativo de Risco em Python

Derivando o CVaR

  1. Definir o nível de confiança, ex.: 95% (0,95)
  2. Criar ou usar uma amostra da distribuição de perdas
  3. Calcular o VaR no nível definido, ex.: 0,95
  4. Calcular o CVaR como perda esperada (Normal: scipy.stats.norm.expect() faz isso).
losses = pd.Series(scipy.stats.norm.rvs(size=1000))

VaR_95 = scipy.stats.norm.ppf(0.95)
CVaR_95 = (1/(1 - 0.95))*scipy.stats.norm.expect(lambda x: x, lb = VaR_95)
print("CVaR_95 = ", CVaR_95)
CVaR_95 = 2.153595332530393
Gerenciamento Quantitativo de Risco em Python

Visualizando o VaR

  • Histograma da distribuição de perdas para 1000 amostras de N(1,3)

Histograma de perdas com distribuição normal

Gerenciamento Quantitativo de Risco em Python

Visualizando o VaR

  • Histograma da distribuição de perdas para 1000 amostras de N(1,3)
    • VaR$_{95}$ = 5,72, isto é, VaR com 95% de confiança

Histograma de perdas com VaR de 95%

Gerenciamento Quantitativo de Risco em Python

Visualizando o VaR

  • Histograma da distribuição de perdas para 1000 amostras de N(1,3)
    • VaR$_{95}$ = 5,72, isto é, VaR com 95% de confiança
    • VaR$_{99}$ = 7,81, isto é, VaR com 99% de confiança

Histograma de perdas com VaR de 95% e 99%

Gerenciamento Quantitativo de Risco em Python

Visualizando o VaR

  • Histograma da distribuição de perdas para 1000 amostras de N(1,3)
    • VaR$_{95}$ = 5,72, isto é, VaR com 95% de confiança
    • VaR$_{99}$ = 7,81, isto é, VaR com 99% de confiança
    • VaR$_{99.5}$ = 8,78, isto é, VaR com 99,5% de confiança
  • A medida de VaR aumenta conforme o nível de confiança sobe

Histograma de perdas com VaR de 95%, 99% e 99,5%

Gerenciamento Quantitativo de Risco em Python

Vamos praticar!

Gerenciamento Quantitativo de Risco em Python

Preparing Video For Download...