Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
braverock
GitHub Repository: braverock/portfolioanalytics
Path: blob/master/sandbox/riskbudgetpaper(superseded)/R_interpretation/old/oldcode_performanceAnalysis.R
1721 views
1
2
3
R=checkData(monthlyR,method="zoo")
4
oosR = R[ ( index(R)>=head(from,1)& index(R)<=tail(from,1)),]
5
6
7
oospercCVaR = function( weightedR , seriesVaR ){ series = rowSums(weightedR) ; q = as.numeric( seriesVaR ) ;
8
out = -weightedR[series<(-q),]; #print(out) # Maal gewichten doen
9
return( apply(out,1,'max')/apply(out,1,'sum') )
10
}
11
12
out1 = out2 = out3 = out4 = out5 = out6 = out7 = out8 = out9 = out10 = c();
13
14
for( strat in 1:10 ){
15
criterion = criteria[strat];
16
weightedR = c(); portfolioVaR = c();
17
weights = read.csv( file = paste( criterion,".csv",sep=""),header = TRUE, sep = ",", na.strings = "NA", dec = ".")
18
for (row in 1:length(from)){
19
Rrebalperiod = window(R, start = as.Date(from[row]) , end = as.Date(to[row])) ;
20
weightedR = rbind( weightedR , matrix( rep( as.numeric(weights[row,]),nrow(Rrebalperiod)) , nrow = nrow(Rrebalperiod) )*Rrebalperiod );
21
pfoosR = rowSums( matrix( rep( as.numeric(weights[row,]),nrow(oosR)) , nrow = nrow(oosR) )*oosR )
22
portfolioVaR = c( portfolioVaR , histVaR( pfoosR ) ) ;
23
}
24
if( strat==1 ){ out1 = rbind( out1 , oospercCVaR( weightedR , portfolioVaR ) ) }
25
if( strat==2 ){ out2 = rbind( out2 , oospercCVaR( weightedR , portfolioVaR ) ) }
26
if( strat==3 ){ out3 = rbind( out3 , oospercCVaR( weightedR , portfolioVaR ) ) }
27
if( strat==4 ){ out4 = rbind( out4 , oospercCVaR( weightedR , portfolioVaR ) ) }
28
if( strat==5 ){ out5 = rbind( out5 , oospercCVaR( weightedR , portfolioVaR ) ) }
29
if( strat==6 ){ out6 = rbind( out6 , oospercCVaR( weightedR , portfolioVaR ) ) }
30
if( strat==7 ){ out7 = rbind( out7 , oospercCVaR( weightedR , portfolioVaR ) ) }
31
if( strat==8 ){ out8 = rbind( out8 , oospercCVaR( weightedR , portfolioVaR ) ) }
32
if( strat==9 ){ out9 = rbind( out9 , oospercCVaR( weightedR , portfolioVaR ) ) }
33
if( strat==10){ out10= rbind( out10 , oospercCVaR( weightedR , portfolioVaR ) ) }
34
}
35
36
out = cbind( namelabels ,
37
round( c( mean(out1) , mean(out2) , mean(out3) , mean(out4) , mean(out5) , mean(out6) , mean(out7) , mean(out8) , mean(out9) , mean(out10) ) , 2 ) ,
38
round( c( median(out1) , median(out2) , median(out3) , median(out4) , median(out5) , median(out6) , median(out7) , median(out8) , median(out9) , median(out10) ) , 2 ) ,
39
round( c( min(out1) , min(out2) , min(out3) , min(out4) , min(out5) , min(out6) , min(out7) , min(out8) , min(out9) , min(out10) ) , 2 ) ,
40
round( c( max(out1) , max(out2) , max(out3) , max(out4) , max(out5) , max(out6) , max(out7) , max(out8) , max(out9) , max(out10) ), 2 )
41
round( c( max(out1) , max(out2) , max(out3) , max(out4) , max(out5) , max(out6) , max(out7) , max(out8) , max(out9) , max(out10) ), 2 )
42
43
)
44
colnames( out ) = c( "Strategies" , "mean" , "median" , "min" , "max" )
45
print( out )
46
47
oospercCVaR = function( weightedR , seriesVaR ){ series = rowSums(weightedR) ; q = as.numeric( seriesVaR ) ;
48
out = -weightedR[series<(-q),]; #print(out) # Maal gewichten doen
49
return( out/apply(out,1,'sum') )
50
}
51
52
oosCVaR = function( weightedR , seriesVaR ){ series = rowSums(weightedR) ; q = as.numeric( seriesVaR ) ;
53
out = -weightedR[series<(-q),]; #print(out) # Maal gewichten doen
54
return( out )
55
}
56
57
58
# Sharpe and Sortino ratios with respect to risk free return
59
60
excessoosreturns = oosreturns - monthlyRTBill;
61
sqrt(12)*apply( excessoosreturns , 2 , 'mean' )/apply( oosreturns , 2 , 'sd' )
62
63
sqrt(12)*apply( excessoosreturns , 2 , 'mean' )/apply( oosreturns , 2 , 'histCVaR' )
64
65