我正在尝试解决一个投资组合优化问题,我希望在没有卖空的约束下最大化 4 个资产的风险/回报,并且权重之和应该等于 1。因为其中两个资产是 S&P500 (w1) 和Nikkei 225 (w2) 货币对冲到英镑,另外两个也是 S&P500 (w3) 和 Nikkei 225 (w4) 但这次货币未对冲到英镑。我想知道的是定义货币对冲水平和最大化每种资产的回报/风险的权重。所以权重应该遵守以下约束: w1+w3 = 0.5, w2+w4=0.5 , w1+w2+w3+4=1 , w1=(1-w3) , w2=(1-w4) 和 w1 到 w4 >=0。我过去一直在使用 quadprog,并且有几行代码可以在没有卖空的情况下最大化风险/回报,并且从以前的帖子/问题中获得最小最大范围约束下的投资组合优化。因此,我了解如何对大部分内容进行编程,但我不确定如何正确编码 bVec 中的补充约束,即 w1=(1-w3) & w2=(1-w4) 。我认为可以通过在代码中重新编程 bVec <- c(1,min_A,0,-max_A,-1) 来完成,但不确定如何执行此操作....任何帮助/线索表示赞赏...