r语言 - 在使用遗传算法时,如何使权重总和(对于我的投资组合中的股票)等于 1?



我在R中运行遗传算法,为投资组合中的股票选择权重,同时具有最高的回报/风险比。问题是权重需要加起来为 1,但我到目前为止尝试的代码不起作用。任何帮助将不胜感激。

这是我的代码:

normalise=function(v){v/sum(v)}
f=function(weights){
weights=normalise(weights)
(weights%*%returns)/(weights%*%variances)
}
GA=ga(type="real",fitness=f,lower=rep(0,length(positive)),
upper=rep(1,length(positive)),maxiter=20000,run=300)

这是因为您实际上并没有"修复"解决方案:在评估它之前,您只将其映射到可行的解决方案。这是你实际上可能会做的事情;但是,您还必须映射 GA 的解决方案,即规范化 GA 返回的权重。(例如见Maringer,D.和Oyewumi,O.(2007(。受约束投资组合的指数跟踪。

相关内容

  • 没有找到相关文章

最新更新