Data telah diberikan dari classroom ITS
library(readxl)
Data_Bitcoin <- read_excel("D:/Download/Data Bitcoin.xlsx")
Data yang digunakan hanya data close saja
df = as.data.frame(Data_Bitcoin$Close)
colnames(df) = c("data")
n = nrow(df)
print(n)
## [1] 366
Untuk formula Value at Risk (VaR) menggunakan rumus yang terdapat pada powerpoint pembelajaran
return = c()
return[1] = 0
for(i in 2:n){
return[i] = (df$data[i]-df$data[i-1])/df$data[i-1] #Mencari return dengan looping
}
head(return)
## [1] 0.00000000 0.07967833 -0.04192626 0.02117182 0.01272358 -0.03834495
df$return = return
exp_return = mean(df$return)
stdev_return = sd(df$return)
t = 1:366
simulasi = rnorm(366, mean = exp_return, sd = stdev_return)
df_simulasi = data.frame(t,simulasi)
head(df_simulasi)
## t simulasi
## 1 1 0.03508577
## 2 2 0.04299333
## 3 3 0.05276768
## 4 4 0.03363293
## 5 5 0.04050536
## 6 6 -0.01255335
Selanjutnya, akan dicari nilai var untuk alpha 90% dan 95%
exp_return_bin = mean(df_simulasi$simulasi)
stdev_return_bin = sd(df_simulasi$simulasi)
z90 = qnorm(0.9) # Mencari nilai quantil 90 dan 95 dari distribusi normal
z95 = qnorm(0.95)
# Iterasi 1
var90_1 = exp_return_bin-z90*stdev_return_bin
var95_1 = exp_return_bin-z95*stdev_return_bin
Setelah perhitungan manual pada iterasi 1, berikutnya adalah perhitungan otomatis dengan looping untuk iterasi 2 - 1000 sebagai berikut
# Menyimpan hasil
# Simulasi awal (iterasi ke-1) yang sudah kamu hitung sebelumnya
simulasi_1 <- simulasi
exp_return_1 <- exp_return_bin
stdev_return_1 <- stdev_return_bin
var90_1 <- var90_1
var95_1 <- var95_1
# Inisialisasi vektor dengan iterasi pertama
exp_returns <- c(exp_return_1)
stdev_returns <- c(stdev_return_1)
var90_list <- c(var90_1)
var95_list <- c(var95_1)
# Iterasi ke-2 sampai ke-1000
for (i in 2:1000) {
simulasi_i <- rnorm(366, mean = exp_return, sd = stdev_return)
exp_return_bin <- mean(simulasi_i)
stdev_return_bin <- sd(simulasi_i)
var90 <- exp_return_bin - z90 * stdev_return_bin
var95 <- exp_return_bin - z95 * stdev_return_bin
# Tambahkan hasil ke vektor
exp_returns[i] <- exp_return_bin
stdev_returns[i] <- stdev_return_bin
var90_list[i] <- var90
var95_list[i] <- var95
}
dan didapatkan hasil sebagai berikut
# Buat data frame hasil
hasil_simulasi <- data.frame(
Iterasi = 1:1000,
Expected_Return = exp_returns,
Std_Dev = stdev_returns,
VaR_90 = var90_list,
VaR_95 = var95_list
)
head(hasil_simulasi)
## Iterasi Expected_Return Std_Dev VaR_90 VaR_95
## 1 1 0.004652026 0.04351408 -0.05111351 -0.06692227
## 2 2 0.005851814 0.04454134 -0.05123021 -0.06741217
## 3 3 0.002252453 0.04167800 -0.05116005 -0.06630176
## 4 4 0.004265719 0.04402296 -0.05215198 -0.06814561
## 5 5 0.004862522 0.04170777 -0.04858814 -0.06374066
## 6 6 0.003734490 0.04067687 -0.04839501 -0.06317300
hasil_akhir_Var90 = mean(hasil_simulasi$VaR_90)
hasil_akhir_Var90
## [1] -0.05013697
hasil_akhir_Var95 = mean(hasil_simulasi$VaR_95)
hasil_akhir_Var95
## [1] -0.06548373