Plotting Cumulative FII & DII Inflow against Nifty spot index
[This article was first published on My Paper Trades, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Now that I have the FII and DII Inflow along with Nifty Index, I tried my hands on charting!
The objective is to plot the Cumulative FII, DII and Net Inflow and Nifty Index for current year (2011) on a single graph. This post takes inspiration from Deepak Shenoy’s post, wherein he has plotted some nice graphs.
The approach is to read the file created earlier for FII & DII Stats, convert the object as zoo (package used is quantmod), filter the data to contain only current years figure values, and then calculate cumulative sum using cumsum() fuction.
The extra effort done here is the use of right axis to display Nifty Index values using axis() function.
The graph contains 4 lines on the same plot, with the legends. If you observe, there is a high co-relation between Nifty spot and Net FII inflow. 68% is what the following line tell. Does this mean our markets trends are dictated by FIIs?
cor(as.numeric(z$Close),as.numeric(z$cumFIINetValue))
Cumulative Institutional inflow in 2011 |
The code to generate this plot is available here.
The code is as below:
library(quantmod) Dir = "D:\\FII Stats" filename = "FII-DII-Nifty.csv" #Read the csv file created earlier temp <- read.csv(file.path(Dir, filename), header=TRUE, sep=",") temp$Date <- as.Date(temp$Date, format="%d-%m-%Y") temp <- temp[order(temp$Date, decreasing=FALSE),] #Define Date as row name rownames(temp) <- temp$Date temp$ChangePct <- temp$Change*100 / Lag(temp$Close)#[2:length(temp$Close)] #temp$ChangePct[is.na(temp$ChangePct)] <- 0 z <- as.zoo(temp) #Filter for 2011 z <- z[z$Date > "2011-01-01"] z$cumFIINetValue <- cumsum(z[,"FIINetValue"]) z$cumDIINetValue <- cumsum(z[,"DIINetValue"]) z$cumEffectiveInflow <- cumsum(z[,"EffectiveInflow"]) # Remove NAs z[is.na(z)] <- 0 plot(cbind(z$cumDIINetValue,z$cumFIINetValue,z$cumEffectiveInflow), screens=c(1,1,1), type="l", col=c("blue","red", "green"), xlab="Time", ylab="Rs (In Cr)", ylim = list(20100:-100,-20100:100), lwd=2, main="Cumulative Institutional inflow in 2011", sub="http://mypapertrades.blogspot.com") par(new=TRUE) plot(z$Close, screens=1,type="l", ann=FALSE, yaxt="n", ylim = 4500:6500, lwd=3, ylab="Nifty") axis(4,labels=TRUE) legend(x="topleft", bty="n", lty=c(1,1,1,1), col=c("blue","red","green","black"), legend=c("DII Inflow", "FII Inflow", "Effective Inflow","Nifty"), lwd=2) #cor(as.numeric(z$Close),as.numeric(z$cumFIINetValue))
To leave a comment for the author, please follow the link and comment on their blog: My Paper Trades.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.