投资组合优化
在「持仓数量」约束下,从一篮子资产中挑选出预期收益最高的组合。这是典型的基数约束 0/1 优化问题:约束本身把变量两两耦合,使得简单的贪心选择不再最优。
请求参数
| 字段 | 说明 |
|---|---|
| problem | "portfolio" |
| items | 资产数组,每项 {name, value},value 为预期收益(如年化 %) |
| pick | 持仓数量,求解器必须正好选出这么多只 |
请求示例
{
"problem": "portfolio",
"engine": "cpu",
"params": {
"items": [
{"name": "资产A", "value": 12.5},
{"name": "资产B", "value": 9.0},
{"name": "资产C", "value": 8.2},
{"name": "资产D", "value": 6.5}
],
"pick": 2
}
}返回示例
{
"summary": {
"selected": [{"name": "资产A", "ret": 12.5}, {"name": "资产C", "ret": 8.2}],
"totalReturn": 20.7,
"constraintOk": true
}
}要点
- pick 越接近资产总数,约束越宽松;恰好一半时组合数最多,最考验求解器。
- 可把 value 设为「收益 − 风险惩罚」的综合分,实现风险调整后的选择。