快速而有希望的简单问题。假设我想在股票上投入一些资金,我总共需要5个,其中5个我希望在所有股票中平均投资,每个资本权重的20%。
问题当然是每个股票价格都有不同的成本,因此我不太可能购买股票组合,这样我每股股票就会占20%。
所以问题是,是否有一种快速的方法或功能来解决这样的非线性问题,以便我可以输入股票价格然后输入所需的权重并获得最小差异的解决方案?
欢呼帮助!
答案 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求解器。