解算器“最小单元数”

时间:2015-11-29 13:54:56

标签: excel solver portfolio

我在excel中使用Solver来解决最优投资组合权重,但有一个约束我不知道如何定义。

优化问题是我有12只股票,我希望找到一个最优,其中一个限制是投资组合中使用了六个或更多股票。

有谁知道我怎么做到这一点?

(如果有任何差异,权重总和为1。)

是否有可能在求解器中生成IF语句?

我不确定的最后一个约束是如何声明投资组合中只考虑5%或更多的权重。

1 个答案:

答案 0 :(得分:0)

我认为您有12个决策变量w_1, w_2 ,..., w_12,其中w_i是投资组合中股票i的权重。引入12个新的决策变量b_1, b_2, ..., b_12,它们被约束为二进制(0或1) - 在求解器中易于实施。添加一个新约束,其中这些约束的总和应为> = 6.您需要确保

b_i = 1 <=> w_i > 0

并且

w_i > 0 => w_i >= 0.05

添加以下24个约束(每个库存2个):

0.05 * b_i <= w_i <= b_i

0.05 * b_i <= w_i时约束w_i >= 0.05强制b_i = 1。如果w_i <= b_i

,约束b_i = 1会强制w_i > 0

在电子表格中,如果您的决策变量位于列中,则可以引入标记为您的决策变量旁边的Used?用于保存新的决策变量,也许还有另一列用于保存产品0.05 *b_i

最后一点 - 在一个单元格中将最小权重0.05放在某处可能是好的,而不是硬连接,以便可以修改它。