
Posts开源 QQQ 0DTE 期权自动交易系统 — 部署指南

上次开源了方案很多人不会用,这次直接把做好的系统源代码给你们随便用!
手动做 0DTE 期权太累?我用 Python 搭了一套完整的 QQQ 零日到期期权自动交易系统,支持双路径突破信号检测、市场状态自适应、三阶段动态止盈。已开源到 GitHub,本文详细介绍系统设计和核心功能。
为什么做这个系统?
做 0DTE 期权交易的朋友都知道痛点:
- 反应慢:期权价格每秒都在变,手动操作永远跟不上
- 情绪干扰:该止损时心存侥幸,该止盈时贪心不足
- 策略执行不一致:明明有规则,一到关键时刻就手抖
所以我决定把策略写成代码——信号检测、下单执行、止盈止损全自动,人只需要负责监控和调参。
系统基于 Longbridge OpenAPI 构建,实时订阅 QQQ 行情,检测到突破信号后自动选择 0DTE 期权合约、下单、管理仓位。
系统架构
整个系统分为几层:

技术栈:
| 组件 | 技术选型 |
|---|---|
| 交易引擎 | Python 3.14 + NumPy + SciPy |
| API 通信 | Longbridge OpenAPI (WebSocket + REST) |
| 桌面 GUI | Tkinter + pystray 系统托盘 |
| Web 仪表盘 | Python 内置 http.server,零依赖 |
| 通知 | 飞书 Webhook |
| 打包 | PyInstaller 单文件 EXE |
核心策略:双路径突破
系统的核心是 v6.2 双路径突破策略,不是单一信号,而是根据市场节奏自动切换两种模式:
Classic 模式(经典突破)
- 突破窗口:3 根 K 线(5 分钟级别)
- 量能要求:成交量 > 20 日均量 × 0.8
- 需要回踩确认:突破后等回调再入场
适用场景: 趋势明确的行情,稳扎稳打。
Accelerated 模式(加速突破)
- 突破窗口:2 根 K 线(更敏捷)
- 量能要求:成交量 > 20 日均量 × 1.2
- 近 3 根回踩检测:快速确认后入场
适用场景: 急涨急跌行情,快速响应。
两种模式自动切换——系统会根据 K 线斜率和量能变化判断当前是趋势行情还是加速行情,选择最优路径。
信号过滤:多层确认机制
触发突破信号后,还要通过多层过滤才能真正下单:
预加载滤镜(6 取 4)
每根 K 线实时计算 6 个指标状态,信号触发时只需查询,不需重算:
| 滤镜 | 做多条件 | 做空条件 |
|---|---|---|
| SMA20 | 价格 > SMA20 且上升 | 价格 < SMA20 且下降 |
| SMA50 | 价格 > SMA50 | 价格 < SMA50 |
| 当日位置 | < 85%(不在顶部做多) | > 15%(不在底部做空) |
| 趋势 | 最近 5 根 ≥ 3 阳 | 最近 5 根 ≥ 3 阴 |
| VWAP | 价格 > VWAP | 价格 < VWAP |
| MACD | MACD 柱 > 0 | MACD 柱 < 0 |
6 个中至少过 4 个才允许入场。 趋势行情下 MACD 降级为可选项(急涨初期 MACD 可能还没翻正)。
核心过滤(3 项全过)
| 过滤项 | 条件 |
|---|---|
| 成交量 | 当前量 > 20 日均量 × 倍数 |
| 动量 | K 线方向与信号方向一致 |
| K 线实体 | 实体比例 > 最小阈值 |

市场状态自适应:一套策略三种打法
这是系统最核心的设计——不是一套参数打天下,而是根据市场状态动态调整所有参数。
市场状态检测
系统每根 K 线自动检测三种市场状态:
- trending(趋势市):波动放大 + 方向一致 + 趋势强
- neutral(中性):标准参数
- choppy(震荡市):波动缩小 + 方向不一致 + 趋势弱
检测基于最近 20 根 K 线的 4 个维度:
- 波动幅度比(当前 5 根 vs 前 15 根)
- 方向一致性(同向 K 线比例)
- 趋势强度(简化 ADX:连续创新高/低次数)
- 价格位置(在 20 根范围中的位置)
参数自适应
| 参数 | 趋势市 | 中性 | 震荡市 |
|---|---|---|---|
| 突破窗口 | 3 根(等确认) | 3 根 | 2 根(极速入场) |
| 回踩确认 | 需要 | 不需要 | 不需要 |
| 预加载滤镜 | 6 取 3(放宽) | 6 取 3 | 6 取 2(更放宽) |
| 止盈平仓 | 100% 平半仓(让利润跑) | 80% 平半仓 | 50% 平半仓(快进快出) |
| 止损 | 25% | 25% | 30%(容忍震荡) |
| 超时退出 | 不设超时 | 4 分钟 | 8 分钟 |
| 仓位 | 70% | 40%(风险低) | 80% |
核心理念:
- 趋势市:顺势入场,让利润跑,不怕回撤
- 震荡市:极速入场,快进快出,小仓位
- 中性:保守操作,控制风险
风控系统

动态止盈(按市场状态调整)
趋势市:盈利 100% → 平仓 30% 仓位 → 追踪最高点回撤全平 中性: 盈利 80% → 平仓 30% 仓位 → 追踪最高点回撤全平 震荡市:盈利 50% → 平仓 30% 仓位 → 追踪最高点回撤全平
多层止损
| 止损类型 | 触发条件 | 说明 |
|---|---|---|
| 固定止损 | 亏损 >= 25% | 立即全平 |
| 时间止损 | 超时(4~8 分钟) | 按市场状态动态调整 |
| 日亏损上限 | 当日亏损 >= 25% | 当日停止交易 |
| 连亏冷却 | 连续亏损后 | 暂停交易,允许反向信号 |
| 收盘强平 | 美东 15:50 | 0DTE 必须收盘前平仓 |
仓位管理
- 单笔仓位:总资金的 8%
- 期权选择:OTM 虚值$2 行权价
- 最大同时持仓:3 个
- 信号强度→仓位倍数(强/中/弱)
Web 仪表盘
系统内置零依赖 Web 仪表盘,用 Python 内置的 http.server 实现,不需要 Flask。
设计特点:
- 深色主题,卡片式布局
- 实时更新(5 秒自动刷新)
- 移动端适配(手机浏览器也能用)
- 状态栏:引擎状态、连接状态、当前价格
- 信号过滤面板:6 个滤镜状态实时显示
- 交易记录表格:盈亏一目了然
- 事件日志:系统运行状态
启动后浏览器访问 http://localhost:8080 即可查看。
桌面应用
双击 main_app.py 启动,包含:
- Tkinter 桌面窗口:系统托盘常驻,实时监控
- 设置界面:4 个 Tab 页(信号/风控/窗口/API),在线调整参数
- API 密钥管理:首次运行弹出配置向导
- 配置热重载:修改 settings.json 后自动生效,无需重启
PyInstaller 打包
# 打包为单文件 EXE build.bat # 或 pyinstaller qqq_trading.spec
打包后双击 EXE 即可运行,无需 Python 环境。
集成 Longbridge API
行情订阅
# WebSocket 实时订阅 QQQ 1 分钟 K 线 # 自动聚合为交易信号检测所需的数据
自动下单
信号触发后自动:
- 根据正股价格 + $2 偏移 生成 OTM 虚值期权合约代码
- 通过 Longbridge REST API 市价下单
- 最多重试 2 次,间隔 500ms
期权合约生成
# Call: strike = floor(stock + 2) → 确保 OTM # Put: strike = ceil(stock - 2) → 确保 OTM # 格式: QQQ260508C710000.US
飞书通知
每笔交易关键节点推送飞书消息:
- 🟢 开仓信号:合约、方向、入场价
- 🔴 止盈止损:触发价格、盈亏比例
- ⚠️ 异常告警:连亏、API 断连、心跳超时
时区处理(关键坑点)
长桥 API 的时间戳是 HKT(UTC+8),不是美东时间!
系统内部统一使用美东时间(Eastern Time),自动处理夏令时/冬令时切换:
TZ_ET = ZoneInfo("America/New_York") # 自动 EDT/EST 切换 TZ_HKT = timezone(timedelta(hours=8)) # 交易窗口:美东 09:35-15:50 # 收盘强平:美东 15:50
安全与稳定性
看门狗
watchdog.py 监控交易引擎:
- 进程崩溃后自动重启(最多 5 次)
- 所有输出记录到日志文件
- 优雅退出(SIGINT/SIGTERM)
状态持久化
- 原子写入:先写临时文件再替换,防止崩溃时文件损坏
- 交易记录:
records/目录按日期存储 JSON - 状态文件:
state.json供仪表盘实时读取
快速开始
1. 克隆项目

开源地址在我的博客:https://1797346220.github.io/boke/projects/
2. 安装依赖
pip install -r requirements.txt
依赖列表:
- numpy, scipy(技术指标计算)
- longbridge(Longbridge SDK)
- pystray, Pillow(系统托盘)
- requests(飞书通知)
3. 配置
首次运行会弹出 API 密钥配置向导,填入 Longbridge 的 App Key、App Secret、Access Token 即可。
也可以手动编辑 settings.json 调整所有参数,修改后自动热重载。
4. 启动
# 桌面版(推荐)python main_app.py # 或使用启动脚本 start.bat
项目结构
├── main_app.py # 主入口(Tkinter GUI + 系统托盘)
├── live_trader.py # 核心交易引擎 v6.2
├── trader_web.py # Web 仪表盘
├── dashboard_web.py # 轻量 Web 仪表盘(无依赖)
├── dashboard_tk.py # Tkinter 桌面仪表盘
├── config_manager.py # 配置管理器
├── settings_gui.py # 设置界面
├── update_gist.py # 交易记录同步到 GitHub Gist
├── watchdog.py # 看门狗(崩溃自动重启)
├── backtest_v6.py # 回测引擎(Black-Scholes 定价)
├── settings.json # 交易参数配置
├── requirements.txt # Python 依赖
└── .env.example # 环境变量模板
设计理念
1. 不是一套参数打天下
市场在变,策略也要变。系统的核心创新是市场状态自适应——自动检测 trending/neutral/choppy 三种状态,动态调整所有参数。
2. 信号多层确认
不是"触发就交易",而是预加载滤镜(6 取 4)+ 核心过滤(3 项全过),层层筛选,确保信号质量。
3. 风控是生命线
25% 止损、动态超时、日亏损熔断、连亏冷却——所有参数都经过严格测试。期权波动大,风控不能松。
4. 开箱即用
首次运行有配置向导,参数修改自动热重载,PyInstaller 打包单文件 EXE——降低使用门槛。
免责声明
⚠️ 本系统仅供学习和研究,不构成投资建议。
- 期权交易风险极高,可能损失全部本金
- 建议先用模拟账户充分测试
- 实盘使用前请仔细检查所有参数配置
- 系统依赖 Longbridge API,确保网络稳定
开源地址
https://1797346220.github.io/boke/projects/
欢迎 Star ⭐ 和 Fork 🔱,有问题提 Issue!
$Invesco QQQ Trust(QQQ.US) $XIAOMI-W(01810.HK)
热血青年交易所 — 用代码做交易,用策略管风险
The copyright of this article belongs to the original author/organization.
The views expressed herein are solely those of the author and do not reflect the stance of the platform. The content is intended for investment reference purposes only and shall not be considered as investment advice. Please contact us if you have any questions or suggestions regarding the content services provided by the platform.

