--- title: "开源 QQQ 0DTE 期权自动交易系统 — 部署指南" type: "Topics" locale: "en" url: "https://longbridge.com/en/topics/40600851.md" description: "上次开源了方案很多人不会用,这次直接把做好的系统源代码给你们随便用! 手动做 0DTE 期权太累?我用 Python 搭了一套完整的 QQQ 零日到期期权自动交易系统,支持双路径突破信号检测、市场状态自适应、三阶段动态止盈。已开源到 GitHub,本文详细介绍系统设计和核心功能。为什么做这个系统?做 0DTE 期权交易的朋友都知道痛点:反应慢:期权价格每秒都在变..." datetime: "2026-05-10T02:56:57.000Z" locales: - [en](https://longbridge.com/en/topics/40600851.md) - [zh-CN](https://longbridge.com/zh-CN/topics/40600851.md) - [zh-HK](https://longbridge.com/zh-HK/topics/40600851.md) author: "[热血青年](https://longbridge.com/en/profiles/17928542.md)" generator: "portal-rs" --- # 开源 QQQ 0DTE 期权自动交易系统 — 部署指南 [上次开源了方案很多人不会用,这次直接把做好的系统源代码给你们随便用!](https://1797346220.github.io/boke/projects/) > 手动做 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 个维度: 1. 波动幅度比(当前 5 根 vs 前 15 根) 2. 方向一致性(同向 K 线比例) 3. 趋势强度(简化 ADX:连续创新高/低次数) 4. 价格位置(在 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 线 # 自动聚合为交易信号检测所需的数据` ### 自动下单 信号触发后自动: 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/](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/](https://1797346220.github.io/boke/projects/) 欢迎 Star ⭐ 和 Fork 🔱,有问题提 Issue! $Invesco QQQ Trust(QQQ.US) $XIAOMI-W(01810.HK)  * * * *热血青年交易所 — 用代码做交易,用策略管风险* ### Related Stocks - [QQQ.US](https://longbridge.com/en/quote/QQQ.US.md) - [SQQQ.US](https://longbridge.com/en/quote/SQQQ.US.md) - [PSQ.US](https://longbridge.com/en/quote/PSQ.US.md) - [BYTED.NA](https://longbridge.com/en/quote/BYTED.NA.md) - [01810.HK](https://longbridge.com/en/quote/01810.HK.md) - [81810.HK](https://longbridge.com/en/quote/81810.HK.md) - [HXXD.SG](https://longbridge.com/en/quote/HXXD.SG.md) - [XIACY.US](https://longbridge.com/en/quote/XIACY.US.md) ## Comments (23) - **热血青年 · 2026-05-11T14:12:43.000Z · 👍 2**: Everyone, note that real-time K-line data acquisition should adopt the subscription push mode with a delay of around 100ms. Don't use polling; I used to poll all the time and there was a lot of delay 😅.$Invesco QQQ Trust(QQQ.US) - **CJ.YAN · 2026-06-01T12:47:04.000Z**: Seeing many parameters in setting.json are hard-coded, will there be any improvements? - **热血青年 · 2026-05-27T13:43:18.000Z · 👍 1**: Day two of live trading, is this the charm of quantitative trading? $Invesco QQQ Trust(QQQ.US)$XIAOMI-W(01810.HK) - **Seanyue** (2026-05-27T13:55:53.000Z): Awesome - **不奋东西 · 2026-05-21T15:38:58.000Z**: Just saw your article update. It turns out the development path of the program is quite similar, I also divided the market into three types, made 3 types of parameters, and also did reversal and mean reversion, but breakout is still the most used. On range-bound days, you get hit from both sides, as - **黎诗 · 2026-05-21T14:34:38.000Z**: A man of great righteousness - **华语歌手 · 2026-05-21T14:34:37.000Z**: Learned first - **图图要爆炸 · 2026-05-19T06:10:35.000Z**: Bro, I don't get how to use this, and the group's QR code has expired. Please show me the ropes! 🤩 - **左侧+耐心 · 2026-05-13T06:57:31.000Z**: Has anyone successfully reproduced it? My backtest results using Codex were a bit poor 🥹 - **苏辂** (2026-05-19T07:27:03.000Z): Impossible high - **0xcbb** (2026-05-28T08:31:47.000Z): I backtested it and it didn't work out. - **V震天 · 2026-05-12T21:46:01.000Z**: Thanks🙏🏻 - **大获全胜 · 2026-05-12T17:56:10.000Z**: Awesome, must star it. - **看空不做空—蓝迪 · 2026-05-12T01:17:55.000Z**: Awesome, learning, I'm gonna give you a star. - **热血青年 · 2026-05-11T16:52:15.000Z · 👍 1**: This round of laddered profit-taking was executed beautifully! $Invesco QQQ Trust(QQQ.US) - **揽风追月 · 2026-05-11T15:01:03.000Z**: Bro, Longbridge's US stock 0-day option margin requirement increases significantly after 2 PM, how do you handle this? Can't even buy a few options with 100k USD 😂 - **热血青年** (2026-05-11T15:22:45.000Z): I can't trade after 2 o'clock either. - **duriancat** (2026-05-14T19:35:06.000Z): No trading after 2 o'clock or selling the next day's - **Seanyue · 2026-05-11T14:25:26.000Z**: Awesome awesome - **经历 · 2026-05-11T12:47:16.000Z**: Support, learn first. --- > **Disclaimer: This article is for reference only and does not constitute any investment advice.**