Menghitung Risiko Portfolio

[latexpage]

Pada modul ini kita akan menggunakan saham BBRI dan ADRO, untuk memberikan gambaran perhitungan dengan dua sektor yang berbeda.

Untuk menghitung variance dari portfolio yang berisi dua saham, formulanya seperti berikut

$(w_1\sigma_1 + w_2\sigma_2)^2 = {w_1}^2{\sigma_1}^2 + 2w_1\sigma_1w_2\sigma_2\rho_{12} + {w_2}^2{\sigma_2}^2$

$\sigma : standard deviation$
$\rho : covariance$
$w_1 + w_2 = 1$

Kita akan gunakan fungsi dot dari numpy untuk mempermudah perhitungan. Dengan weight masing-masing saham adalah 0.5.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas_datareader import data as wb

tickers = ['ADRO.JK', 'BBRI.JK']

saham_ret = pd.DataFrame()
for t in tickers:
    saham_ret[t] = wb.DataReader(t, data_source='yahoo', start='2015-1-1')['Adj Close']

saham_ret = np.log(saham_ret / saham_ret.shift(1))

weights = np.array([0.5, 0.5])

portfolio_var = np.dot(weights.T, np.dot(saham_ret.cov() * 250, weights))
portfolio_vol = (np.dot(weights.T, np.dot(saham_ret.cov() * 250, weights))) ** 0.5

print(portfolio_var)
print(str(round(portfolio_vol, 5) * 100) + '%')
0.11486469493747696
33.892%

Python memiliki banyak library yang mempermudah kita melakukan perhitungan matematis. Sekarang, bagaimana kita menginterpretasikan hasil perhitungan tersebut.

Risiko dapat dibagi dua, yaitu:

  • Un-Diversifiable Risk, sering disebut systematic risk. Risiko yang mempengaruhi market, bukan hanya saham tertentu. Tidak dapat dihindari melalui diversifikasi.
  • Diversifiable Risk, sering disebut idiosyncratic risk. Risiko yang spesifik pada saham individu.

Masih melanjutkan dari program diatas, kita hitung Diversifiable risk dan Un-diversifiable risk menggunakan Python.

Diversifiable Risk

ADRO_var_a = saham_ret['ADRO.JK'].var() * 250
BBRI_var_a = saham_ret['BBRI.JK'].var() * 250
dr = portfolio_var - (weights[0] ** 2 * ADRO_var_a) - (weights[1] ** 2 * BBRI_var_a)

print(ADRO_var_a)
print(BBRI_var_a)
print(str(round(dr*100, 5)) + '%')
0.23310405360609474
0.11846862565731411
2.69715%

Un-Diversifiable Risk

n_dr1 = portfolio_var - dr
n_dr1
0.08789316981585221
n_dr2 = (weights[0] ** 2 * ADRO_var_a) + (weights[1] ** 2 * BBRI_var_a)
n_dr2
0.08789316981585221
Sharing is caring:

Leave a Comment