Skip to content

11.1 实盘系统架构

课前导读

学习目标

学完能解决什么困惑:为什么回测里一行“买入”到实盘里会变成一整套高风险工程流程。 难度:advanced 用时:约 40 分钟 适合对象:已经学过组合、回测和实盘差异,准备把策略从研究环境推进到模拟盘观察的 A 股新手。

你刚学完回测到实盘的差异,可能会产生一个很自然的念头: 既然策略已经能给出信号,能不能让程序自动帮我交易? 本节先把答案放在最前面:实盘系统不是自动赚钱按钮,而是会接触真实资金的工程系统。 它更像机场塔台,也像工厂流水线。 塔台不能只看“飞机想起飞”,还要看天气、跑道、燃油、通信和紧急预案。 流水线不能只看“产品要出厂”,还要检查原料、工序、质检、包装和追溯记录。 实盘交易也是这样。 一个信号从数据里出现,到真正影响账户资金,中间必须经过数据、信号、风控、订单、监控、日志六道关。 任一环节出错,都可能把研究里的小误差放大成真实账户里的亏损。 所以本章的态度不是鼓励你立刻自动化交易。 而是帮助你知道:在模拟盘、人工确认、小资金观察之前,任何“全自动实盘”都不应该被视为成熟。

知识正文

1. 类比:实盘系统像机场塔台

想象一座机场。 飞机相当于一笔交易。 乘客相当于你的资金。 航班计划相当于策略信号。 塔台相当于风控与监控系统。 如果航班计划写着“9:35 起飞”,飞机就能直接冲上跑道吗? 当然不能。 塔台还要确认跑道是否空闲。 还要确认天气是否适合起飞。 还要确认飞机状态、飞行员状态、通信状态。 如果其中任何一项异常,起飞指令就必须延后或取消。

实盘系统也一样。 回测里的一条买入信号,只是“航班计划”。 它不是最终动作。 你还要问:数据可靠吗? 信号是否重复触发? 今天是否停牌? 是否涨停买不到? 是否超过单票仓位上限? 是否和组合风险预算冲突? 是否需要人工确认? 是否已经留下日志方便复盘? 这些问题全部回答清楚,才有资格进入下一步。

2. 类比:实盘系统也像工厂流水线

另一种类比是工厂。 数据是原材料。 策略是加工工艺。 风控是质检员。 订单模块是包装与出货口。 监控是车间看板。 日志是每件产品的追溯单。 如果原材料混进了坏料,后面工艺再精细也会生产坏产品。 如果质检员睡着了,坏产品就会直接出厂。 如果出货口把数量贴错标签,客户收到的就不是计划中的东西。 如果没有追溯单,事后连哪里出错都查不到。

这就是实盘系统最重要的工程观: 它不是一个函数,也不是一个按钮。 它是一条链路。 链路上每个节点都要有输入、输出、检查、失败处理和记录。 初学者容易把“策略逻辑”看得太重,却忽视链路安全。 专业投资者反而会先问:系统坏掉时,会不会自动伤害账户? 量化开发会继续追问:坏掉时能不能被发现、被拦截、被复盘?

3. 从术语上拆开实盘链路

先用最少术语建立地图。 本节的“实盘系统架构”,指的是程序如何从市场信息走到交易动作,并把全过程记录下来的结构。 它至少包含六个模块。

模块像什么新手要问的问题主要风险
数据原材料仓库数据是否及时、完整、口径一致缺失、延迟、复权错误、公告时间误用
信号航班计划规则是否明确、是否重复触发信号误判、偷看未来、噪声过多
风控塔台质检是否超过仓位、回撤、流动性限制满仓、单票过大、连续亏损仍加码
订单出货口动作是否需要人工确认数量错误、价格错误、重复提交
监控车间看板异常是否能及时发现系统卡住、数据断流、状态不明
日志追溯单事后能否知道发生了什么无法复盘、无法定位责任

注意,这里的订单模块只讨论概念和风险。 本课程不会提供真实券商接口接入步骤,也不会提供可直接用于实盘的自动下单代码。 原因很简单:读者仍处在学习阶段,真实下单涉及资金安全、账户权限、合规边界和个人责任。 我们要先学会“看懂系统”,而不是急着“连接系统”。

4. 一张安全链路图

下面这张图展示的是安全顺序。 它不是让你照着开发自动下单程序。 它是帮助你理解,每一步都应该能被停止。

mermaid
graph TD
  A["数据进入"] --> B["数据校验"]
  B --> C["生成候选信号"]
  C --> D["风控检查"]
  D --> E["人工确认"]
  E --> F["模拟盘执行"]
  F --> G["运行监控"]
  G --> H["日志与复盘"]
  D --> I["触发拒绝"]
  I --> H
  G --> J["发现异常"]
  J --> K["暂停系统"]
  K --> H

这张图最值得关注的是两个地方。 第一,风控检查后可以“触发拒绝”。 第二,监控发现异常后可以“暂停系统”。 成熟系统的关键,不是永远正确。 成熟系统的关键,是出错时不会继续扩大伤害。

5. 数据模块:不要让脏水进入水管

A 股数据看起来只是价格和成交量,但实盘里非常容易出错。 例如,某只股票当天停牌,行情软件里可能显示前一日收盘价。 如果程序不知道这是停牌,可能误以为价格没有变化。 又如,公司发生分红送转,复权口径没有统一,均线和收益率可能被扭曲。 再如,公告在收盘后才披露,回测如果把它当成盘中已知信息,就属于偷看未来。

所以数据模块至少要检查四件事。 第一,时间是否正确。 第二,字段是否完整。 第三,口径是否一致。 第四,异常是否被记录。 这四件事看似无聊,却比多加一个复杂指标更重要。 因为错误数据进入系统,就像机场收到错误天气报告。 塔台后续再专业,也可能做出错误指令。

6. 信号模块:信号只是建议,不是命令

信号是策略根据规则给出的提示。 比如“某只股票收盘价站上 20 日均线,成交量放大,进入观察名单”。 在回测里,信号经常被简化成买入或卖出。 在实盘系统里,信号更应该被看作“候选建议”。 它需要接受风控、交易规则、人工确认和观察期的二次过滤。

A 股新手尤其要警惕三类信号。 第一类是太频繁的信号。 它会推高交易成本,让你陷入忙碌但不赚钱的状态。 第二类是边界模糊的信号。 比如“走势不错就买”,这种话无法交给系统稳定执行。 第三类是无法解释的信号。 如果你只知道模型输出了买入,却说不清风险来自哪里,那么进入实盘就很危险。

7. 风控模块:先问能亏多少,再问能赚多少

风控是实盘系统的刹车。 没有刹车的车,发动机越强越危险。 风控至少要覆盖三个层级。 第一层是单笔交易。 这一笔最多允许亏多少钱? 第二层是单只股票。 某只股票最多占账户多少比例? 第三层是组合整体。 如果账户连续回撤,是否暂停新增风险?

A 股语境下,还要考虑涨跌停、停牌、T+1 和流动性。 例如,你计划跌破止损线就卖出。 但如果当天直接跌停,可能卖不出去。 又如,你今天买入后发现判断错了,A 股普通股票当天不能卖出。 这意味着系统的风控不能只写“触发就卖”。 它还要写“卖不掉怎么办”。 这就是从回测思维走向实盘工程思维的关键一步。

8. 订单模块:最容易把小错误变成真钱损失

订单模块负责把经过确认的动作转成交易指令。 本节只讲风险,不讲真实接口实现。 订单模块最怕三种错误。 第一,方向错误。 本来要卖出,却变成买入。 第二,数量错误。 本来只想买一小笔,却因为单位理解错误买成过大仓位。 第三,重复提交。 网络或程序状态不清楚时,同一个意图被提交多次。

所以学习阶段必须把人工确认放在订单前。 你可以让系统生成“建议操作单”。 但真正是否执行,应由人检查证券代码、名称、方向、数量、价格、理由和风险边界。 模拟盘阶段也要这样做。 目的不是装得专业,而是训练你在真实资金前建立刹车习惯。

9. 监控模块:盯住系统,而不是盯住幻想收益

很多新手以为实盘监控就是看收益曲线。 其实收益只是结果。 真正的系统监控要先看健康状态。 数据有没有更新? 策略有没有按计划运行? 风控有没有拒绝异常信号? 模拟盘委托有没有出现未成交? 日志有没有正常写入? 如果这些问题没有答案,收益曲线再漂亮也不可靠。

可以把监控面板分为三层。 第一层是系统是否活着。 第二层是交易流程是否符合计划。 第三层才是收益和回撤。 专业开发者不会只问“赚没赚钱”。 他们会先问“这个结果是不是由正确流程产生的”。

10. 日志模块:没有记录,就没有复盘

日志不是给程序员看的废话。 日志是投资者保护自己的证据。 一次完整的实盘观察至少要记录以下内容。 信号产生时间。 信号依据。 风控检查结果。 人工确认人和确认时间。 模拟盘执行结果。 异常与处理。 收盘后复盘结论。

没有日志,你只能靠记忆复盘。 而记忆很容易美化自己、淡化错误。 有日志,错误会变得刺眼。 这虽然不舒服,却是进步的开始。

11. A 股案例:一个“看似简单”的均线信号

假设你观察一只沪深主板股票。 规则写得很简单:收盘价站上 20 日均线,成交量高于过去 5 日均量,就进入买入候选。 回测里,这可能只是一行记录。 到了实盘观察,它至少要经历下面的检查。

检查点具体问题可能结果
数据检查今天数据是否完整,股票是否停牌不完整就不生成信号
信号检查是否真的收盘后才确认,而不是盘中误判盘中信号只做观察
风控检查单票仓位是否超过上限,组合回撤是否过大超限就拒绝
交易现实是否涨停、是否流动性不足不能假设一定成交
人工确认代码、名称、理由、风险是否一致不一致就暂停
模拟盘记录模拟委托是否成交,成交价格是否偏离记录差异
复盘次日和一周后是否符合预期形成改进动作

你会发现,真正专业的地方不在于信号多复杂。 而在于每一步都有“不做”的条件。 实盘系统必须允许自己说“不”。

12. 伪代码:用中文描述安全门,不描述真实下单

下面是学习用的流程伪代码。 它故意不涉及真实券商接口,也不能直接用于实盘下单。 你只需要理解顺序。

text
如果 数据未通过校验:
    记录原因,停止本轮观察
如果 信号不满足规则:
    记录为无操作
如果 信号满足规则:
    进入风控检查
如果 风控不通过:
    拒绝动作,写入日志
如果 风控通过:
    生成待确认清单
如果 人工确认不通过:
    不执行,记录修改意见
如果 人工确认通过:
    仅在模拟盘记录观察结果
收盘后:
    对信号、风控、模拟成交和异常进行复盘

这段伪代码的核心不是“执行”。 它的核心是“停止”。 能够停止,才是安全系统的第一特征。

交互实验室

练习:画出你的实盘前安全流水线

请不要连接任何真实交易账户。 请用纸、表格或笔记软件完成下面的低风险练习。 把你正在研究的一条策略信号,拆成六个模块。

模块你要填写的内容合格标准
数据数据来源、更新时间、字段、异常处理能说清今天数据是否可用
信号触发条件、失效条件、不做条件能用“是/否”判断
风控单笔风险、单票上限、组合暂停线先限制亏损再考虑收益
订单是否只生成待确认清单不出现真实自动下单动作
监控每天检查哪些状态至少包含数据、风控、日志
日志记录哪些字段事后能还原全过程

自测问题

  1. 如果今天行情数据缺失,你的系统会继续生成信号吗?
  2. 如果某只股票涨停买不到,你的复盘会把它当作成功买入吗?
  3. 如果组合已经触发暂停交易规则,单个信号再漂亮还能执行吗?
  4. 如果模拟盘连续三次出现明显成交偏差,你会继续扩大资金吗?
  5. 如果没有日志,你如何证明自己不是事后找理由?

低风险行动

本周只做一件事: 选择一条你已经回测过的规则。 把它改写成“数据、信号、风控、待确认、模拟盘、日志”六列表格。 连续观察 5 个交易日。 只记录,不下真实自动单。 如果 5 天内出现任何一次数据异常、信号不清、风控冲突或记录缺失,就不要进入下一阶段。

核心复盘

知识清单

  • [ ] 我能把实盘系统理解为数据、信号、风控、订单、监控、日志组成的链路。
  • [ ] 我知道回测信号只是候选建议,不是自动执行命令。
  • [ ] 我能解释为什么 A 股涨跌停、停牌、T+1 和流动性会影响实盘结果。
  • [ ] 我知道订单模块最怕方向、数量和重复提交错误。
  • [ ] 我能设计一个只进入模拟盘、不连接真实账户的安全观察流程。
  • [ ] 我理解没有日志就无法复盘,也无法定位系统错误。

金句总结

实盘系统的第一目标不是让你更快下单,而是在错误发生时更早停下来。

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