
# 从0到1搭建AI驱动的美股期权量化交易系统架构、回测与实战 **选对方向比努力更重要我的交易系统如何用数据驱动方式完成从-87%到6310%的蜕变**---## 一、前言### 写在前面2025年中我开始做美股期权交易。和大多数人一样——手动盯盘、凭感觉下单、靠运气回本。情绪化交易让我吃尽了苦头浮盈想格局结果亏回去、止损后追涨杀跌、盯盘消耗大量精力。半年后我做了个决定**不再用人脑做交易而是搭建一个AI驱动的量化交易系统。**这不是一篇抽象的理论文章。这是一套**真实运行了3个多月**、**34只股票全覆盖**、**60,000行Python/Shell代码**的实战交易系统。从架构设计到数据管道从回测优化到实盘验证我会把整个血泪史和技术实现写清楚。---## 二、为什么选择系统化交易先解答一个核心问题**手动交易 vs 系统化交易哪个更科学**| 维度 | 手动交易 | 系统化交易 ||------|----------|------------|| 情绪干扰 | 浮盈格局、浮亏扛单 | 严格执行铁面无私人 || 可回测验证 | 无法验证直觉判断 | 回测300参数组合 || 决策一致性 | 看状态、看心情 | 量化模型永远一致 || 多线程能力 | 盯不过来 | 同时监控30只股票 || 可优化性 | 凭感觉改进 | 网格搜索找最优解 || 复盘能力 | 模糊记忆 | 每笔交易有记录 |**结论** 系统化交易不是让AI替我赚钱而是**用可验证、可重复、无情绪的方法论建立可持续的交易系统**。人负责策略设计和迭代系统负责执行和监控——人机协作才是最优解。---## 三、系统总体架构### 3.1 技术栈| 层 | 技术选型 | 用途 ||----|---------|------|| AI大脑 | gpt5.5ops4.7 | 决策引擎、报告生成、自适应优化 |apikeyfun.com 国内丝滑| 交易通道 | 富途 OpenD (Futu API) | 期权链查询、限价单执行、实时行情 || 数据源 | Twelve Data API | 日线K线、技术指标(RSI/MACD/BB/ATR等) || 持久化 | SQLite JSON | 股票池、K线、交易日志、配置 || 通知 | QQ Bot | 建仓推送、止盈止损告警、每日复盘 || 调度 | macOS crontab LaunchAgent | 定时任务编排 || 运行环境 | Python 3.10 on macOS | 脚本全部Python实现 |### 3.2 三层架构┌────────────────────────────────────────────────────┐│ 调度层 (Shell) ││ cron/LaunchAgent 触发 → 按时间/事件调用 Python 脚本 │├────────────────────────────────────────────────────┤│ 逻辑层 (Python) ││ 数据管道 | 指数引擎 | 策略引擎 | 风控 | 监控 | 交易 ││ 33个Python脚本协同工作 │├────────────────────────────────────────────────────┤│ 数据层 (SQLite JSON) ││ trading.db (9张表) | 配置JSON | 持仓JSON | 告警JSON │└────────────────────────────────────────────────────┘### 3.3 核心数据流数据管道 ──→ 指数引擎 ──→ 策略选择器 ──→ 建仓机会扫描 ──→ 自动建仓(data_pipeline) (index_engine) (strategy_selector) (opportunity_scanner) (auto_trade)│ │ │↓ ↓ ↓daily_prices ← jianianhua_index ─────────────────→ open_positions ─────────→ 止盈止损监控技术指标表 (sl_tp_monitor)│↓事件驱动监控 QQ推送告警---## 四、模块详解技术深度### 4.1 嘉年华指数引擎 —— 核心选股大脑**文件** index_engine.py (444行)**目标** 从候选池中选出最优标的不是拍脑袋而是多因子量化评分。**评分公式版本4.0**总分 动量分(40%) 技术指标分(35%) 趋势分(15%) 其他(10%)| 因子 | 权重(v4.0) | 计算方式 ||------|-----------|---------|| 动量 | 40% | 近5日收益率线性映射到0-100分 || 趋势 | 15% | 收盘价在布林带中的位置 || RSI | 12% | RSI在40-60区间最优 || MACD | 12% | 柱状图正值加分 || 成交量 | 10% | 成交量变化 || 波动率 | 11% | ATR越低越稳定 |**为什么v4.0大幅提高动量权重**我们跑了**网格搜索grid search**测试了12种权重组合 × 4种阈值 48种配置。结论惊人- 旧版被动量、重技术指标夏普比率 0.24总收益 -87%- 新版动量40% 阈值75夏普比率 3.41总收益 6310%**这就是数据驱动决策的价值。** 实践证明动量因子在美股期权交易中是最有效的预测变量。### 4.2 止盈止损系统 —— 8层风险防护**文件** sl_tp_monitor.py (955行)最核心、最复杂、也是我修复bug最多的模块。提供了8层保护| # | 策略 | 触发条件 | 动作 ||---|------|---------|------|| 1 | 固定止损 | 亏损-40% | 无条件平仓 || 2 | 固定止盈 | 盈利80% | 至少减半 || 3 | 移动止盈 | 从高点回落25% | 全部平仓 || 4 | Theta衰减 | 日耗0.30且3%/天 | 平仓 || 5 | Delta衰减 | Delta0.20 | 平仓 || 6 | 到期管理 | 到期最后1小时 | 强制清仓 || 7 | 财报平仓 | 财报后1天 | 事件结束出场 || 8 | 单日止损 | 日亏达账户总资产5% | 停止当日交易 |**利润保护策略 v2.15层嵌套**浮盈10% → 止损上移至保本浮盈20% → 锁定5%利润浮盈40% → 锁定15%利润浮盈60% → 锁定30%利润30%/50%/70%分批止盈(各25%)80%全部平仓还结合了**波动率自适应**VIX15时窄止损(-25%)VIX在15-25时正常(-40%)VIX25时宽止损(-55%)。所有参数从配置文件读取零硬编码。### 4.3 策略决策引擎**文件** strategy_selector.py (386行) strategy_engine.py (260行)根据市场环境 方向判断 催化剂匹配从8种策略中选最优| 策略 | 适用场景 | 最大亏损 ||------|---------|---------|| Bull Call Spread | 看涨事件驱动 | 权利金净支出 || Put Credit Spread | 温和看涨高IV | 价差-权利金 || Call Credit Spread | 温和看跌高IV | 价差-权利金 || Iron Condor | 震荡市高IV | 价差-权利金 || 单腿Call | 极端反弹/突破 | 全部权利金 || LEAPS Call | 长期强烈看涨 | 全部权利金 || 单腿Put | 黑天鹅保护 | 全部权利金 |**决策流程** VIX检查(25停) → SPY趋势判断 → IV分析 → 催化剂匹配 → 8种策略评分 → 选最高分 → 风控验证 → 执行### 4.4 财报套利模块**文件** earnings_arbitrage.py (480行)针对财报事件前后的IV飙升量身定做- **策略** Weighted Strangle按方向加权买入CALLPUT- **入场** 财报前2天IV已飙升- **出场** 财报后1天IV crush后- **风控** 单票≤3%资金Iron Condor RR≥0.3财报日历自动维护Web抓取 本地DB存储 每日扫描推送。### 4.5 数据管道**文件** data_pipeline.py (292行)每日美股收盘后自动执行Step 1: 指数引擎重新评分 34只候选 → TOP20Step 2: 同步watchlist淘汰连续3次垫底的股票Step 3: 补齐K线 更新技术指标Step 4: 扫描财报日历 → 更新earnings_calendar表**数据规模**- 34只股票6,004条日线记录- 覆盖时间2025-05-05 至 2026-05-191年- 技术指标RSI、MACD、Bollinger Bands、ATR### 4.6 交易前检查清单**文件** checklist.py (122行)任何下单前必须通过5项检查——**这是系统铁的纪律**1. 仓位规模检查不超过账户总额的(当前比例)%2. 风险回报比Bull Call Spread RR ≥ 0.33. 总敞口检查所有持仓名义价值不超过账户总额×倍数4. 盈亏平衡检查入场后不立刻亏损5. 资金利用率剩余资金足够覆盖风控### 4.7 市场稳定性检测**文件** market_stability.py (179行)剧烈波动时跳过建仓规避系统性风险- SPY振幅 1.5% → ❸ 不稳- VIX 28 → ❸ 恐慌- 开盘跳空 2% → ❸ 不稳定- 个股单日振幅 8% → ❸ 异常只在前3项全部绿色时才允许建仓。---## 五、数据库设计与持久化### 5.1 SQLite 数据库trading.db9张表协同工作| 表名 | 记录数 | 用途 ||------|-------|------|| watchlist | 30 | 监控股票列表 || daily_prices | 6,004 | 日线OHLCV || daily_indicators | ~4,000 | RSI/MACD/BB/ATR || jianianhua_index | — | 指数成分股动态TOP20 || jianianhua_snapshots | — | 开盘快照 || earnings_calendar | — | 财报日期 || trades | — | 交易日志 || option_ideas | — | 期权策略记录 || daily_trades | — | 去重建仓跟踪 |### 5.2 JSON 配置体系所有可变参数统一管理sl_tp_config.json → 止盈止损参数20配置项open_positions.json → 当前持仓动态更新pending_alerts.json → 待推送告警消费即清daily_loss.json → 日亏损跟踪**铁律不允许任何硬编码。** 从股票列表到交易参数全部从数据库或配置文件读取。---## 六、调度体系crontab LaunchAgent 协同工作| 时间 | 任务 | 脚本 ||------|------|------|| 04:05 每日 | 收盘复盘 | daily_review.py || 04:10 每日 | 数据管道K线更新 | data_pipeline.py || 07:00 每日 | 盘前报告推送 | push_opportunity.sh || 21:00 每日 | 开盘前扫描 | push_opportunity.sh || 21:30 每日 | 开盘快照(不交易) | scan_snapshot.py || 22:30-03:30 每30分钟 | 扫描建仓 | auto_scan_trade.sh || 每分钟 | 止盈止损扫描 | sl_tp_monitor.py || 每3分钟 | 告警推送消费 | push_alerts.sh || 每5分钟 | QQ Bot健康监控 | qqbot_health_monitor.sh || 每6小时 | Token会话管理 | session_manager.sh |---## 七、回测验证 —— 数据是最好的证明### 7.1 回测方法我们用一个严格的历史回测框架验证系统- **回测区间** 2025-06 ~ 2026-05约1年- **策略** 每周三评分 → 选TOP3 → Bull Call Spread模拟 → 持有2周- **数据** 34只股票6,004条日线 技术指标- **对比** 旧版评分(v3) vs 优化版评分(v4)### 7.2 网格搜索48种权重组合权重候选M20T30R25A25 (旧版)M30T20R15A15V10L10M40T15R15A15V10L5 ← 最优之一M50T15R10A10V10L5M60T10R10A10V5L5...阈值候选60, 65, 70, 75组合数12种权重 × 4种阈值 48组回测排序依据夏普比率风险调整后收益### 7.3 新旧对比结果| 指标 | 旧版(v3) | 优化版(v4) | 提升 ||------|---------|-----------|------|| 总收益 | -87.0% | 6,310% | 爆炸级提升 || 夏普比率 | 0.24 | 3.41 | 1,320% || 胜率 | (损失为主) | 57% | 显著 || 交易次数 | — | 141笔 | 充足样本 || 回撤 | — | 受控 | — |**核心发现** 动量因子权重从~14%提升至40%后系统性能发生质变。传统技术指标RSI/MACD/BB的预测能力远不如简单的近期动量。### 7.4 分数段分析70-75分区间: 约60%胜率75-80分区间: 约70%胜率80分以上区间: 最优质标的评分越高胜率越高——模型区分度良好。---## 八、系统命令体系所有操作通过自然语言指令完成嘉年华 期权管理系统 报告 全系统状态资金/持仓/指数/风险/健康嘉年华 期权管理系统 持仓 当前持仓盈亏嘉年华 期权管理系统 扫盘 立即执行建仓机会扫描嘉年华 期权管理系统 自检 跑41项系统测试嘉年华 期权管理系统 止损报告 止盈止损系统状态嘉年华 期权管理系统 风控检查 入场前5项检查嘉年华 期权管理系统 平仓所有 限价单一键平仓嘉年华 期权管理系统 财报日历 查看近期财报嘉年华 期权管理系统 切换正式 切换到实盘账户嘉年华 期权管理系统 切换模拟 切换到模拟账户---## 九、开发流程与铁律### 9.1 增量开发铁律1. 读铁律.md 血泪教训.md — 逐条对照检查2. 开发完成后必须测试 — 至少一次实际运行3. 输出报告 — 运行结果 逻辑解释4. 无测试/无报告 代码未完成### 9.2 已踩过的坑修复记录| # | 问题 | 修复方案 ||---|------|---------|| 1 | 挂单未清除导致重复下单 | cancel_all_order前清理 失败冷却3周期 || 2 | 止损/止盈平仓状态未推送 | 每次扫描后push_scan_status报告 || 3 | 每日亏损上限写死固定金额 | 改为账户总资产百分比(5%) || 4 | 价差策略长腿已平短腿残留 | close_all增加长短腿同步处理 || 5 | 美股冬夏令时交易时段硬编码 | pytz动态计算配置改为auto |---## 十、总结与展望### 系统现状评分70/100| 维度 | 分数 | 说明 ||------|------|------|| 策略效果 | 80 | 回测验证动量因子驱动 || 风险管理 | 85 | 8层保护 利润保护v2.1 || 执行可靠性 | 70 | 仍有edge case需处理 || 回测完备性 | 65 | 实盘是终极检验 || 代码质量 | 65 | 955行sl_tp_monitor需拆分 |### 下一步规划1. **SPY PUT对冲系统完善** — 净多头敞口15%时自动建仓对冲2. **持仓集中度控制** — 单只不超过20%仓位越限自动预警推送3. **正式账户切换** — 观察1-2个月模拟稳定后考虑4. **sl_tp_monitor.py重构** — 955行拆分为4子模块5. **单元测试覆盖** — 核心纯函数优先测试### 给开发者的建议如果你也想搭建量化交易系统这几点最重要1. **先想清楚风控再谈赚钱** — 不亏钱比赚钱更重要每笔交易入场前知道最大亏损2. **用数据说话不要凭直觉** — 跑回测、做权重优化、验证假设3. **优先解决基础建设** — 数据管道 策略设计 执行优化 再优化策略4. **增量和迭代** — 逐步添加功能每个新模块先测试再上线5. **自然语言交互** — 让系统的操作能通过自然语言指令完成而不是每次改代码---**系统相关仓库/资源**- 交易通道: [富途 OpenD](https://futunnopen.github.io/futu-api-doc/)- 数据源: [Twelve Data](https://twelvedata.com/)- AI引擎: [Ops4.7 gpt5.5](https://apikeyfun.com/) 国内丝滑不用国外信用卡- 运行环境: OpenClaw on macOS---*文章作者Tony美股期权量化交易爱好者**系统名称嘉年华Carnival**系统搭建时间2025-2026**最后更新2026-05-20*