Measuring Volatility in Asset Returns
123456789101112# Create synthetic daily returns set.seed(123) daily_returns <- rnorm(252, mean = 0.0005, sd = 0.01) # Calculate the standard deviation of daily returns daily_volatility <- sd(daily_returns) # Annualize the volatility (assuming 252 trading days per year) annualized_volatility <- daily_volatility * sqrt(252) # Print the annualized volatility print(annualized_volatility)
123456789101112131415161718192021222324# To analyze how risk changes over time, calculate rolling volatility # Load the zoo package for rollapply library(zoo) # Calculate 21-day (approximately 1 month) rolling volatility rolling_volatility <- rollapply( daily_returns, width = 21, FUN = sd, fill = NA, align = "right" ) # Annualize the rolling volatility rolling_annualized_volatility <- rolling_volatility * sqrt(252) # Plot the rolling annualized volatility plot( rolling_annualized_volatility, type = "l", main = "21-Day Rolling Annualized Volatility", xlab = "Time", ylab = "Annualized Volatility" )
Tout était clair ?
Merci pour vos commentaires !
Section 2. Chapitre 1
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Suggested prompts:
Can you explain why we use 252 trading days for annualization?
How does rolling volatility help in risk management?
What other window sizes can be used for rolling volatility analysis?
Génial!
Completion taux amélioré à 10
Measuring Volatility in Asset Returns
Glissez pour afficher le menu
123456789101112# Create synthetic daily returns set.seed(123) daily_returns <- rnorm(252, mean = 0.0005, sd = 0.01) # Calculate the standard deviation of daily returns daily_volatility <- sd(daily_returns) # Annualize the volatility (assuming 252 trading days per year) annualized_volatility <- daily_volatility * sqrt(252) # Print the annualized volatility print(annualized_volatility)
123456789101112131415161718192021222324# To analyze how risk changes over time, calculate rolling volatility # Load the zoo package for rollapply library(zoo) # Calculate 21-day (approximately 1 month) rolling volatility rolling_volatility <- rollapply( daily_returns, width = 21, FUN = sd, fill = NA, align = "right" ) # Annualize the rolling volatility rolling_annualized_volatility <- rolling_volatility * sqrt(252) # Plot the rolling annualized volatility plot( rolling_annualized_volatility, type = "l", main = "21-Day Rolling Annualized Volatility", xlab = "Time", ylab = "Annualized Volatility" )
Tout était clair ?
Merci pour vos commentaires !
Section 2. Chapitre 1