我一直在努力编写最佳代码来估计投资组合收益的每月加权平均值。
我有以下变量:
公司股票收益(ret)
月 1、年 1 和日期
投资组合(port1):这定义了公司股票收益的投资组合
市值(mcap):估计权重(按month1 year1 port1)
我想计算每个月的加权回报和按市值加权的投资组合。(mcap) 每个公司。
我编写了以下代码,这些代码可以正常工作,但需要很长时间并且效率很低:
foreach x in 11 12 13 21 22 23 {
display `x'
forvalues y = 1980/2010 {
display `y'
forvalues m = 1/12 {
display `m'
tempvar tmp_wt tmp_tm tmp_p
egen `tmp_tm' = total(mcap) if month1==`m' & year1==`y' & port1 ==`x'
gen `tmp_wt' = mcap/`tmp_tm' if month1==`m' & year1==`y' & port1 ==`x'
gen `tmp_p' = ret*`tmp_wt' if month1==`m' & year1==`y' & port1 ==`x'
gen port_ret_`m'_`y'_`x' = `tmp_p'
}
}
}
数据如图所示:![价值加权投资组合回报数据][1]