我正在用PuLP创建一个优化函数来优化投资组合。我有一个资产列表,每个资产都具有以下流动性水平之一[1、2、3]
我试图创建一个约束,即至少20%的投资组合需要具备1级流动性
我已经创建了一个字典(liquidity),它保存了{'Asset':Level},并且正在尝试用它和资产变量(Asset_vars,它是一个LpVariable)创建约束
asset_vars = pl.LpVariable.dicts("Assets", asset_list,lowBound=0, upBound=1, cat='Integer')
prob += pl.lpSum([liquidity[f] * asset_vars[f] for f in asset_vars]) >= ?
我知道我现在的设置与我需要做的并不接近,但是,我很难找到/想出解决方案
考虑到你的资产,你已经知道每个资产的流动性水平。您只需确保至少20%的投资组合由流动性级别为1的资产构成。
您可以使用以下约束来执行此操作
假设您有6项资产,
x1,x2,x3,x4,x5,x6
,其中x1
是唯一与流动性级别为1的资产关联的资产。 限制条件是:这基本上意味着:对于我所持有的流动性水平为1的每项资产,我不能持有超过4项流动性水平不同于1的资产
相关问题 更多 >
编程相关推荐