Simulasi Monte Carlo VaR 90 dan VaR 95 pada return Bitcoin
df <- readxl::read_excel("C:/Users/Acer/OneDrive - Institut Teknologi Sepuluh Nopember/Semester 6/Simulasi Aktuaria/Pertemuan 12 - 05.19/Data Bitcoin.xlsx")
head(df)
## # A tibble: 6 × 5
## Date Open High Low Close
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 2020-11-29 17720. 18284. 17559. 18177.
## 2 2020-11-30 18178. 19749. 18178. 19626.
## 3 2020-12-01 19634. 19846. 18322. 18803.
## 4 2020-12-02 18802. 19308. 18348. 19201.
## 5 2020-12-03 19206. 19566. 18926. 19445.
## 6 2020-12-04 19447. 19511. 18697. 18700.
## # A tibble: 6 × 6
## Date Open High Low Close Return
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2020-11-29 17720. 18284. 17559. 18177. NA
## 2 2020-11-30 18178. 19749. 18178. 19626. 0.0797
## 3 2020-12-01 19634. 19846. 18322. 18803. -0.0419
## 4 2020-12-02 18802. 19308. 18348. 19201. 0.0212
## 5 2020-12-03 19206. 19566. 18926. 19445. 0.0127
## 6 2020-12-04 19447. 19511. 18697. 18700. -0.0383
expected_return <- mean(df$Return, na.rm = T)
std_return <- sd(df$Return, na.rm = T)
expected_return
## [1] 0.004034396
std_return
## [1] 0.04229799
Z_90 <- qnorm(0.9)
Z_95 <- qnorm(0.95)
monte_var90 <- c()
monte_var95 <- c()
for(i in 1:1000){
R_Star <- rnorm(365, expected_return, std_return)
VAR_90 <- mean(R_Star) - sd(R_Star) * Z_90
VAR_95 <- mean(R_Star) - sd(R_Star) * Z_95
monte_var90[i] <- mean(VAR_90)
monte_var95[i] <- mean(VAR_95)
}
montecarlo <- data.frame(monte_var90, monte_var95)
colMeans(montecarlo)
## monte_var90 monte_var95
## -0.05022426 -0.06560209