乐于分享
好东西不私藏

一个指令的奇幻漂流:从发出到成交,软件里经历了哪些关卡?

一个指令的奇幻漂流:从发出到成交,软件里经历了哪些关卡?

🔗 接上篇: 我们聊了骨架(事件驱动、看门狗、主备切换)。今天把镜头拉近,聚焦一条指令本身

🤔 核心问题: 策略说"买",程序就真的买了吗?
🛤️ 真实路径: 一个订单从"意图"到"成交",要走过七站路,经过两道风控闸门

💡 主编视角: 策略是面子(看得见),订单管理是里子(看不见)。里子不牢,面子必倒。

🚥 第一站:信号生成 —— 从"想法"到"意图"

🧠 起点:策略引擎。

📈触发:行情满足N个条件(价格站上均线+成交量配合)。
💬产出:一句话——"买入,某品种,某价,某量"

⚠️注意:这还不是订单,只是一个意图(Signal)。策略只管判断,不管执行。
📤动作:把意图打包丢给风控模块,然后回头继续看盘。

💡主编解读: 这一步像大脑说"我想喝水",但手还没动。

🛡️ 第二站:风控检查(一) —— 安检员拦下"出格"的想法

🚧 角色:风控模块(安检员)。

🔍查什么:
  ▪️ 仓位重不重?
  ▪️ 单笔止损会不会亏太多?
  ▪️ 今天撤单超没超?
  ▪️ 这个品种今天是不是下太多了?

📏标准:预设的数值红线(比如单笔亏损≤1%总资金)。
通过:放行。
不通过:直接丢弃信号,不打招呼,后面环节不知道有过这回事。

💡主编解读:这是第一道闸门,把明显作死的指令按死在摇篮里。它的价值是保命

📦 第三站:订单构建 —— 把"想法"包装成"快递盒"

🏗️ 地点:执行网关。

📝任务:把粗糙的"意图"变成格式完整、外面能看懂的订单。

补齐信息:
  ▪️ 订单类型(限价/市价)。
  ▪️ 有效期(当日有效/直到撤销)。
  ▪️ 唯一编号(Order ID)。
  ▪️ 账户标签。

🎁结果:一个规规整整的订单正式"出生",状态变为:待发送

💡主编解读:策略说"寄封信",执行网关负责写信封、贴邮票、写地址。没有信封,邮局不收。

🛡️ 第四站:风控检查(二) —— 最后看一眼"快递盒"

🔍 查什么:跟第一道不一样,这次查执行层面
  ▪️ 订单编号重复了吗?
  ▪️ 价格离市价偏离太离谱吗?
  ▪️ 数量超过单笔上限了吗?

🤔为什么查两次:因为第一次查的时候,信息还不完整(没编号、没类型)。现在全齐了,再查一遍更保险。
通过:进入发送队列。
不通过:丢弃订单,记日志。

💡主编解读:这是第二道闸门,防的是第一道漏网的鱼。双层安检,虽然烦,但安全。

📡 第五站:发送与等待回报 —— 悬在半空的"薛定谔的订单"

📤 发送

执行网关把订单通过网线发到券商/交易所。
状态更新:待发送 → 待回报


⏳ 等待(最煎熬的时刻)

时间不确定:几十毫秒到几秒。
可能永远不回来(网络丢包、券商故障)。
⏱️ 超时机制: 设一个上限(比如3次重试)。
  ▪️ 重试成功 → 万事大吉。
  ▪️ 重试失败 → 标为失败,记告警日志。

💡 主编解读: 订单像寄出的快递,悬在半空,不知道是丢了、卡住了,还是正在派送。

📨 第六站:回报处理 —— 快递签收了,更新状态

📬 回报回来:执行网关接住,拆开看结果。

📝更新状态:
  ▪️全部成交→ 状态:已成交。
  ▪️部分成交→ 状态:部分成交(剩余继续挂)。
  ▪️被拒绝→ 状态:已拒绝(记原因)。

🔙回传策略:必须把新状态告诉策略引擎。
⚠️如果不回传:策略可能以为单子没成,又发一个同样的信号 →下重了

💡主编解读: 这一步像快递员敲门说"签收了",你得把家里的库存记录改了。忘了改,就乱了。

📊 第七站:风控更新 —— 悄悄挪动的基准线

📈 动作:风控模块根据成交结果,更新累积统计值

🔢更新什么:
  ▪️ 今天成交了多少笔?
  ▪️ 总成交量多少?
  ▪️ 当天浮动盈亏多少?
  ▪️ 最大回撤基准线挪到哪了?

📏意义:下一次风控检查,用的就是这些新数字。
💡主编解读:每一笔成交,不只是账户钱变了,风控的尺子也在悄悄挪。尺子不准,量什么都错。

📌 一个订单的"一生"总结

从模糊的意图出发,
安检员拦两次,
包装成规整的快递盒
顺着网线寄出去
悬在半空等回音
签收后更新状态
最后让风控的尺子挪一格。

底下的东西(订单管理)做得不扎实,
面上的东西(策略)迟早要塌。
下一篇,我们聊怎么用状态机来管理这些复杂的状态变化。

⚠️ 风险提示: 本文纯属软件工程层面的技术科普,介绍订单生命周期管理的基本流程与设计思路。文中不涉及任何具体交易策略、投资建议或代码实现。技术架构设计需结合实际业务场景,请审慎评估。

📌 标签: #程序化交易 #订单管理 #订单生命周期 #软件架构

💬 互动话题: 你写策略的时候,有没有遇到过"明明发了单但状态对不上"的灵异事件?后来发现是哪个环节漏了吗?评论区聊聊你的踩坑经历! 👇