Code and Analysis
2. Sharpe Ratio Calculation
excess_returns <- portfolio_returns - risk_free_rate
sharpe_ratio <- mean(excess_returns) / sd(portfolio_returns)
print(paste("Sharpe Ratio:", sharpe_ratio))
## [1] "Sharpe Ratio: 0.142165951220396"
3. Downside Deviation and Sortino Ratio
downside_mean <- pmin(portfolio_returns - mean(portfolio_returns), 0)
downside_mean[downside_mean != 0]
## [1] -0.03428182 -0.02258182 -0.02508182 -0.02298182
sqrt(sum((downside_mean[downside_mean != 0])^2) / 4)
## [1] 0.02665728
sortino_ratio <- mean(portfolio_returns - risk_free_rate) / sqrt(sum((downside_mean[downside_mean != 0])^2) / 4)
print(paste("Sortino Ratio:", sortino_ratio))
## [1] "Sortino Ratio: 0.12552734906913"
4. Beta and Expected Return
beta <- cov(portfolio_returns, market_returns) / var(market_returns)
print(paste("Beta:", beta))
## [1] "Beta: 0.715786740180968"
mean_market_return <- mean(market_returns)
expected_return <- risk_free_rate + beta * (mean_market_return - risk_free_rate)
print(paste("Expected Return:", expected_return))
## [1] "Expected Return: 0.00551995417375565"
5. Jensen’s Alpha
mean_portfolio_return <- mean(portfolio_returns)
jensens_alpha <- mean_portfolio_return - expected_return
print(paste("Jensen's Alpha:", jensens_alpha))
## [1] "Jensen's Alpha: -0.00193813599193747"
6. Treynor Measure
treynor_measure <- (mean_portfolio_return - risk_free_rate) / beta
print(paste("Treynor Measure:", treynor_measure))
## [1] "Treynor Measure: 0.00467488148910411"