In this post, I would like to share some basic information about the uses of R as a tool for Financial analysis. In the first part, I will introduce how plot prices of NASDAQ Composite (08-05-2015 to 08-04-2017) and then I will show how to calculate its daily returns. Finally, I will present a brief analysis of returns distribution.
NASDAQ composite Prices
In the chart, it is shown adjusted close prices for NASDAQ.
There is a clear uptrend in NASDAQ prices. In fact, there are a few all-time highs. However, there are a few drawdowns that can be stressful for passive investors to keep a long position of the index.
# Stock Prices line plot ------ plot(NASDAQ$Adj.Close, type = "l", main = "NASDAQ Adj.Price", col = "red", xlab = "Days", ylab = "NASDAQ")
Daily returns of NASDAQ composite
In the chart, we can see the daily returns for the 2 years. There are such extreme values, in special on the first year of analysis. The second year is visibly less volatile on daily basis compared with the first year.
# Data Loading ------------- NASDAQ <- read.csv(file = "NDAQ.csv", header = TRUE) # Daily Returns ------------- NASDAQ$DailyReturn <- c(0,diff(log(NASDAQ$Adj.Close),lag=1)) plot (NASDAQ$DailyReturn, type = "h", main = "Daily Return", col = "blue", xlab = "Days", ylab = " Daily Returns") abline(h = 0, col = "black", lwd = 2)
Daily return values – Histogram
NASDAQ daily returns are not distributed normally. For reaching this conclusion, I performed a Shapiro-Wilk normally test on R. The Null hypothesis states that “the samples come from a Normal Distribution” and the alternative hypothesis “the samples do not come from a Normal Distribution”. The p-value is 6.778e-10 which is less than 0.05, thus, I reject the null hypothesis.
Moreover, even when Median and Mean are similar, skewness is 0.597, indicating a positive skewness. On the other hand, daily returns have a positive kurtosis which is clearly identified with a visible fat-tailed distribution. That is why is to be said that is right-skewness and leptokurtic.
Based on measures of central tendency, there are risks of being long since a drawback larger than associated with normal distribution probability is expected. This makes the risk estimation difficult and, in some cases, unrealistic. However, greater rewards can be expected since there is a right-skewness that makes more plausible positive returns in the future.
# Histogram Daily returns ----- hist(NASDAQ$DailyReturn,breaks=50,prob=T,col="yellow") # Mean, Std, median ------ mu <- mean(NASDAQ$DailyReturn) sigma <- sd(NASDAQ$DailyReturn) med <- median(NASDAQ$DailyReturn) # Histogram with central measures plot ----- abline(v = mu, col = "royalblue", lwd = 2) abline(v = med, col = "red", lwd = 2) abline(v = mu+sigma, col = "blue", lwd = 2, lty = 2) abline(v = mu-sigma, col = "blue", lwd = 2, lty = 2) abline(v = mu+2*sigma, col = "red", lwd = 2, lty = 2) abline(v = mu-2*sigma, col = "red", lwd = 2, lty = 2) legend(x = "topright", # location of legend within plot area c("Mean", "Median","mu±sigma","mu±2*sigma"), col = c("royalblue", "red","blue","red"), lwd = c(2, 2,2,2), lty = c(1, 1,2,2)) # Normal Distribution Test install.packages("moments") shapiro.test(NASDAQ$DailyReturn) library(moments) skewness(NASDAQ$DailyReturn) kurtosis(NASDAQ$DailyReturn)
Find the data at the following link: NDAQ.xlsx