前言成交、断线、风控触发若各写各的钉钉 webhook消息又碎又难查。天勤TqSdk在tqsdk.lib提供TqNotify以reference/tqsdk.lib.rst为准用于在wait_update循环里收集通知类事件再统一转发到钉钉、邮件或日志。下面说明它和手写 print 的区别、最小集成方式、与业务告警的分流原则。具体类名、方法以你本地安装的文档为准。一、为什么要集中收集分散写法的问题成交在 A 处 print断线在 B 处发钉钉格式不统一漏接某一类回报复盘对不上测试环境误发到生产群集中收集后可在一个函数里按event类型决定只写文件、发即时告警、或静默计数。二、典型事件类型概念常见需要关注的包括名称以文档为准委托状态变化、成交通知连接断开、重连成功风控或紧急停止触发策略业务信号如「均线金叉」仍建议走自己的结构化日志不必全部塞进 Notify避免与柜台事件混淆。三、最小集成示意fromtqsdkimportTqApi,TqAuth,TqSimfromtqsdk.libimportTqNotify apiTqApi(TqSim(),authTqAuth(账户,密码))notifyTqNotify(api)# 构造以文档为准defdispatch(msg):# 统一出口写日志 / 调钉钉 / 分级print(NOTIFY,msg)whileTrue:api.wait_update()# 以文档示例从 notify 取本帧待处理消息foriteminnotify.get_messages():# 方法名占位以文档为准dispatch(item)# 策略逻辑...api.close()集成前在模拟盘造一笔成交、断一次网确认dispatch能收到预期条目。方法名若与上文不同只信官方demo与reference/tqsdk.lib.rst。四、与钉钉文档配合advanced/dingding.rst通常说明 webhook 配置。推荐架构wait_update → TqNotify 收集 → dispatch() ├─ 文件日志全量 ├─ 钉钉仅 alert 级 └─ 邮件日报避免每笔成交都推钉钉否则夜盘易被刷屏成交明细进 CSV 日志即可。五、频率与去重同一委托多次状态更新可能连续多条 notify。可在dispatch里对order_id status去重或合并 5 秒内同类消息。断线告警应限流例如 10 分钟内只发一次「连接异常」恢复后再发「已恢复」。六、和策略异常的关系try/except捕获的 Python 异常不一定进TqNotify应在except里显式dispatch或写 error 日志。Notify 偏柜台与 SDK 层事件不是万能异常钩子。总结成交回报、断线、风控触发等 SDK 层事件可用TqNotify在wait_update循环里统一收集再经一个dispatch出口分级全量写文件日志仅 alert 级发钉钉或邮件。均线金叉等业务信号仍走自建结构化日志与柜台事件分开避免复盘混淆。Pythontry/except里的策略异常不会自动进 Notify需在except中显式记录。集成时要对同一order_id状态去重或合并短时重复消息断线类告警宜限流如 10 分钟一条恢复后再发一条恢复通知。每笔成交都推钉钉会在夜盘刷屏成交明细进 CSV 即可。每账户一个api、一个 notify 实例集成前在模拟盘造成交与断网验证dispatch是否收到条目方法名以本地reference/tqsdk.lib.rst为准。建议先实现「全部进文件」对照无误再开即时推送与advanced/dingding.rst的 webhook 配置、进程外心跳监控一起纳入无人值守清单。FAQ1没有 TqNotify 旧版本升级 TqSdk 或回退为手写 order 状态监控。2Notify 会漏吗依赖 wait_update主循环阻塞仍会延误勿 long sleep。3多账户每 api 一个 notify 实例。4回测有 notify 吗视环境而定实盘前在 TqKq 测。风险提示本文用于运维通知技术说明不构成投资建议。