Riski Ölçmek

Python ile Nicel Risk Yönetimi

Jamsheed Shorish

CEO, Shorish Research

Kayıp Dağılımı

  • Döviz Örneği:
    • Portföy değeri ABD doları cinsinden USD 100
    • Risk faktörü = EUR / USD döviz kuru
    • 1 EUR = 1 USD ise portföyün EURO değeri: USD 100 x EUR 1 / USD 1 = EUR 100.
    • r EUR = 1 USD ise EURO değer: USD 100 x EUR r / 1 USD = EUR 100 x r
    • Kayıp = EUR 100 - EUR 100 x r = EUR 100 x (1 - r)
  • Kayıp dağılımı: r’nin rastgele gerçekleşmeleri => gelecekteki portföy kayıplarının dağılımı

Döviz kayıplarının histogramı

Python ile Nicel Risk Yönetimi

Azami Kayıp

  • Bir portföyün azami kaybı nedir?
  • Kayıplar %100 kesinlikle sınırlandırılamaz
  • Güven Düzeyi: %100 kesinlik yerine üst sınırın olasılığı
  • “Kayıp %95 olasılıkla en çok ne olur?” gibi sorular sorulabilir
    • Burada güven düzeyi %95’tir.
Python ile Nicel Risk Yönetimi

Riske Maruz Değer (VaR)

  • VaR: belirli bir güven düzeyinde azami portföy kaybını ölçen istatistik
  • Tipik güven düzeyleri: %95, %99 ve %99,5 (genelde ondalıkla gösterilir)
  • Döviz Örneği: EUR/USD kuru zamanın %95’inde en az 0,40 ise:
    • portföy değeri en az USD 100 x 0,40 EUR / USD = EUR 40 olur,
    • portföy kaybı en çok EUR 40 - EUR 100 = EUR 60 olur,
    • dolayısıyla %95 VaR EUR 60’tır.

0,40 eşiği ile EUR/USD kurunun zaman serisi

Python ile Nicel Risk Yönetimi

Koşullu Riske Maruz Değer (CVaR)

  • CVaR: kaybın en az VaR olduğu durumda beklenen kaybı ölçer
  • Kayıp dağılımının kuyruğunun beklenen değerine eşittir:
    • $$\textnormal{CVaR}(\alpha) := \frac{1}{1-\alpha}\mathbb{E} \int_{\textnormal{VaR}(\alpha)}^{\bar{x}} x f(x) dx,$$
    • $f(\cdot)$ = kayıp dağılımının pdf’si
    • $\bar{x}$ = kaybın üst sınırı (sonsuz olabilir)
    • $\textnormal{VaR}(\alpha)$ = $\alpha$ güven düzeyindeki VaR.
  • Döviz Örneği:
    • %95 CVaR = portföy değeri EUR 40’tan küçük olduğunda gerçekleşen son %5 için beklenen kayıp

Kayıp dağılımı, VaR ve CVaR kuyruk bağımlılığı grafiği

Python ile Nicel Risk Yönetimi

VaR’ı Türetmek

  1. Güven düzeyini belirtin, ör. %95 (0,95)
  2. loss gözlemlerinden Series oluşturun
  3. Belirtilen güven düzeyinde loss.quantile() hesaplayın
  4. VaR = istenen güven düzeyindeki .quantile() sonucu

  5. scipy.stats kayıp dağılımı: yüzde noktası fonksiyonu .ppf() da kullanılabilir

loss = pd.Series(observations)

VaR_95 = loss.quantile(0.95) print("VaR_95 = ", VaR_95)
Var_95 = 1.6192834157254088
Python ile Nicel Risk Yönetimi

CVaR’ı Türetmek

  1. Güven düzeyini belirtin, ör. %95 (0,95)
  2. Kayıp dağılımından örneklem oluşturun veya kullanın
  3. Belirtilen güven düzeyinde VaR hesaplayın, ör. 0,95.
  4. CVaR’ı beklenen kayıp olarak hesaplayın (Normal dağılım: scipy.stats.norm.expect() bunu yapar).
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
Python ile Nicel Risk Yönetimi

VaR’ı Görselleştirme

  • N(1,3) dağılımından 1000 çekiliş için kayıp dağılımı histogramı

Normal dağılımlı kayıpların histogramı

Python ile Nicel Risk Yönetimi

VaR’ı Görselleştirme

  • N(1,3) dağılımından 1000 çekiliş için kayıp dağılımı histogramı
    • VaR$_{95}$ = 5,72, yani %95 güven düzeyindeki VaR

%95 VaR ile kayıpların histogramı

Python ile Nicel Risk Yönetimi

VaR’ı Görselleştirme

  • N(1,3) dağılımından 1000 çekiliş için kayıp dağılımı histogramı
    • VaR$_{95}$ = 5,72, yani %95 güven düzeyindeki VaR
    • VaR$_{99}$ = 7,81, yani %99 güven düzeyindeki VaR

%95 ve %99 VaR ile kayıpların histogramı

Python ile Nicel Risk Yönetimi

VaR’ı Görselleştirme

  • N(1,3) dağılımından 1000 çekiliş için kayıp dağılımı histogramı
    • VaR$_{95}$ = 5,72, yani %95 güven düzeyindeki VaR
    • VaR$_{99}$ = 7,81, yani %99 güven düzeyindeki VaR
    • VaR$_{99.5}$ = 8,78, yani %99,5 güven düzeyindeki VaR
  • Güven düzeyi arttıkça VaR ölçütü artar

%95, %99 ve %99,5 VaR ile kayıpların histogramı

Python ile Nicel Risk Yönetimi

Ayo berlatih!

Python ile Nicel Risk Yönetimi

Preparing Video For Download...