工程与管理交易系统架构安全

卖出也不能随便:设计一个三步风控闸门

大部分交易系统的风控都在买入侧:保证金够不够、敞口超不超、频率限不限。卖出?直接放行。

问题来了:恐慌性卖出和盈利性卖出的止损线是不一样的。如果某个策略触发恐慌卖出,它会连续平仓多个标的,瞬间拉低账户权益。

这就是 500SellGate 的设计动机——把卖出也关进笼子里。


三模块设计

卖出请求

  ├─ Module 1: Equity Shadow(权益影子检查)
  │   └─ 当前浮亏 + 计划卖出量 > 权益的 X%?→ 阻止

  ├─ Module 2: MicroTrend Short-Entry Gate(微趋势闸门)
  │   └─ 微趋势方向是否支持做空?→ 不支持就阻止

  └─ Module 3: Dynamic Threshold(动态阈值)
      └─ 波动率越高,阈值越紧 → 高波动时少卖

Module 1: Equity Shadow

不是看当前权益,是看”如果这笔卖出成交后的投影权益”。如果投影权益低于安全线,阻止卖出。

这跟广告系统的预算投影一样:OCPC 出价不是看”已经花了多少”,而是看”如果这轮出价全部成交,总消耗会不会超预算”。

Module 2: MicroTrend Gate

卖出前检查标的的微趋势方向。如果在上升趋势中做卖出,可能是止损而不是恐慌,放行。如果在下降趋势中大量卖出,可能是恐慌,拦住。

类比:广告系统里,如果 CTR 在下降,不应该自动降低出价——可能是素材疲劳,也可能是竞品提价。要先判断趋势原因再行动。

Module 3: Dynamic Threshold

固定阈值的问题:波动率 5% 时合理的卖出量,在波动率 50% 时可能就是灾难。Dynamic Threshold 根据当前波动率动态调整卖出上限。

这和广告系统的动态预算分配一样:大促期间预算上限提高,因为转化率高;低谷期收紧,因为 ROI 低。


Equity Shadow 标记

关键设计:Equity Shadow 不是硬阻断,而是标记后让人工审核。因为卖出有时是必要的——比如某个标的出现重大利空,不卖损失更大。

卖出请求 → 三模块检查 → ALLOW / SHADOW / DENY

SHADOW 的意思是”系统觉得不对劲,但你可以 override”。这保留了人在回路中的最终决策权。


一句话

卖出风控不是不让你卖,是在你的恐慌和理性之间加三道检查——让你在按下卖出键之前,多想了三次。