Dear R helpers

I have following data

stocks <- c("ABC", "DEF", "GHI", "JKL")

prices_df <- data.frame(ABC = c(17,24,15,22,16,22,17,22,15,19), 
                                         DEF = c(22,28,20,20,28,26,29,18,24,21), 
                                          GHI = c(32,27,32,36,37,37,34,23,25,32),
 
                                          JKL = c(47,60,60,43,62,38,44,53,61,41))

sd_prices <- c(3.3483,3.9497,4.9721,9.3387)   # standard deviations say(sd1, sd2, sd3, sd4)
                       
weights <- c(0.10, 0.25, 0.20, 0.45)      # say (w1, w2, w3, w4)

I need to calculate the standard deviation of the portfolio. The formula is

stdev_portfolio = sqrt((w1*sd1)^2+(w2*sd2)^2+(w3*sd3)^2+(w4*sd4)^2 + 
                        2*w1*w2*sd1*sd2*correlation(ABC, DEF)+
  
                      2*w1*w3*sd1*sd3*correlation(ABC, GHI)+
                        2*w1*w4*sd1*sd4*correlation(ABC, JKL)+
                        2*w2*w3*sd2*sd3*correlation(DEF, GHI)+
                        2*w2*w4*sd2*sd4*correlation(DEF, JKL)+
                        2*w3*w4*sd3*sd4*correlation(GHI, JKL))
                  
      
                        
OR if we define 

P = sd_prices*weights

I need to calculate 

stdev_portfolio = sqrt((P1)^2+(P2)^2+(P3)^2+(P4)^2 + 
                        2*P1*P2*correlation(ABC, DEF)+
                        2*P1*P3*correlation(ABC, GHI)+
                        2*P1*P4*correlation(ABC, JKL)+
                        2*P2*P3*correlation(DEF,
 GHI)+
                        2*P2*P4*correlation(DEF, JKL)+
                        2*P3*P4*correlation(GHI, JKL))
                        
In reality I will be dealing with not 4, but many stocks and hence I can't generalize this as

stdev_portfolio = sqrt((P[1])^2+(P[2])^2+(P[3])^2+(P[4)^2 + 
                        2*P[1]*P[2]*correlation(ABC, DEF)+
                        2*P1*P3*correlation(ABC,
 GHI)+
                        2*P1*P4*correlation(ABC, JKL)+
                        2*P2*P3*correlation(DEF, GHI)+
                        2*P2*P4*correlation(DEF, JKL)+
                        2*P3*P4*correlation(GHI, JKL))                        
                        
Kindly advise as to how do I
 calculate the portfolio standard deviation?

Thanking in advance

Amelia Vettori


      
	[[alternative HTML version deleted]]

