返回项目

QQQ Live 实盘交易系统

QQQ 0DTE 实盘交易系统 v6.2,实时 K 线订阅,双路径突破信号,桌面+Web 双面板,系统托盘常驻,看门狗崩溃恢复。

Python / Tkinter / Flask / Longbridge API / PyInstaller已开源
PythonLongbridgeTkinterPyInstaller

系统概述

QQQ Live 是面向实盘环境的 QQQ 0DTE 交易系统。与侧重策略研究的量化交易系统不同,QQQ Live 的设计重心是稳定性和可靠性——在长达 6.5 小时的美股交易时段内,系统必须持续稳定运行,任何中断都可能造成交易损失。

v6.2 是当前的生产版本,已经在实盘环境中运行了数十个交易日。


实时 K 线订阅

系统通过 Longbridge API 的 WebSocket 接口实时订阅 QQQ 的 1 分钟 K 线数据:

  • 数据源:Longbridge OpenAPI WebSocket 实时推送
  • 数据粒度:1 分钟 K 线(开高低收 + 成交量)
  • 延迟:端到端延迟低于 500ms
  • 断线恢复:自动检测连接状态,断线后 3 秒内自动重连
  • 数据校验:每根 K 线到达后校验时间戳连续性,防止数据丢失

K 线缓存机制

系统在内存中维护一个滚动的 K 线缓存窗口:

  • 缓存最近 200 根 1 分钟 K 线
  • 每收到新 K 线,自动更新技术指标(SMA、EMA、RSI、布林带等)
  • 缓存数据同时写入本地 SQLite 数据库,防止进程崩溃导致数据丢失

双路径突破信号

系统继承了量化交易系统的双路径突破策略,并针对实盘环境做了优化:

经典路径

  • 价格突破 N 周期高低点 + 放量确认
  • 选择 Delta 0.3-0.5 的平值合约
  • 最长持仓 30 分钟

加速路径

  • 价格斜率突变检测
  • 选择 Delta 0.5-0.7 的实值合约
  • 最长持仓 15 分钟

实盘优化

与回测版本相比,实盘版本做了以下优化:

  • 滑点模拟:开仓价格加入 0.02 美元的滑点假设
  • 流动性检查:开仓前检查期权合约的买卖价差,价差过大则跳过
  • 仓位限制:单笔交易不超过账户资金的 10%,同时持仓不超过 3 笔
  • 冷却期:平仓后强制等待 2 分钟,避免情绪化连续交易

Tkinter 桌面控制面板

系统提供基于 Tkinter 的原生桌面 GUI,适合在 Windows 桌面上常驻运行:

主界面

  • 行情面板:QQQ 实时价格、涨跌幅、VIX 指数
  • 信号面板:5 个引擎的实时信号状态(绿灯=看多,红灯=看空,灰灯=无信号)
  • 持仓面板:当前持仓的合约代码、成本、数量、盈亏
  • 资金面板:账户余额、可用资金、当日盈亏

操作按钮

  • 一键启停:开始/暂停自动交易
  • 手动平仓:选中持仓后一键平仓
  • 参数调整:实时调整止损比例、仓位大小等参数
  • 查看日志:弹出交易日志窗口

界面风格

采用深色主题,与交易终端风格一致。所有数据每秒刷新一次,确保信息实时性。


Flask Web 仪表盘

除桌面 GUI 外,系统还提供基于 Flask 的 Web 仪表盘:

  • 远程监控:通过手机浏览器查看交易状态
  • 响应式布局:适配手机和桌面浏览器
  • 实时数据:通过 WebSocket 推送,无需手动刷新
  • 交易记录:按日期查看历史交易明细

Web 仪表盘运行在本地端口 5000,仅限局域网访问。如果需要远程访问,可配合内网穿透工具使用。


系统托盘常驻

系统支持最小化到 Windows 系统托盘,不占用任务栏空间:

  • 托盘图标:绿色=运行中,黄色=暂停,红色=异常
  • 右键菜单:显示主界面、暂停交易、查看日志、退出系统
  • 气泡通知:开仓/平仓时在托盘区域弹出通知气泡
  • 单实例保护:防止重复启动,第二次启动时自动激活已有窗口

PyInstaller 打包

系统通过 PyInstaller 打包为独立的 Windows 可执行文件(.exe),无需安装 Python 环境:

打包配置

  • 单文件模式:所有依赖打包为单个 exe 文件
  • 无控制台:GUI 程序不显示命令行窗口
  • 图标自定义:使用自定义的交易图标
  • 版本信息:嵌入版本号和版权信息

打包大小

最终 exe 文件约 80MB,包含 Python 运行时、所有依赖库和资源文件。

启动优化

  • 首次启动约 3-5 秒(解压依赖)
  • 后续启动约 2 秒(使用缓存)

看门狗崩溃恢复

这是实盘系统最重要的安全机制。系统内置看门狗(Watchdog)进程,负责监控主程序的健康状态:

监控机制

  • 心跳检测:主程序每 10 秒向看门狗发送心跳包
  • 超时判定:连续 30 秒未收到心跳,判定为主程序崩溃
  • 进程检查:同时检查主进程是否存活

恢复策略

  1. 自动重启:看门狗自动重启主程序
  2. 状态恢复:从 SQLite 数据库恢复最近的持仓和交易状态
  3. 持仓检查:重启后立即查询 Longbridge API,确认实际持仓与系统记录一致
  4. 异常上报:通过飞书通知发送崩溃报告,包含崩溃时间和恢复状态

日志系统

  • 所有操作记录到本地日志文件(按日期分割)
  • 日志级别:DEBUG / INFO / WARNING / ERROR
  • 崩溃时自动保存最近 1000 条日志用于排查

交易复盘

系统内置交易复盘功能,每日收盘后自动生成复盘报告:

  • 交易统计:总交易笔数、胜率、盈亏比、最大单笔盈亏
  • 信号统计:各引擎的信号触发次数和胜率
  • 资金曲线:当日账户净值变化曲线
  • 改进建议:基于当日交易数据,自动标注需要优化的参数

技术栈

| 层级 | 技术 | |------|------| | 交易引擎 | Python, NumPy, Pandas | | 桌面 GUI | Tkinter, pystray | | Web 服务 | Flask | | API 通信 | Longbridge OpenAPI (WebSocket + REST) | | 数据存储 | SQLite | | 日志 | Python logging | | 打包 | PyInstaller | | 通知 | 飞书 Webhook, Windows Toast | | 看门狗 | multiprocessing |


版本迭代

| 版本 | 主要变更 | |------|---------| | v1.0 | 基础策略,命令行运行 | | v3.0 | 加入 Tkinter GUI | | v5.0 | Longbridge API 集成,实盘交易 | | v6.0 | 看门狗崩溃恢复,系统托盘 | | v6.2 | PyInstaller 打包,Web 仪表盘,飞书通知 |

微信交流群

有问题可以进交流群讨论