## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")

## -----------------------------------------------------------------------------
library(finlabR)

## -----------------------------------------------------------------------------
prices <- get_example_prices()
rets <- calc_returns(prices[, -1], method = "log")

## -----------------------------------------------------------------------------
cor_mat <- asset_correlation(rets)
cor_mat[1:3, 1:3]

## -----------------------------------------------------------------------------
ef <- mvo_efficient_frontier(rets, n = 25, rf = 0.02)
max_sharpe <- mvo_max_sharpe(rets, rf = 0.02)
min_var <- mvo_min_variance(rets)

## -----------------------------------------------------------------------------
cvar <- cvar_minimize(rets, alpha = 0.95)
rp <- risk_parity_weights(stats::cov(rets))

## -----------------------------------------------------------------------------
regimes <- market_regime_kmeans(rets, k = 3, window = 60)
clusters <- asset_clustering(rets, method = "kmeans", reduce = "pca", k = 3)

## -----------------------------------------------------------------------------
var_cvar(rets, alpha = 0.95)

## -----------------------------------------------------------------------------
paths <- simulate_gbm_paths(100, 0.08, 0.2, time_horizon = 1, n_steps = 252, n_sims = 500)
price_option_mc(100, 100, 0.02, 0.2, time_to_maturity = 1, n_sims = 10000)
price_option_binomial(100, 100, 0.02, 0.2, time_to_maturity = 1, n_steps = 200, american = TRUE)

