← 返回文章库

把行业上限改成软约束后,优化结果为什么仍会越线

2026-10-24 · L5

软约束允许越线,它只是让违反量进入目标函数扣分。本例行业上限四成,惩罚系数零点零五时仍会选择约四成一七,超出约一点六七个百分点;系数达到零点零五二后才回到四成。求解成功说明找到目标较好的方案,并不等于原行业硬上限已经满足。

固定目标与上限,逐次只改惩罚系数

构造教学组合只有行业甲与其余资产两部分,甲权重x在零到一之间,其他权重为一减x,不设卖空、费用或不同资产内部结构。一个期间的基础目标为零点一乘x,减零点零六乘x平方;这是预设的收益差减风险惩罚,不是实测收益或货币金额。行业限额预先设为零点四。比较硬约束时,明确要求x不超过零点四;比较软约束时,移除这条不等式,改为扣gamma乘超出零点四的正部。

参数值
收益差系数0.100000
二次项系数0.060000
上限0.400000
达到上限的临界gamma0.052000

正部的含义是x不超过上限时违反量为零,超过时等于x减零点四。不能使用偏离的绝对值,否则低于上限也会被罚,问题变成鼓励贴近一个目标而非限制超额。gamma是每单位权重违反带来的目标扣分,和违反量相乘后才与基础目标同单位;它不是百分之多少的违约概率,也不是业务规则认定的罚款率。把变量从小数改为百分点时,系数需要同步换算。

在折点两侧求解,而不是看状态猜合规

没有惩罚时,基础目标的导数为零点一减零点一二x,驻点为六分之五,约八成三三。硬约束把它限制到四成,目标零点零三零四。软约束在上限下方仍用原导数,上限上方则额外减gamma;因此超限区域的驻点为零点一减gamma再除以零点一二。要得到完整解,还要比较零、一、上限折点与两侧有效驻点,不能把落在错误区间的驻点直接使用。

参照行业x其他权重违反量净目标
硬上限0.4000000.60000000.030400

本例目标是凹二次函数减凸的正部惩罚,整体仍凹,导数只在上限处向下跳。上限左侧导数为零点零五二,右侧则为零点零五二减gamma。gamma至少零点零五二时,右侧不再有继续加仓的正边际,最优解停在上限。这是针对所给函数的连续解析结论,不是对所有组合都存在同一个通用惩罚系数的承诺;增加收益差、改变风险项,上限处的边际也会改变。

越线多少与扣分多少必须同时报

惩罚系数gamma行业x其他1-x违反量未罚目标惩罚净目标停在上限目标
00.8333330.1666670.4333330.0416670.0000000.0416670.030400
0.0200000.6666670.3333330.2666670.0400000.0053330.0346670.030400
0.0500000.4166670.5833330.0166670.0312500.0008330.0304170.030400
0.0520000.4000000.60000000.0304000.0000000.0304000.030400
0.1000000.4000000.60000000.0304000.0000000.0304000.030400

gamma为零点零二时,行业权重约三分之二,违反量约零点二六六六六七;基础目标零点零四,惩罚约零点零零五三三三,净目标约零点零三四六六七,仍高于停在上限的零点零三零四。优化器选择越线,并不是没有读到惩罚,而是在这组参数下,额外基础收益超过了扣分。只看目标值提高,或只看求解状态成功,都无法知道到底牺牲了多少限额。

gamma为零点零五时,行业权重十二分之五,超过上限六十分之一;基础目标零点零三一二五,惩罚约零点零零零八三三,净目标约零点零三零四一七。它比硬约束目标仅高约零点零零零零一七,但违反量仍是一点六七个百分点,并非浮点容差。把目标优势显示到两位后看成相等,再把越线解释为数值噪音,会混淆优化偏好和约束合规两类结果。

表格保留六位小数,计算比较使用完整值。若希望按万元理解惩罚,需要先指定一个目标到金额的转换尺度;本例没有为风险扣分安排真实支付,也没有一笔流向外部的罚金现金。不能把惩罚列直接从账户余额扣去,再声称这是模拟净值,否则会对同一偏好项重复处理,并虚构真实费用。

软硬两种要求怎样划定不可互换的边界

若某项限制是必须严格满足的资金、数量或授权边界,就应作为硬约束留在可行集合中;将它变软意味着问题允许违反,应由规则本身明确授权。本文只演示数学差异,不替任何真实管理制度决定能否放松。反过来,如果某项目标只是偏好,硬设为绝不越线可能让其他必要目标无法实现;报告应说明允许牺牲的对象,而不是把所有要求都塞进一个系数后称作合规。

多个软约束也不能只按gamma数值大小判断优先级。若一项以百分点计,一项以金额计,系数的数值不可直接比较;违反函数的尺度、范围和可获得的目标收益同样影响结果。想表达词典式优先级,需要额外的层级求解规则,而不是相信足够大的单一系数必然达到所有业务顺序。很大的系数还可能恶化数值尺度,本例解析求解避免了求解器条件数问题,但并没有证明实际高维问题也如此简单。

复核软约束结果需要哪些字段

先保存硬限制列表,明确哪一行被移成软惩罚,再保存违反函数、系数、基础目标、违反量、扣分和最终目标。用相同输入求一遍硬约束参照,有助于量化为多大目标优势付出了多少越线。若缺少上限字段,不能默认为零;若gamma为负,目标会奖励超限,应先拒绝或重新解释输入。对本例而言,负系数已经超出优先级惩罚的构造定义。

Cvxportfolio 1.5.0的Soft constraints章节以不等式违反的正部构造惩罚,本文据此明确函数形式。资料不提供本例gamma,也不认定哪条实际行业规则可以放松。最终应把是否越线作为独立状态返回,连同原阈值一起展示;软约束目标最好与硬约束可行性同时留痕,读者才能看见优化成功究竟意味着完成了什么。

从分数到持仓的母题可了解组合构建背景;组合波动率基础工具只核给定输入的基础风险,本页新增模型在教学表中核算,不表示工具已增加优化能力。相关条件可继续核对交易成本无交易区间与缺失收益协方差非半正定,分别保留各题输入,避免把不同约束的结论混用。

道积君编辑组,AI辅助编写与核算。本文编号DJ4-084,构造教学数据不对应真实账户;来源支持所注明方法,不证明参数、预测或执行条件真实成立。

复算资料

本篇编号DJ4-084。下载Python复算脚本(文本)与构造输入输出JSON,按编号核对本篇。脚本改存为.py后可用Python标准库运行,数据不是实际用户记录。

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。