Skip to content

11.5 风控模块:下单前检查

课前导读

学习目标

你将学会:在订单进入交易通道之前,用一套清晰的检查表拦住明显不该发生的交易。

适合谁读:已经理解实盘系统架构,并知道订单会从策略流向执行模块的学习者。

难度:advanced

预计用时:约 45 分钟

风控模块像机场安检。

它不会决定你这趟旅行是否开心。

但它会检查你是否带了不该带的东西,证件是否有效,登机口是否正确。

下单前风控也一样。

它不负责预测股票涨跌。

它负责确认这笔订单有没有违反资金、仓位、价格、名单、交易规则和损失限制。

对 A 股新手来说,风控不是“高级玩家才需要”。

恰恰相反,越是新手,越容易因为数量写错、代码看错、资金误算、重复点击而放大亏损。

本节只讲风控思想和教学级检查表。

不会提供真实券商接口连接步骤,也不会提供可直接用于实盘自动下单的代码。


知识正文

1. 类比:下单前风控像出门前的三次确认

你出门前可能会检查三件事。

钥匙带了吗?

门锁好了吗?

目的地是不是今天要去的地方?

这些动作看起来慢,却能避免很大的麻烦。

交易中的下单前检查也是这种“慢半拍”。

策略说“买入”,风控会问:资金够吗?

策略说“卖出”,风控会问:仓位够吗?

策略说“追涨”,风控会问:价格是否已经接近涨停?

策略说“今天继续交易”,风控会问:今天亏损是否已经超过上限?

风控不是给策略添堵。

风控是在系统最容易冲动的时刻,扮演冷静的第二双眼睛。

2. 从生活语言进入术语

下单前风控:订单提交前的一组规则检查。

它发生在订单生命周期里的“已生成”和“已提交”之间。

价格检查:确认委托价格是否合理,是否超出涨跌停范围,是否偏离参考价格过多。

数量检查:确认下单数量符合规则,并且不会因为多写一个零造成超额交易。

仓位检查:确认买入后单只股票或整体账户不会过度集中。

黑名单检查:确认股票不在系统禁止交易名单中。

涨跌停检查:确认订单没有忽视 A 股涨跌停约束。

可用资金检查:确认买入所需资金和费用有足够余量。

单日损失检查:确认账户今天的亏损没有超过预设停止线。

数据新鲜度检查:确认策略使用的行情和持仓不是过期数据。

这些词听起来很多,但都可以归为一句话:先确认“能不能下”,再讨论“要不要下”。

3. 下单前风控的流程

下面的流程图只是教学模型。

真实系统会更复杂,也会结合人工权限、交易通道和监控告警。

mermaid
flowchart TD
    A[策略生成订单意图] --> B[基础字段检查]
    B --> C{代码和方向有效吗}
    C -->|否| R[拒绝并记录原因]
    C -->|是| D[价格与涨跌停检查]
    D --> E{价格合理吗}
    E -->|否| R
    E -->|是| F[数量与资金检查]
    F --> G{资金和数量通过吗}
    G -->|否| R
    G -->|是| H[仓位与名单检查]
    H --> I{风险额度通过吗}
    I -->|否| R
    I -->|是| J[单日损失与开关检查]
    J --> K{允许继续交易吗}
    K -->|否| R
    K -->|是| L[生成可提交订单]

注意,风控流程里最有价值的是“拒绝并记录原因”。

如果只拒绝不记录,下次还会犯同样的错。

如果只记录不拒绝,记录就变成事后安慰。

4. A 股案例:一个零可能改变账户命运

假设一个新手账户有 100000 元可用资金。

策略本来计划买入某只股票 1000 股。

教学示例中,这只股票参考价格为 10 元。

正常买入金额约为 10000 元,再加上费用和滑点余量。

如果数量被误写成 10000 股,金额就变成约 100000 元。

这会让单只股票几乎占满账户。

如果次日股票低开,账户波动会明显放大。

如果没有数量和仓位检查,这个错误可能直接进入市场。

从投资者角度看,这是把一次试探性买入变成重仓押注。

从老师角度看,这是“规则先于判断”的典型场景。

从开发角度看,风控模块必须用机器能执行的规则拦住它。

例如:单只股票买入后不得超过账户权益的 20%。

例如:单笔订单金额不得超过可用资金的 30%。

例如:数量异常放大时必须进入人工确认。

这些规则不保证盈利。

但它们能降低“写错一个零”造成的大亏损概率。

5. 价格检查:不要让价格成为漏洞

价格检查不是预测未来价格。

它只回答委托价格是否在合理范围内。

A 股存在涨跌停制度。

多数普通股票每日涨跌幅有上限和下限。

不同板块和特殊情形可能有不同规则,学习时不要把单一比例机械套用到所有股票。

风控模块应当根据系统维护的交易规则进行检查。

价格还要和参考价格比较。

如果参考价是 10 元,订单却准备以 12 元买入,系统应要求解释。

这可能是策略确实允许高价格追买。

也可能是小数点、单位、行情源出错。

风控要做的不是替策略拍板。

风控要做的是发现异常并阻止未经确认的异常直接进入市场。

6. 数量检查:A 股语境里的基础门槛

A 股买入通常以 100 股为基本单位。

卖出时还可能遇到不足 100 股的零股处理问题。

教学中你只需要先记住:数量不是随便填的。

风控要确认数量为正数。

风控要确认数量符合交易规则。

风控要确认数量不会超过策略允许的最大单笔规模。

风控还要识别异常变化。

如果某策略过去每次买 1000 股,今天突然买 50000 股,就应触发检查。

这不一定代表错误。

但它一定值得停下来确认。

7. 仓位检查:防止账户变成单点押注

仓位是账户中某类资产所占比例。

对新手来说,可以先把仓位理解为“篮子里放了多少鸡蛋”。

如果一个篮子里只放一只股票,风险就集中在一个点上。

风控模块会检查买入后单票仓位。

也会检查行业、策略、账户整体风险敞口。

对于刚学习实盘系统的人,先掌握单票仓位和总仓位即可。

例如账户权益 100000 元,单票上限 20000 元。

如果当前已持有某股 15000 元,再买 10000 元就会超过上限。

这时风控应拒绝或要求降低数量。

8. 黑名单与白名单:先确认能不能碰

黑名单是系统明确禁止交易的股票或类别。

原因可能是停牌风险、数据质量异常、策略不覆盖、人工禁入、特殊事项未评估。

白名单是系统允许交易的范围。

新手常常只看“有没有机会”。

专业系统会先看“这是不是我允许交易的对象”。

如果策略突然给出一个不在覆盖范围内的股票代码,应该先拒绝。

这能防止代码映射错误、数据串线和策略越权。

9. 可用资金与费用余量

买入股票不是只看股价乘数量。

还要考虑费用、滑点和资金冻结。

教学阶段不需要记忆所有费用细节。

但要建立一个习惯:资金检查要留余量。

如果账户可用资金刚好等于理论买入金额,系统不应盲目通过。

因为实际成交价格、费用和资金占用可能让订单失败。

保守的风控会要求买入金额低于可用资金的一定比例。

这不是胆小。

这是为了避免边界条件导致连锁错误。

10. 单日损失:把“今天到此为止”写成规则

单日损失限制像车上的安全带。

它不会让你开得更快。

但在失控时能减少伤害。

如果账户今天已经亏到预设上限,系统应停止新增风险。

这条规则对新手尤其重要。

人在亏损后容易急于扳回。

程序在异常行情中也可能连续触发信号。

单日损失限制就是把“冷静一下”写进系统。

11. 下单前检查表

下面是本节的核心产物。

你可以把它复制到自己的模拟交易笔记里。

检查项通过标准不通过时动作
交易时间当前处于允许下单的时段拒绝或等待下一时段
股票代码在策略覆盖范围和白名单内拒绝并记录代码来源
买卖方向与持仓和策略状态一致拒绝并要求复核
委托价格不超涨跌停,不异常偏离参考价拒绝或进入人工确认
委托数量为正数,符合 A 股数量规则修正后重新检查
可用资金买入金额加余量不超过可用资金降低数量或拒绝
可卖持仓卖出数量不超过可卖数量拒绝
单票仓位成交后不超过上限降低数量或拒绝
总仓位账户整体风险不超过上限拒绝新增买入
黑名单标的不在禁入名单拒绝并记录原因
数据新鲜度行情、持仓、资金为最新可用数据暂停下单
单日损失未触发停止交易线停止新增风险
策略开关策略处于允许交易状态拒绝
重复订单同一信号未重复下单复用旧订单或拒绝

12. 概念性伪代码:风控只给结论和原因

text
输入:订单意图、账户快照、持仓快照、交易规则、风险参数
输出:通过、拒绝、需要人工确认

检查基础字段
检查价格边界
检查数量规则
检查资金和持仓
检查仓位上限
检查名单限制
检查数据是否过期
检查当日损失

如果任一关键检查失败:
    返回拒绝,并写明原因
如果存在异常但不确定:
    返回需要人工确认
否则:
    返回通过

这仍然只是教学伪代码。

它不能用于连接真实交易系统。

真正值得你带走的是风控的表达方式:结论必须和原因绑定。


交互实验室

练习 1:下单前自检

请用下面的清单审查一笔模拟买入订单。

  • [ ] 我知道这只股票为什么进入策略范围。
  • [ ] 我确认它不在黑名单里。
  • [ ] 我确认订单方向是买入还是卖出。
  • [ ] 我确认数量没有多写一个零。
  • [ ] 我确认数量符合 A 股基础交易单位要求。
  • [ ] 我确认价格没有超过涨跌停边界。
  • [ ] 我确认买入后单票仓位不超限。
  • [ ] 我确认账户总仓位不超限。
  • [ ] 我确认可用资金留有费用和滑点余量。
  • [ ] 我确认今天没有触发单日损失停止线。
  • [ ] 我确认行情、持仓、资金不是过期快照。
  • [ ] 我确认同一信号没有生成重复订单。

练习 2:判断风控结果

模拟情景应通过吗理由
买入后单票仓位从 18% 变为 23%,上限为 20%不通过超过单票仓位上限
账户可用资金 50000 元,订单预计占用 49800 元且未留费用余量不通过资金边界过紧
股票不在策略白名单,但信号分数很高不通过覆盖范围优先于信号强弱
今天已达到单日最大亏损线,策略又出现买入信号不通过应停止新增风险
数量符合规则,资金充足,价格在允许范围内,未触发限制可通过基础风控无阻断项

练习 3:写下你的三条红线

请为自己的模拟账户写三条不可突破的规则。

  • 我的单只股票最大仓位:____%。
  • 我的单笔订单最大占用资金:____%。
  • 我的单日最大可承受损失:____%。

写完后再问自己:这些数字是为了让我更安全,还是为了让我在冲动时仍然能满仓?

如果答案偏向后者,请降低数字。


核心复盘

知识清单

  • [ ] 下单前风控发生在订单提交之前,目标是拦住明显不该发生的交易。
  • [ ] 风控不负责预测涨跌,它负责检查价格、数量、资金、持仓、仓位和规则。
  • [ ] A 股交易要重视涨跌停、数量单位、可用资金和可卖持仓等约束。
  • [ ] 黑名单和白名单能防止策略交易不该覆盖的标的。
  • [ ] 单日损失限制能把“今天到此为止”写成系统规则。
  • [ ] 风控结论必须带原因,否则无法复盘和改进。
  • [ ] 一张下单前检查表,能让很多小错误在进入市场前就被发现。

金句总结

真正成熟的风控,不是让你永远不亏,而是让错误没有机会放大成灾难。

本文档仅供学习交流用途,不构成任何投资建议。股市有风险,入市需谨慎。