Path: blob/master/sandbox/paper_analysis/insample/SelectedPortfolios.R
1433 views
setwd("c:/Documents and Settings/Administrator/Desktop/risk budget programs/insample")1#setwd("c:/Documents and Settings/n06054/Desktop/risk budget programs")2cAssets = 4; p = priskbudget = 0.95;3mincriterion = "mES" ; percriskcontribcriterion = "mES";45# Load programs67source("Risk_budget_functions.R");8library(zoo); library(fGarch); library("PerformanceAnalytics"); library("PortfolioAnalytics")9clean = TRUE10CC = TRUE1112# Load the data13firstyear = 1976 ; firstquarter = 1; lastyear = 2010; lastquarter = 2;14data = read.table( file= paste(getwd(),"/data.txt",sep="") ,header=T)15date = as.Date(data[,1],format="%Y-%m-%d")1617monthlyR = zoo( data[,2:(1+cAssets)] , order.by = date )1819###############################################20# Difference min var vs min cvar for alpha21###############################################2223clmonthlyR = clean.boudt2(monthlyR,alpha=0.05)[[1]]24mu = apply(clmonthlyR,2,'mean')25sigma = cov(clmonthlyR)26if(!CC){27M3 = PerformanceAnalytics:::M3.MM(clmonthlyR)28M4 = PerformanceAnalytics:::M4.MM(clmonthlyR)29}else{30source( paste( getwd(),"/R_allocation/coskewkurtosis.R" ,sep="") )31M3 = coskewCC(clmonthlyR) ; M4 = cokurtCC(clmonthlyR) ;32}3334eps = 0.02535rpconstraint<-constraint(assets=N, min_sum=(1-eps), max_sum=(1+eps),36min=rep(0,N), max=rep(1,N), weight_seq=generatesequence(),by=.001,rounding=3)37rp<- random_portfolios(rpconstraints=rpconstraint,permutations=200)38rp <-rp/rowSums(rp)39controlDE <- list(reltol=1e-6,steptol=150, itermax = 5000,trace = 100, strategy=6, c=.4,40NP=as.numeric(nrow(rp)),initialpop=rp)41sol = PortfolioOptim( minriskcriterion = "mES" , MinMaxComp = F, percriskcontribcriterion = "mES" ,42Riskupper = Inf , mu = mu, sigma = sigma, M3=M3, M4=M4,43alpha = 0.05, alphariskbudget = 0.05, controlDE = controlDE )4445print(sol) # [[1]] weights, [[2]] mean , [[3]] risk, [[4]] perc risk allocation [[5]] absolute risk alloc4647[1] "out = list( minw , sum( minw*mu ) , prisk(minw) , percriskcontrib(minw)"48[[1]]49par1 par2 par3 par4500.7910335681 0.0001698627 0.0622884156 0.14650815365152[[2]]53[1] 0.0063314815455[[3]]56[,1]57[1,] 0.010494565859[[4]]60[1] 1.2092963044 0.0003311551 0.0242432012 -0.23387066076162[[5]]63[1] 1.269103e-02 3.475327e-06 2.544218e-04 -2.454370e-036465sol = PortfolioOptim( minriskcriterion = "mES" , MinMaxComp = T, percriskcontribcriterion = "mES" ,66Riskupper = Inf , mu = mu, sigma = sigma, M3=M3, M4=M4,67alpha = 0.05, alphariskbudget = 0.05, controlDE = controlDE )6869[[1]]70par1 par2 par3 par4710.71887893 0.06307400 0.07585579 0.142191287273[[2]]74[1] 0.0065424187576[[3]]77[,1]78[1,] 0.012207227980[[4]]81[1] 0.2501506 0.2497638 0.2496753 0.25041038283[[5]]84[1] 0.003053645 0.003048923 0.003047842 0.0030568148586sol = PortfolioOptim( minriskcriterion = "StdDev" , MinMaxComp = F, percriskcontribcriterion = "StdDev" ,87Riskupper = Inf , mu = mu, sigma = sigma, M3=M3, M4=M4 , optimize_method = "quadprog" )8889[1] "out = list( minw , sum( minw*mu ) , prisk(minw) , percriskcontrib(minw)"90[[1]]91[1] 0.84043528 0.03862133 0.03643427 0.084509129293[[2]]94[1] 0.00642121895# > 0.006421218*1296# [1] 0.0770546297[[3]]98[,1]99[1,] 0.01433945100101[[4]]102[1] 0.84043528 0.03862133 0.03643427 0.08450912103104[[5]]105[1] 0.012051380 0.000553809 0.000522447 0.001211814106107108109110111