模型输出“股票 A 得分 0.73”之后,距离可执行组合还有很长一段路。组合层的任务是把不稳定的预测压进明确的风险预算、交易成本和操作限制中。上游信号应先通过机器学习股票信号与回测中的样本外验证。
一、分开信号、风险和约束
信号模型估计相对吸引力,风险模型估计共同因子和个体波动,优化器在约束下寻找目标权重。三者必须独立版本化。若同一个模型同时决定预期收益、风险和仓位,错误会被集中放大。
基本输入包括当前持仓、预测分数、协方差或因子风险、基准权重、价格与成交量、费用模型和账户限制。
二、先把分数校准成可比较尺度
模型分数不一定是收益率。可以按每个交易日做分位数、z-score 或基于历史样本外结果做单调校准。校准过程也只能使用过去数据,并按行业或规模检查系统性偏差。
更稳健的做法是压缩极端值,让单个异常预测不会控制整个组合。模型置信度低、数据缺失或分布外时,可把目标信号收缩到零。
三、把重要限制写进优化问题
常见约束包括:
- 单只股票最大和最小权重;
- 行业、风格和市场暴露区间;
- 总杠杆、现金和空头限制;
- 单次与累计换手上限;
- 按成交量计算的参与率;
- 禁买、停牌、价格限制和名单规则;
- 相对基准的跟踪误差或绝对风险预算。
目标函数可以权衡预测收益、风险、交易成本和持仓变化,但系数不能只为美化历史结果调参。每个约束都应对应一个明确风险或业务原因。
四、压力测试比单一波动率更重要
历史协方差可能低估结构突变。应增加行业冲击、流动性收缩、相关性上升、价格跳空、数据中断和模型全部失效的情景。观察组合损失、保证金、集中度和是否触发强制动作。
风险报告至少展示总暴露、净暴露、前十大持仓、行业与风格暴露、预期波动、历史与情景损失、换手、成本和流动性天数。FINRA 也强调所有投资都有风险,分散化只能管理部分风险,不能保证避免损失。
五、建立订单前的确定性闸门
无论信号来自 LLM、树模型还是强化学习,下单前都应执行同一套代码规则:价格是否过期、数量是否合法、是否超过仓位和日额度、是否重复订单、市场是否开放、证券是否可交易、账户状态是否正常。
任何规则失败都应拒单并记录原因。大模型可以解释告警,但不能覆盖硬性限制。紧急停止开关应独立于模型服务,即使模型和数据库故障也能阻止新订单。
六、按阶段提高自动化等级
推荐四级:只读研究、生成建议、人工审批后执行、在窄范围内自动执行。每次升级都需要新的证据:仿真偏差、异常处理、最大损失、回滚和人工接管都通过验收。
自动化工具可能没有掌握用户全部财务状况、税务、流动性需求和风险目标。个人工具不应仅凭几道问题就假设能够提供适合的组合。涉及真实资金和对外服务时,还需由适用地区的法律、合规和持牌专业人员确认要求。
七、记录每次组合变化的原因
每次再平衡都保存旧权重、目标权重、信号贡献、风险贡献、成本估计、约束命中和最终订单差异。若优化器因为约束无法求解,系统应回退到上一有效组合或无交易状态,不能临时删除约束换取一个数学解。
组合审批页面应突出新增风险,而不是只展示预期收益:哪些持仓变大、行业暴露如何变化、成本来自哪里、在压力情景下可能损失多少。审批人需要看到原始模型版本和数据时间,之后才能重放当时决定。
完成组合层后,可进一步了解强化学习与多智能体交易系统,但其上线门槛会显著提高。完整层级关系见AI 股票应用路线图。