当前位置: 首页 > news >正文

期货量化告警太吵怎么控频:天勤 TqNotify 与业务信号分级

前言

国内期货量化策略上线后,程序 7×24 跑在服务器:天勤TqApi主循环里wait_update()推进,每根 5 分钟 K 线收盘可能算出「螺纹钢均线金叉」这类交易信号,有人把信号原文直接推到钉钉群;同时柜台还可能回报断线、拒单、成交。若全部即时推送,群消息一分钟几十条「金叉/死叉」,真正重要的「行情停更半小时」「连续资金不足拒单」反而被淹没。

天勤在tqsdk.lib提供TqNotify:在wait_update循环里用get_notifies()批量取服务器侧通知,适合接连接、柜台类事件。业务交易信号、风控触发则应走自建结构化日志,再按级别限频分流。下面说明怎么拆通道、怎么设冷却时间,让手机只响该响的。

一、TqNotify 做什么

fromtqsdkimportTqApi,TqAuth,TqKq,TqNotify api=TqApi(account=TqKq(),auth=TqAuth("账户","密码"))notify=TqNotify(api)whileTrue:api.wait_update()forninnotify.get_notifies():handle_server_notify(n)# 按 n 的内容分类

get_notifies()返回自上次调用以来新增的通知列表,无新通知则[]。适合接柜台、连接类事件,不适合每根 K 线都发。

二、三级分流建议

级别内容通道限频
L0 静默常规信号、心跳仅写文件无上限
L1 日报成交汇总、日终权益邮件/群摘要日 1 次
L2 即时断线、连续拒单、emergency钉钉/短信同类型 5 分钟 1 条

业务信号(target 变化)记 jsonl,默认不推送。只有emergencyrisk_ratio超阈值才升 L2。

三、限频实现示意

importtime _last_alert={}defalert_l2(key,msg,cooldown=300):now=time.time()ifnow-_last_alert.get(key,0)<cooldown:return_last_alert[key]=now send_dingtalk(msg)

TqNotify解析出的同类断线通知也用key="disconnect"限频,避免重连抖动连发。

四、与手写监控的关系

夜盘监控专题里的quote.datetimestale、volume_left僵死等,应汇总成 L2,而不是每个 symbol 单独轰炸。成交可用 L0 记全量,L1 只发日累计。

五、测试环境隔离

mode=sim的 webhook 指向测试群;配置从环境变量读,避免模拟盘告警进生产群(与日志脱敏同一习惯)。

六、业务信号该记什么但不推送

建议在 jsonl 里记:event=signalbar_datetimesymboltargetposreason,默认不调用钉钉。只有event=emergencyrisk_ratio超阈值才升 L2。均线金叉一天可能十几次,推送毫无意义;连续三次last_msg含资金不足则必须推送。

七、夜盘值守摘要模板

L1 日终一条 Markdown 摘要即可:

  • 当日balance起止
  • 成交笔数、手续费
  • 拒单次数 Top3last_msg
  • 断线次数

由定时任务在夜盘结束触发,不打扰白天。

八、TqNotify 与自建监控的组合

TqNotify偏柜台与连接;quote.datetimestale、volume_left僵死等需自建规则。两者都走handle_notify,用不同key限频,避免双通道重复发同一件事。

总结

告警太吵,是因为把研究信号和运维事件混在一个通道里。天勤TqNotify负责收服务器通知,适合断线、柜台类事件;均线信号等应写结构化日志并默认静默。给 L2 即时告警加同类冷却时间,日终再用 L1 摘要成交与权益,手机才不会在夜盘被无效消息占满。

FAQ

1)TqNotify 和 get_trade 区别?

Notify 是服务端通知流;成交以get_trade为准。

2)能否过滤 notify 内容?

handle_server_notify里按字段丢弃无关项。

3)信号要不要推送?

看团队习惯;默认建议只记日志。

4)Webhook 怎么接?

alert_l2里用requests.post调钉钉机器人即可,URL 放环境变量,勿写进仓库。


本文基于天勤 TqSdk 公开 API 整理,不构成投资建议。

http://www.jsqmd.com/news/990245/

相关文章:

  • Streamlit Session State 实战指南:解决状态丢失与跨组件通信
  • 如何快速实现Figma中文界面:figmaCN的完整使用指南
  • 手把手教你用UVM搭建DW_APB_I2C验证环境:从Scoreboard到中断处理的避坑指南
  • 如何通过智能游戏辅助工具提升英雄联盟操作效率:5个核心功能详解
  • 别再死磕论文了!用labml-nn这个带注释的PyTorch库,5分钟看懂Transformer核心代码
  • 针对复杂表格解析应该选取怎样的文档解析工具?
  • 3分钟掌握NCM格式解密:ncmppGui极速转换工具完全指南
  • 如何让老旧视频焕发新生:Squirrel-RIFE AI补帧终极指南
  • Sublime Text 3 Build 3114 Windows 安装版(含图文安装指引)
  • Maya一键从模型边缘生成可调曲线:专为宝石切面与硬表面建模优化的Python工具
  • 如何永久保存你的QQ空间青春记忆:GetQzonehistory完整备份指南
  • 保姆级教程:用FPGA+SPI搞定TDC-GPX2寄存器配置,实测单通道时间间隔测量
  • 2026南京黄金回收价格表避坑技巧与商家推荐 - 余生黄金回收
  • 2026 无锡彩钢瓦修缮 TOP4 权威推荐(全区域服务 + 避坑指南) - 本地便民网
  • 保护家庭内部的纯净氛围。
  • 济南闲置黄金变现 六家正规回收门店盘点 - 余生黄金回收
  • 2026年吨包卸料站厂家推荐榜单:化工厂/医药厂/新能源材料行业高效环保之选 - 品牌发掘
  • 干了5年半导体,我常用的10个工具(附推荐理由)
  • 剪映自动化终极指南:如何用Python代码批量处理1000个视频
  • 5个实战技巧:让FanControl风扇控制软件发挥最大效能
  • Streamlit Session State 实战指南:解决状态丢失与多步表单
  • C 语言 sizeof 完全用法指南
  • 荐书|让企业文化真正成为核心竞争力,我推荐你看这本书
  • 重塑数据分析思维:Statistical Rethinking 2023如何用贝叶斯方法解决复杂问题
  • 手把手教你用FPGA实现FSK解调:从Matlab仿真到Verilog代码的保姆级流程
  • 做好Core Web Vitals优化,你的AI引用率可以提升24%
  • Behdad字体实战指南:如何为波斯语项目选择最佳开源字体
  • SpringBoot开发秘籍:轻松应对企业级项目挑战
  • 数据的加密与解密(05:23)
  • 国民技术N32G45X实战:手把手教你为3.5寸ILI9488屏移植LVGL 8.3(附完整工程)