Stock Market Analysis with R programming language

Updated: Jun 24

Analyzing the performance of Indian stocks amidst this pandemic

Click here to view this article on Medium


The stock market of India fell by 41.2% to be precise during the period between January to April. At the starting of this year, most of the companies were at their peak and turned down to be 52 week low (considered as lowest ever in the year). Now, the stock market started recovering and the gain percentage in an average is 43% but still, there are pending recovery values that need to be retrieved. This analysis is taken sector-wise and is compared with the NSE (National Stock Exchange) indices movement. All these data and scrutiny (observation) is between Jan-01-2020 to Jun-09-2020. This analysis also reveals how the stocks and index performed during this period and which are the best and worst recovered companies.

R as an Analysis Tool

R programming language is considered as one of the powerful languages for Data Science and it is also very accessible for users. The software used for coding R is RStudio and there are also other platforms to code R which you can prefer. This language is widely used by Statisticians and Data miners for data analysis and for developing statistical software. Let's see how to do Stock Analysis with R :

1. Importing dataset using Import Dataset :

2. Read the dataset file which you have imported :

3. Coding for our required Analysis (I have extracted the data from NSE Website, the above one is just an example, now I'm coding with a different dataset)

This is an example with Wipro :

#Examining the lowest value of wipro 
> min(wipro_index$Close)
#Examining the highest value of wipro 
> max(wipro_index$Close)
#Calculating fall value of wipro
> max(wipro_index$Close) - min(wipro_index$Close)
#Calculating fall percentage of wipro
> 94.85 / max(wipro_index$Close) * 100
#Examining the recpvery of wipro
> max(wipro_may$'Close Price')
#Calculating recovery value of wipro
> max(wipro_may$'Close Price') - min(wipro_index$Close)
#Calculating recovery percentage of wipro
> 64.1 / min(wipro_index$Close) * 100
#Calculating pending recovery value of wipro
> max(wipro_index$Close) - max(wipro_may$'Close Price')
#Calculating pending recovery percentage of wipro
> 30.75 / max(wipro_index$Close) * 100 
#Summarizing our analysis of wipro
> wipro_index  %>% 
    summarize(high = max(wipro_index$Close) ,
    low = min(wipro_index$Close) ,
    fall_value = max(wipro_index$Close) - min(wipro_index$Close) ,            
    fall_percentage = 94.85 / max(wipro_index$Close) * 100 ,
    recovery = max(wipro_may$`Close Price`) ,
    recovery_value  = max(wipro_may$`Close Price`) -        min(wipro_index$Close) , 
    recovery_percentage = 64.10 / min(wipro_index$Close) * 100 ,  
    pending_recovery = max(wipro_index$Close) - max(wipro_may$`Close Price`) ,
    pending_percentage = 30.75 / max(wipro_index$Close) * 100 )


high    low     fall_value  fall_percentage  recovery  recovery_value
257.2   162.35  94.85       36.88            226.45    64.1 
recovery_percentage  pending_recovery  pending_percentage             39.4826              30.75             11.96

From this coding, we can generate our specified result which we want to from the dataset. After getting our data from R we can use Excel for a neat tabulation for our Analysis. In this program I have used functions including : "min" ,"max" , "summarize".

  • min - "min" function returns the minimum value of a vector or column.

  • max - It returns the highest or the maximum value of a vector or column.

  • summarize - The "summarize" function reduces a data frame into a summary of just one vector or value.

Tabulation of our Data:

Graph comparison of Values

Data visualization is very important in the financial world, especially for Analysis. Instead of creating a tabulation, a simple graph or any way of representation is easy to understand and it is very useful for comparison too. In this blog, I've compared the values of companies using a line graph for easy understanding.

1. Nifty 50

From this graph, we can understand that the Nifty 50 index was at its peak on 14-Jan-2020 and had a falling price of 7,610.250 on 23-Mar-2020. We can also observe that the price of 12,362.30 came down to 7,610.250 in just 68 days which is 38.44% from its peak value. The next thing we can observe from this graph is the recovery value of Nifty 50. The stock values of Nifty 50 zoomed from 7,610 to 10,167 in only 78 days and had a jump percentage of 33.6 %. The last thing about this graph is that even though the prices spiked in 78 days it couldn't make up for its peak price of 12,362. So, we can conclude that the pending recovery value of Nifty 50 is still 2,195 and needs to shine up for a percentage of 21.59%.

2. Wipro and ITC (Indian Tobacco Company)

This is a graph comparing the stock prices of two companies, Wipro and ITC. We can observe that the movement of both the companies is relatively similar during this period. The stock price of Wipro in January was 257.2, had a fall of 94.85, and reached a stock price of 162. The percentage of fall value is 36.88 %. Soon it recovered in June and zoomed to a price of 226 and had a recovery rate of

39.4%. When we compare the peak price of Wipro with the recovery price, the pending recovery value is 30.75 and has to rise 13.58%. Coming to ITC, its peak price was 243.25 and declined to a price of 147.25 during this period. This company had a fall value of 96 and declined by 39.47%. The stock prices are appreciated to 200.55 between March and June, the recovery rate was 36.20%. In the case of pending recovery value, Wipro has a less pending recovery rate when compared to ITC which is at 21.29%. We can say that Wipro performed well during this period as it has less pending recovery rate when compared to ITC.

3. Tata Motors and Gail

This graph compares the stock prices of two companies Tata Motors and Gail. We can notice that the peak price of these two companies differs but in the case of the declined price they are similar. The peak price of Tata Motors was 200.35 and the declined price is 65.30. From these prices, we can observe that Tata Motors has phenomenal fall value and rate. The falling value of Tata motors is 135.05 and declined percentage is 64.41%. Despite having drastic depreciation in prices Tata Motors recovered in a very short span of time. It zoomed to a price of 115.45 from a declined price of 65.30. The recovery rate is 76.80%. But still, the pending recovery value is 84.90 with a rate of 73.54%. Coming to Gail the price movements are not so phenomenal when compared to Tata Motors. The peak price was 131.65 and the declined price is 69.40 which is more similar to Tata Motors. The falling value and rate of Gail are 62.25 and 42.28% respectively. The recovery price is 104.75 which can be considered as a good combe back when compared to Tata Motors. The pending recovery value of Gail is 26.90 with a percentage of 25.68%. This graph comparison clearly reveals that the price movements of Tata Motors during this period were very volatile.

4. Reliance, L & T, and Asian Paints

This graph comprises the stock prices of three companies namely Reliance, L & T, and Asian Paints. The stock price of Reliance was its peak value of 1,581 and had a price depreciation of 884.05. But the recovery rate was phenomenally high which is higher than its peak price. The recovery price is 1,581.70, an increased rate of 0.7% from its peak price. Obviously, there is no pending recovery rate as the price exceeds its peak value. The highest stock price of L & T was 1,370.20. The falling price and value of L & T are 707.90 and 662.30 respectively. The down rate of L & T is 48.34%. The recovery price of L & T is 961.35 and the rate is 35.80. The pending recovery value of L & T is 408.85. From this we can say that the performance of L & T is poor when compared to L & T. Coming to Asian Paints, considering all the peak prices Asian Paints is top among that. The peak price of Asian Paints was 1,893.70 and the declined price is 1,498.45. The recovery price is 1,716.55, from this we can note that the pending value and rate of Asian Paints would be lower than L & T. The pending recovery value and rate of Asian Paints are 177.15 and 10.32%. Like this, we can predict the values easily in charts or any types of representations without doing any calculations.

5. SBI and Sun Pharma

This line chart represents the stock prices of SBI and Sun Pharma. The price movements of SBI are very volatile during this period as we can observe from the chart. The peak price of SBI was 339.3 and had a staggering price decline of 175.5. The falling percentage of SBI is 48.28%. The recovery rate of SBI is only 7.01% which is considered the lowest of all companies. The pending recovery value is 151.50 with a phenomenal pending recovery rate of 80.67%. The next following company is Sun Pharma whose performance is good when compared to SBI. The peak price of Sun Pharma was 489.9 and had a price depreciation of 324.5 with a fall value and rate of 165.40 and 33.76% respectively. Sun Pharma has an exceptionally good recovery price and rate. The recovery price of Sun Pharma is 500.75 which is greater than its peak price of 489.9 with a rate of 2.17%. Sun Pharma has no pending recovery value. The last company is Airtel. It is considered the most profitable company in this whole dataset. The peak price of Airtel was 565 and had a price depreciation of 404.05. The fall value and percentage are 160.95 and 28.49% respectively. However having a falling percentage of 28.49%, Airtel has a surprising recovery price of 598.8 which is higher than its peak value with an increase in the rate of 5.64%. From this, we can conclude that the performance of Sun Pharma and Airtel is far better than SBI.

Summarizing the Best and Worst Performances

After all these analyses, in this pandemic period some companies have performed exceptionally well and some or not. So, I've picked three best-performing companies and three worst-performing companies from this analysis.

Best Performing Companies :

  • Reliance

  • Sun Pharma

  • Airtel

The reasons for picking out these companies are that they have a phenomenal recovery rate and no pending recovery value. The price movements were also not too volatile, so these companies might turn out to be good investment options.

Worst Performing Companies :

  • SBI

  • Tata Motors

  • L & T

These companies performed well in the previous year but during this pandemic, the price movements of these three companies were very volatile, and also they have a phenomenal pending recovery value and rate. So, it is not advisable to invest in these companies during this pandemic period.

Data science not only comes under computer science but also in financial analysis. Data Science is very important in business, economics, etc. In economics, using data science we can do our own demand analysis series which plays a key role in Economic planning for making future projections of demand, sales, prices, cost allocation, etc. Coming to business, data science has a huge impact on it as the complexity of business goes on. One of the important applications of data science in business is decision-making. Not only in economics and business there are many fields where data science is used and it is also considered as one of the trending topics to explore.

633 views6 comments