Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- low_te_port = portfolio.spec(assets=as.character(Sics_Winners$identifier))
- ##Rescale weights to be a fn of 1
- wb = Sics_Winners$cap_weight
- upper_bound = pmin(20*Sics_Winners$cap_weight,0.1)
- upper_bound = ifelse(Sics_Winners$long_flag==0,0,upper_bound)
- min_mult = rep(0,nrow(Sics_Winners))
- max_mult = ifelse(as.numeric(upper_bound)==0,0,as.numeric(upper_bound/wb))
- low_te_port = add.constraint(portfolio=low_te_port,type='box',min=rep(0,nrow(Sics_Winners)),max=as.numeric(upper_bound),min_mult=0,max_mult=sum(upper_bound))
- low_te_port = add.constraint(portfolio=low_te_port,type='weight_sum',min=1,max=1)
- ##Calc beta exposures (set na to 0 )
- beta_exposures = ifelse(is.na(Sics_Winners$factor_data),0,Sics_Winners$factor_data)
- low_te_port = add.constraint(portfolio=low_te_port,type='factor_exposure',B= beta_exposures,lower=0,upper=carbon_contrib_target)
- low_te_port = add.objective(portfolio=low_te_port,type='risk',name="Expected_TE")
- ##Calc cov ledoit wolf
- # cov_sample = cov.sample(dailyprime)
- # const_corr = cov.prior.cc(cov_sample)
- # small_delta = shrinkage.intensity(dailyprime,const_corr,cov_sample)
- daily_temp_mat = dailyprime[,colnames(dailyprime)%in%Sics_Winners$identifier]
- my_cov = cov.shrink(daily_temp_mat )
- my_port = optimize.portfolio(R=daily_temp_mat,portfolio=low_te_port,
- optimize_method="DEoptim",
- search_size=1,wb=wb,sigma=my_cov)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement