VaR ve CVaR ile risk yönetimi

Python ile Nicel Risk Yönetimi

Jamsheed Shorish

Computational Economist

Modern portföy teorisiyle risk yönetimi

  • Etkin Portföy
    • Belirli riskte getiriyi maksimize eden ağırlıklar
  • Etkin Sınır: farklı etkin portföylerin ürettiği (risk, getiri) noktalarının kümesi
    • Her nokta = portföy ağırlık optimizasyonu
  • Etkin portföy/sınır oluşturma: Modern Portföy Teorisi

Etkin sınır grafiği

Python ile Nicel Risk Yönetimi

MPT'ye Riske Maruz Değerin dahil edilmesi

  • Modern Portföy Teorisi (MPT): "ortalama-varyans" optimizasyonu
    • En yüksek beklenen getiri
    • Risk düzeyi (volatilite) verilidir
    • Amaç fonksiyonu: beklenen getiri
  • VaR/CVaR: kayıp dağılımı üzerinden riski ölçer
  • MPT'yi, beklenen getiri yerine kayıp dağılımı üzerinde optimize edecek şekilde uyarlayın
Python ile Nicel Risk Yönetimi

Yeni amaç: CVaR'ı minimize etmek

  • Portföy optimizasyonunun amacını değiştirin
    • Ortalama-varyans amacı: beklenen ortalama getiriyi maksimize et
    • CVaR amacı: verilen güven düzeyinde koşullu beklenen kaybı minimize et
  • Örnek: Kayıp dağılımı
    • VaR: %95 güvenle en yüksek kayıp
    • Optimizasyon: CVaR'ı minimize eden portföy ağırlıkları
    • CVaR: en az VaR kadar kayıp olduğunda beklenen kayıp (en kötü %5)
  • En kötü %100 - %95 = %5 sonuçta en düşük beklenen kaybı bulun
Python ile Nicel Risk Yönetimi

Risk yönetimi problemi

  • Optimal portföy ağırlıkları $w^\star$ şu problemin çözümüdür

cvar_minimization

  • Not: $f(x)$ = portföy kaybının olasılık yoğunluk fonksiyonu

  • PyPortfolioOpt: yeni amaç olarak CVaR minimizasyonunu seçin

Python ile Nicel Risk Yönetimi

PyPortfolioOpt ile CVaR minimizasyonu

  • Varlık getirileri returns{{1}} ile bir EfficientCVaR nesnesi oluşturun
  • .min_cvar() yöntemiyle optimal portföy ağırlıklarını hesaplayın

 

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

optimal_weights = ec.min_cvar()
Python ile Nicel Risk Yönetimi

Ortalama-varyans ve CVaR risk yönetimi

  • Ortalama-varyans: minimum volatilite portföyü, 2005-2010 yatırım bankası varlıkları
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}
Python ile Nicel Risk Yönetimi

Ortalama-varyans ve CVaR risk yönetimi

  • CVaR'ı minimize eden portföy, 2005-2010 yatırım bankası varlıkları
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}
Python ile Nicel Risk Yönetimi

Haydi pratik yapalım!

Python ile Nicel Risk Yönetimi

Preparing Video For Download...