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

portai
我是 LongbridgeAI,我可以总结文章信息。

上次开源了方案很多人不会用,这次直接把做好的系统源代码给你们随便用!

 

手动做 0DTE 期权太累?我用 Python 搭了一套完整的 QQQ 零日到期期权自动交易系统,支持双路径突破信号检测、市场状态自适应、三阶段动态止盈。已开源到 GitHub,本文详细介绍系统设计和核心功能。


为什么做这个系统?

做 0DTE 期权交易的朋友都知道痛点:

  • 反应慢:期权价格每秒都在变,手动操作永远跟不上
  • 情绪干扰:该止损时心存侥幸,该止盈时贪心不足
  • 策略执行不一致:明明有规则,一到关键时刻就手抖

所以我决定把策略写成代码——信号检测、下单执行、止盈止损全自动,人只需要负责监控和调参。

系统基于 Longbridge OpenAPI 构建,实时订阅 QQQ 行情,检测到突破信号后自动选择 0DTE 期权合约、下单、管理仓位。


系统架构

整个系统分为几层:

技术栈:

组件技术选型
交易引擎Python 3.14 + NumPy + SciPy
API 通信Longbridge OpenAPI (WebSocket + REST)
桌面 GUITkinter + 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
MACDMACD 柱 > 0MACD 柱 < 0

6 个中至少过 4 个才允许入场。 趋势行情下 MACD 降级为可选项(急涨初期 MACD 可能还没翻正)。

核心过滤(3 项全过)

过滤项条件
成交量当前量 > 20 日均量 × 倍数
动量K 线方向与信号方向一致
K 线实体实体比例 > 最小阈值

市场状态自适应:一套策略三种打法

这是系统最核心的设计——不是一套参数打天下,而是根据市场状态动态调整所有参数。

市场状态检测

系统每根 K 线自动检测三种市场状态:

  • trending(趋势市):波动放大 + 方向一致 + 趋势强
  • neutral(中性):标准参数
  • choppy(震荡市):波动缩小 + 方向不一致 + 趋势弱

检测基于最近 20 根 K 线的 4 个维度:

  1. 波动幅度比(当前 5 根 vs 前 15 根)
  2. 方向一致性(同向 K 线比例)
  3. 趋势强度(简化 ADX:连续创新高/低次数)
  4. 价格位置(在 20 根范围中的位置)

参数自适应

参数趋势市中性震荡市
突破窗口3 根(等确认)3 根2 根(极速入场)
回踩确认需要不需要不需要
预加载滤镜6 取 3(放宽)6 取 36 取 2(更放宽)
止盈平仓100% 平半仓(让利润跑)80% 平半仓50% 平半仓(快进快出)
止损25%25%30%(容忍震荡)
超时退出不设超时4 分钟8 分钟
仓位70%40%(风险低)80%

核心理念:

  • 趋势市:顺势入场,让利润跑,不怕回撤
  • 震荡市:极速入场,快进快出,小仓位
  • 中性:保守操作,控制风险

风控系统

动态止盈(按市场状态调整)

趋势市:盈利 100% → 平仓 30% 仓位 → 追踪最高点回撤全平 中性:  盈利 80%  → 平仓 30% 仓位 → 追踪最高点回撤全平 震荡市:盈利 50%  → 平仓 30% 仓位 → 追踪最高点回撤全平

多层止损

止损类型触发条件说明
固定止损亏损 >= 25%立即全平
时间止损超时(4~8 分钟)按市场状态动态调整
日亏损上限当日亏损 >= 25%当日停止交易
连亏冷却连续亏损后暂停交易,允许反向信号
收盘强平美东 15:500DTE 必须收盘前平仓

仓位管理

  • 单笔仓位:总资金的 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 线 # 自动聚合为交易信号检测所需的数据

自动下单

信号触发后自动:

  1. 根据正股价格 + $2 偏移 生成 OTM 虚值期权合约代码
  2. 通过 Longbridge REST API 市价下单
  3. 最多重试 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) 


热血青年交易所 — 用代码做交易,用策略管风险

本文版权归属原作者/机构所有。

当前内容仅代表作者观点,与本平台立场无关。内容仅供投资者参考,亦不构成任何投资建议。如对本平台提供的内容服务有任何疑问或建议,请联系我们。