Gestionarea riscului cu VaR și CVaR

Managementul Cantitativ al Riscului în Python

Jamsheed Shorish

Computational Economist

Gestionarea riscului prin teoria modernă a portofoliului

  • Portofoliu eficient
    • Ponderile maximizează randamentul la un nivel de risc dat
  • Frontiera eficientă: locul geometric al punctelor (risc, randament) generate de portofolii eficiente
    • Fiecare punct = optimizarea ponderilor portofoliului
  • Construcția portofoliului/frontierei eficiente: Teoria Modernă a Portofoliului

Graficul frontierei eficiente

Managementul Cantitativ al Riscului în Python

Integrarea VaR în MPT

  • Teoria Modernă a Portofoliului (MPT): optimizare „medie-varianță"
    • Randament așteptat maxim
    • Nivelul de risc (volatilitate) este dat
    • Funcție obiectiv: randamentul așteptat
  • VaR/CVaR: măsoară riscul pe distribuția pierderilor
  • Adaptarea MPT pentru optimizarea față de distribuția pierderilor vs. randament așteptat
Managementul Cantitativ al Riscului în Python

Un nou obiectiv: minimizarea CVaR

  • Modificarea obiectivului optimizării portofoliului
    • Obiectiv medie-varianță: maximizarea randamentului mediu așteptat
    • Obiectiv CVaR: minimizarea pierderii condiționate așteptate la un nivel de încredere dat
  • Exemplu: Distribuția pierderilor
    • VaR: pierderea maximă cu 95% încredere
    • Optimizare: ponderi care minimizează CVaR
    • CVaR: pierderea așteptată când pierderea este cel puțin VaR (cele mai proaste 5% cazuri)
  • Găsiți cea mai mică pierdere așteptată în 100% - 95% = 5% dintre rezultatele posibile
Managementul Cantitativ al Riscului în Python

Problema gestionării riscului

  • Selectați ponderile optime $w^\star$ ca soluție a

minimizarea_cvar

  • Reamintire: $f(x)$ = funcția densității de probabilitate a pierderii portofoliului

  • PyPortfolioOpt: selectați minimizarea CVaR ca nou obiectiv

Managementul Cantitativ al Riscului în Python

Minimizarea CVaR cu PyPortfolioOpt

  • Creați un obiect EfficientCVaR cu randamentele returns
  • Calculați ponderile optime cu metoda .min_cvar()

 

ec = pypfopt.efficient_frontier.EfficientCVaR(None, returns)

optimal_weights = ec.min_cvar()
Managementul Cantitativ al Riscului în Python

Medie-varianță vs. gestionarea riscului CVaR

  • Portofoliu cu volatilitate minimă (medie-varianță), active bancare 2005-2010
ef = EfficientFrontier(None, e_cov)

min_vol_weights = ef.min_volatility()
print(min_vol_weights)
{'Citibank': 0.0,
 'Morgan Stanley': 5.0784330940519306e-18,
 'Goldman Sachs': 0.6280157234640608,
 'J.P. Morgan': 0.3719842765359393}
Managementul Cantitativ al Riscului în Python

Medie-varianță vs. gestionarea riscului CVaR

  • Portofoliu cu CVaR minim, active bancare 2005-2010
ec = pypfopt.efficient_frontier.EfficientCVaR(None, returns)
min_cvar_weights = ec.min_cvar()

print(min_cvar_weights)

 

{'Citibank': 0.0,
 'Morgan Stanley': 0.0,
 'Goldman Sachs': 0.669324359403484,
 'J.P. Morgan': 0.3306756405965026}
Managementul Cantitativ al Riscului în Python

Să exersăm!

Managementul Cantitativ al Riscului în Python

Preparing Video For Download...