在购买股票和期望的投资组合权重时解决最小的差异

时间:2017-11-08 02:22:51

标签: r solver stocks performanceanalytics

快速而有希望的简单问题。假设我想在股票上投入一些资金,我总共需要5个,其中5个我希望在所有股票中平均投资,每个资本权重的20%。

问题当然是每个股票价格都有不同的成本,因此我不太可能购买股票组合,这样我每股股票就会占20%。

所以问题是,是否有一种快速的方法或功能来解决这样的非线性问题,以便我可以输入股票价格然后输入所需的权重并获得最小差异的解决方案?

欢呼帮助!

1 个答案:

答案 0 :(得分:0)

可以使用MIP(混合整数编程)求解器。问题可以表述为:

 min sum(i, abs(target(i) - price(i)*purchase(i)))
 subject to 
     sum(i, price(i)*purchase(i)) <= budget 
 purchase(i): integer variable

绝对值可以线性化:

 min sum(i,z(i))
 -z(i) <= target(i) - price(i)*purchase(i) <= z(i)

或者,您可以使用二次目标:

 min sum(i, (target(i) - price(i)*purchase(i))^2 )
 subject to 
     sum(i, price(i)*purchase(i)) <= budget 
 purchase(i): integer variable

这需要一个MIQP求解器。