
开源 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!
$纳指 100 ETF - Invesco(QQQ.US) $小米集团-W(01810.HK)
热血青年交易所 — 用代码做交易,用策略管风险
本文版权归属原作者/机构所有。
当前内容仅代表作者观点,与本平台立场无关。内容仅供投资者参考,亦不构成任何投资建议。如对本平台提供的内容服务有任何疑问或建议,请联系我们。


