NRA Wheel Strategy

期权卖方策略
完整方法论

覆盖从标的筛选、每日合格清单、单标手册生成、实时扫单推荐,到持仓全生命周期管理的五阶段闭环系统。适用于 IBKR Portfolio Margin 账户,目标资金规模 $500K–$2M。

版本 v3.0.0
生效日期 2026-04-19
核心策略 Wheel / Sell PUT
执行平台 OpenClaw / IBKR
自动化程度 推荐 → 人工确认
架构总览
五阶段闭环,从规则到平仓
阶段 1

规则制定

全市场通用筛选规则
config.json + choose.html

阶段 2

每日筛选

wheel_screener.py
产出今日合格清单

阶段 3

单标手册

AI 生成 meta.html
+ ticker-params.yaml

阶段 4

扫单推荐

openclaw_scan.py
输出具体合约建议

阶段 5

持仓管理

position_monitor.py
止盈 / Roll / 熔断

系统定位

本系统是辅助决策系统,不是全自动执行系统。阶段 4 产出的是建议,操作者在 IBKR TWS 中完成二次确认后手动下单。这是 NRA 合规与风控的硬性要求——EV 修正、滑点判断、异常市场识别等环节,当前 AI 可靠性不足以支撑全自动执行。

数据流向

来源阶段产出物消费阶段格式
阶段1 全市场通用规则 阶段2、阶段4 config.json
阶段2 今日合格标的清单 阶段4(入场门票) eligible_YYYYMMDD.json
阶段3 单标结构化参数 阶段4 ticker-params.yaml
IBKR 实时 期权链、IV、账户保证金 阶段4 TWS API / REST
阶段4 具体合约推荐 人工确认 → IBKR signal_YYYYMMDD.json
IBKR 持仓 实时持仓状态 阶段5 position_snapshot.json
阶段5 提醒事件 / Roll 建议 人工处理 alert_YYYYMMDD.txt
核心原则
贯穿所有阶段的不可违背规则
原则 1 · 资金安全第一

永不孤注

单一标的名义敞口上限受阶段1全局配置约束,任何单标手册不得突破此上限。账户层面保留 ≥20% 保证金缓冲,不得满仓裸卖。

原则 2 · 单标更严原则

越往下越严

阶段3单标参数只能比阶段1全局规则更严,不能放宽。这是系统防止单标手册逃逸全局风控的硬性约束。

原则 3 · 文档与配置同步

版本号强绑定

任何规则变更必须同时更新对应文档(HTML)和机器可读配置(JSON/YAML),版本号不一致视为系统故障,CI 应报错拦截。

原则 4 · 人工确认节点

推荐 ≠ 执行

阶段4产出建议,阶段5产出提醒。所有实际下单、Roll、平仓操作均需操作者在 IBKR TWS 二次确认,禁止任何绕过人工的全自动执行路径。

原则 5 · 今日合格门票制

每日动态准入

静态 Watchlist 是季度资产,每日合格清单才是动态入场门票。一个标的不在今日合格清单内,阶段4绝不为其产出推荐,无论单标手册质量如何。

原则 6 · 全生命周期覆盖

开仓只是开始

方法论必须覆盖开仓后的止盈、Roll、熔断处理、月度复盘全周期。只管开仓不管持仓,在大资金多标的并发场景下必然出现漏单。

阶段 1
全市场通用规则制定
choose.html ↔ config.json · 季度审阅

阶段1是整个系统的宪法级文件。它定义了对所有标的普遍适用的市场准入门槛、VIX 仓位矩阵、Delta 上限、保证金约束。任何单标规则不得违背此层级约束。

1.1 市场准入门槛(Pre-screen Gate)

指标最低要求备注
流动性期权日均成交量 ≥ 500 张,买卖价差 ≤ 0.05×标的价格防止滑点过大侵蚀 EV
IV RankIVR ≥ 20(卖出窗口),IVR ≥ 30 为优选低 IVR 卖权溢价不足
财报窗口距下次财报 ≥ 10 个交易日持仓不得跨越财报
标的价格≥ $20(标准合约)低价股波动不可预测
市值≥ $5B(除 ETF 外)防流动性风险
合规非 OTC、非 PFIC、无未了结监管调查NRA 合规要求

1.2 VIX 仓位矩阵

VIX 区间市场状态A 级标的B 级标的C 级标的总名义敞口上限
< 18正常 全仓可用全仓可用可用,需审批 ≤ 80% NAV
18 – 28温和波动 全仓可用减仓 30%暂停新仓 ≤ 65% NAV
28 – 35高波动 减仓 20%禁止裸卖,仅 Spread全面暂停 ≤ 50% NAV
> 35危机 禁止新仓,仅管理存量禁止新仓禁止新仓 ≤ 30% NAV
VIX 区间冲突处理规则

如果阶段1说"VIX > 28 时 B 级标的禁止裸卖",而某个单标手册说"VIX > 35 时才全面暂停",28–35 区间由阶段1全局规则主导:B 级标的禁止裸卖,只允许 Spread。单标手册的 VIX 阈值只能比全局更严,不能更宽。

1.3 通用 Delta 上限矩阵

标的级别IVR Low (<30)IVR Mid (30–60)IVR High (>60)
A 级(低波动)0.10 – 0.150.12 – 0.180.15 – 0.20
B 级(中波动)0.08 – 0.120.10 – 0.150.12 – 0.18
C 级(高波动)0.06 – 0.100.08 – 0.12仅 Spread

1.4 全局保证金约束

1.5 config.json 顶部结构示例

config.json // 全局配置 — 与 choose.html v3.0.0 严格同步 { "_README": { "method_version": "v3.0.0", // 必须与 choose.html 版本号一致 "last_updated": "2026-04-19", "effective_date": "2026-04-19", "reviewer": "quarterly" }, "vix_tiers": { "normal": { "max": 18, "max_nav_exposure": 0.80 }, "elevated": { "min": 18, "max": 28, "max_nav_exposure": 0.65 }, "high": { "min": 28, "max": 35, "max_nav_exposure": 0.50 }, "crisis": { "min": 35, "max_nav_exposure": 0.30, "no_new_positions": true } }, "margin": { "max_utilization": 0.70, "min_buffer": 0.20, "single_ticker_cap": 0.20, "sector_cluster_cap": 0.30 }, "blackout": { "earnings_days_before": 10, "fomc_blackout": true } }
阶段 2
每日标的筛选与合格清单
wheel_screener.py · 每个交易日 9:00 AM ET 运行
重要概念澄清

静态 Watchlist(季度资产)≠ 每日合格清单(动态门票)
Watchlist 是经过季度审阅选入的 118 个候选标的库,是长期资产。每日合格清单是 wheel_screener.py 每天跑完后产出的"今天哪些标的符合入场条件"的动态快照。同一个标的今天可能因 VIX 过高、财报临近或 IV 过低而被踢出合格清单,明天又重新进入。阶段4只处理今日合格清单中的标的。

2.1 静态 Watchlist 管理

纳入标准(季度审阅)

  • 市值 ≥ $5B,期权流动性 ≥ 500 张/日
  • 历史 IVR 均值 ≥ 25(过去 252 个交易日)
  • 业务模式可理解,AI 能生成合格单标手册
  • NRA 合规审查通过(无 PFIC 风险)
  • 与现有持仓相关性审查(避免过度集中)

移除标准(随时移除)

  • 流动性连续 5 日低于门槛
  • 监管调查或重大治理事件
  • 退市风险 / 并购谈判公告
  • 市值跌破 $2B
  • 季度审阅不通过(每季度末执行)

2.2 wheel_screener.py 执行逻辑

wheel_screener.py · 伪代码 def run_screener(watchlist, config, market_data): eligible = [] current_vix = market_data["VIX"] vix_tier = get_vix_tier(current_vix, config) if vix_tier == "crisis": log("VIX CRISIS — 所有标的暂停,仅处理存量") return [] # 直接返回空清单 for ticker in watchlist: # Gate 1: 财报黑名单 if days_to_earnings(ticker) < config["blackout"]["earnings_days_before"]: continue # Gate 2: FOMC 黑名单 if config["blackout"]["fomc_blackout"] and is_fomc_window(): continue # Gate 3: IVR 最低门槛 ivr = market_data[ticker]["iv_rank"] if ivr < config["min_ivr"]: continue # Gate 4: VIX 层级与标的级别的兼容性 grade = ticker_params[ticker]["grade"] if not vix_grade_compatible(vix_tier, grade, config): continue # Gate 5: 账户保证金容量检查 if not margin_capacity_available(ticker, ticker_params, account): continue eligible.append({ "ticker": ticker, "ivr": ivr, "grade": grade, "vix_tier": vix_tier, "scan_ts": now_iso() }) save_eligible_list(eligible) # → eligible_YYYYMMDD.json return eligible

2.3 合格清单输出格式

eligible_20260419.json { "date": "2026-04-19", "vix": 21.3, "vix_tier": "elevated", "screener_version": "v3.0.0", "eligible_count": 14, "eligible": [ { "ticker": "META", "ivr": 48, "grade": "A", "notes": "优选" }, { "ticker": "GOOGL", "ivr": 35, "grade": "A", "notes": "" }, { "ticker": "NVDA", "ivr": 61, "grade": "B", "notes": "VIX elevated,仅Spread" } ], "excluded_count": 104, "exclusion_reasons": { "earnings_blackout": 18, "ivr_too_low": 43, "vix_grade_incompatible": 29, "margin_full": 14 } }
阶段 3
单标手册生成与结构化参数
meta.html(人读)+ ticker-params.yaml(机读)· 季度更新

阶段3为每个纳入 Watchlist 的标的生成两个配套文件:一份供人阅读的 HTML 手册(meta.html),以及一份机器可读的 YAML 参数文件(ticker-params.yaml)。两者必须保持严格同步,且单标参数只能比全局配置更严。

关键约束:HTML 手册必须有对应 YAML 文件

如果某标的只有 meta.html 没有对应的 ticker-params.yaml,阶段4将无法消费该标的的策略参数,该标的即使出现在今日合格清单中也不会产出推荐。这是系统完整性的硬性要求。

3.1 meta.html 标准章节结构(12章)

#章节名称核心内容
01标的概况市值、Beta、业务描述、标的级别(A/B/C)
02历史波动特征历史单日最大跌幅、财报后波动幅度统计、异常事件案例
03IV 特征分析IVR 历史均值、财报前后 IV 行为、期限结构特征
04Delta 矩阵各 VIX 层级下的推荐 Delta 区间(比全局更严)
05DTE 策略推荐 DTE 区间(裸卖 / Spread 分开说明)
06行权价扩展系数左尾肥尾修正系数(ev_correction)
07价差宽度参数Bull Put Spread 的宽度(按 IVR 层级分段)
08止盈止损规则50% 止盈 GTC、最大亏损比例、时间止损
09Roll 规则Credit Roll vs Debit Roll 触发条件、底线
10三级熔断机制L1/L2/L3 触发阈值与对应操作
1125% 下跌切换机制正股下跌 25% 后从裸卖切换至 Spread 的执行规则
12财报与黑名单财报前封闭期天数、FOMC 处理方式、特殊事件清单

3.2 ticker-params.yaml 标准格式

ticker-params.yaml · META 示例 META: # ── 元数据 ── version: "3.0.2" effective_date: "2026-04-19" method_version: "v3.0.0" # 必须与 config.json 一致 grade: "A" # A=低波动, B=中波动, C=高波动 sector: "Tech" cluster: "Meta-Platforms" # 用于板块集中度检查 # ── Delta 矩阵(只能比全局更严)── delta_matrix: vix_normal: ivr_low: [0.10, 0.15] ivr_mid: [0.12, 0.17] ivr_high: [0.14, 0.20] vix_elevated: ivr_low: [0.08, 0.12] ivr_mid: [0.10, 0.15] ivr_high: [0.12, 0.17] vix_high: # B 级下全局要求 Spread;A 级此处减仓 mode: "spread_only" # ── 行权价修正 ── ev_correction: 1.20 # 左尾肥尾系数;1.0=不修正 fat_tail_note: "历史单日最大跌幅 -26%,标准模型低估左尾" # ── 价差宽度 ── spread_width_pct: ivr_low: [0.015, 0.020] ivr_mid: [0.020, 0.035] ivr_high: [0.035, 0.050] # ── DTE 策略 ── dte: naked_put: { min: 21, max: 45, target: 30 } spread: { min: 14, max: 45, target: 25 } # ── 止盈止损 ── exit: profit_target_pct: 0.50 # 50% 止盈,设 GTC 单 max_loss_pct: 2.00 # 最大亏损=权利金的 2 倍 time_stop_dte: 5 # DTE ≤ 5 且亏损则强制平仓 # ── Roll 规则 ── roll: credit_roll_trigger: "Delta > 0.40 且 DTE > 14" debit_roll_trigger: "正股跌破行权价 3% 且 DTE > 7" roll_floor_strike: "不得低于初始行权价 × 0.85" # ── 三级熔断 ── circuit_breaker: L1: { trigger: "标的单日跌 8%", action: "暂停新仓,评估 Roll" } L2: { trigger: "标的单日跌 15%", action: "启动 Spread 对冲,上报" } L3: { trigger: "标的单日跌 25%", action: "强制平仓,退出标的" } # ── 黑名单 ── blackout: earnings_days: 10 # 同全局,不放宽 fomc_blackout: false # META 不受 FOMC 特别影响 # ── 切换机制 ── mode_switch: trigger: "正股累计下跌 25%" from: "naked_put" to: "bull_put_spread" notes: "切换后等待 5 日再评估是否恢复"

3.3 AI 生成单标手册的 Prompt 规范

AI 生成工作流

生成单标手册时,Prompt 中必须明确传入:(1) 全局 config.json 的约束边界;(2) 要求 YAML 输出中所有 Delta 值不得高于全局允许值;(3) 要求输出版本号字段并与 method_version 绑定。生成后执行 validate_params(global_config, ticker_params) 校验通过才允许写入 ticker-params.yaml。

3.4 参数校验函数规范

validate_params.py def validate_params(global_config, ticker_params): errors = [] for ticker, params in ticker_params.items(): # 校验1:method_version 必须一致 if params["method_version"] != global_config["_README"]["method_version"]: errors.append(f"{ticker}: method_version 不匹配") # 校验2:Delta 上限不得超过全局 global_delta_max = get_global_delta_max(params["grade"], global_config) for vix_tier, ivr_deltas in params["delta_matrix"].items(): if isinstance(ivr_deltas, dict) and "ivr_high" in ivr_deltas: local_max = ivr_deltas["ivr_high"][1] if local_max > global_delta_max: errors.append(f"{ticker}/{vix_tier}: Delta {local_max} 超出全局上限 {global_delta_max}") # 校验3:单标名义敞口不得超过全局 single_ticker_cap # ... 更多校验规则 ... if errors: raise ValueError("\n".join(errors)) return True
阶段 4
实时扫单与合约推荐
openclaw_scan.py · 盘中实时或 9:15 AM ET 定时运行

4.1 输入三要素

输入 1

今日合格清单

来自阶段2的 eligible_YYYYMMDD.json。不在此清单内的标的,本脚本直接跳过,不产出任何推荐。

输入 2

单标结构化参数

来自阶段3的 ticker-params.yaml。提供该标的的 Delta 矩阵、DTE 策略、spread 宽度等操作参数。

输入 3

实时期权链

通过 IBKR TWS API 或 REST 拉取。包含各行权价的 Delta、IV、买卖价差、成交量、持仓量。

4.2 扫单核心逻辑

openclaw_scan.py · 核心逻辑 def scan_ticker(ticker, eligible_info, params, option_chain, account): # Step 1: 确定当前 VIX 层级下的 Delta 目标区间 vix_tier = eligible_info["vix_tier"] ivr = eligible_info["ivr"] ivr_bucket = get_ivr_bucket(ivr) # low / mid / high delta_range = params["delta_matrix"][vix_tier][ivr_bucket] # Step 2: 确定模式(裸卖 or Spread) mode = determine_mode(vix_tier, params["grade"], account) # Step 3: 筛选符合 Delta 区间的行权价 candidates = [ opt for opt in option_chain["puts"] if delta_range[0] <= abs(opt["delta"]) <= delta_range[1] and params["dte"][mode]["min"] <= opt["dte"] <= params["dte"][mode]["max"] and opt["volume"] >= 50 # 基础流动性门槛 ] # Step 4: EV 修正计算(含左尾肥尾系数) for opt in candidates: opt["ev_raw"] = calc_ev(opt) opt["ev_adj"] = opt["ev_raw"] / params["ev_correction"] opt["spread_ok"] = opt["ask"] - opt["bid"] <= opt["mid"] * 0.10 # Step 5: 按修正 EV 降序排列,返回 top-3 ranked = sorted( [o for o in candidates if o["spread_ok"] and o["ev_adj"] > 0], key=lambda x: x["ev_adj"], reverse=True )[:3] return { "ticker": ticker, "mode": mode, "candidates": ranked }

4.3 推荐输出格式(signal.json)

signal_20260419.json · 单标推荐示例 { "ticker": "META", "scan_ts": "2026-04-19T09:17:32Z", "mode": "naked_put", "vix_tier": "elevated", "ivr": 48, "recommendations": [ { "rank": 1, "expiry": "2026-05-16", "strike": 540, "dte": 27, "delta": -0.135, "mid_price": 4.85, "ev_raw": 0.62, "ev_adj": 0.52, "margin_req": 12800, "annualized_return": 0.148, "profit_target_price": 2.43, // 50% 止盈价,用于设 GTC "notes": "优选;流动性好;EV修正后仍为正" } ], "execution_required": "人工在 IBKR TWS 确认后手动下单" }
禁止全自动执行

阶段4的输出文件是推荐,不是指令。严禁任何自动将 signal.json 转化为 IBKR TWS 自动下单的脚本或接口。操作者必须逐一审阅推荐内容,核实价格合理性、确认保证金充裕后,手动在 TWS 中下单。

4.4 执行前人工核查清单

阶段 5
持仓管理与全生命周期监控
position_monitor.py · 每日盘中运行 + 月度 SOP

阶段5是系统中最容易被忽视但最关键的环节。开仓只完成了 20% 的工作,剩下 80% 在持仓管理中。在多标的并发持仓(10+个标的)的情况下,纯人工监控必然出现漏单,position_monitor.py 是防漏的最后一道网。

5.1 每日监控项目

监控事件触发条件建议操作优先级
止盈触达 期权市价 ≤ 开仓价 × 50% 确认 GTC 成交 / 手动平仓 High
Delta 漂移 |Delta| > 单标手册上限 评估是否 Roll 或调仓 Mid
L1 熔断 标的单日跌幅 ≥ 8% 暂停新仓,评估 Roll Critical
L2 熔断 标的单日跌幅 ≥ 15% 启动 Spread 对冲,上报 Critical
L3 熔断 标的单日跌幅 ≥ 25% 强制平仓,退出标的 Critical
25% 累计下跌 正股较开仓时累计跌 ≥ 25% 切换至 Spread 模式 Critical
DTE 时间止损 DTE ≤ 5 且仍亏损 强制平仓 High
财报临近警告 距下次财报 ≤ 12 日 提前评估平仓或滚动 Mid
VIX 层级变化 VIX 跨越 18/28/35 阈值 重新评估所有持仓合规性 High
保证金缓冲告警 Excess Liquidity < 25% NAV 主动减仓,防止爆仓 Critical

5.2 Roll 决策树

Credit Roll(优先选项)

向前滚动,净收权利金

触发条件:Delta > 上限阈值 且 DTE > 14

操作:平掉近月,卖出远月更低行权价,确保净 Credit ≥ $0.10

底线:新行权价不得低于初始行权价 × 0.85

Debit Roll(防守选项)

跌破行权价,支付权利金滚动

触发条件:正股跌破行权价 3% 且 DTE > 7

操作:平掉亏损头寸,支付小额 Debit 换取更多时间

底线:累计 Debit 不超过原始权利金 × 1.5,否则直接平仓

直接平仓(止损线)

亏损触及阈值,不再 Roll

触发条件:亏损超过权利金 2 倍 或 DTE ≤ 5 且仍亏损

操作:市价或限价平仓,全部退出,入台账

注意:L3 熔断不评估 Roll,直接平仓

5.3 月度 SOP 标准操作流程

5.4 position_monitor.py 骨架

position_monitor.py · 骨架 def run_position_monitor(positions, ticker_params, market_data, account): alerts = [] for pos in positions: ticker = pos["ticker"] params = ticker_params[ticker] price_now = market_data[ticker]["price"] # 检查1:止盈触达 if pos["current_price"] <= pos["open_price"] * 0.50: alerts.append(Alert(ticker, "PROFIT_TARGET", "止盈触达 50%,确认平仓", priority="HIGH")) # 检查2:熔断 daily_chg = market_data[ticker]["daily_change_pct"] if daily_chg <= -0.25: alerts.append(Alert(ticker, "L3_CIRCUIT_BREAK", "单日跌 25%,强制平仓", priority="CRITICAL")) elif daily_chg <= -0.15: alerts.append(Alert(ticker, "L2_CIRCUIT_BREAK", "单日跌 15%,启动对冲", priority="CRITICAL")) elif daily_chg <= -0.08: alerts.append(Alert(ticker, "L1_CIRCUIT_BREAK", "单日跌 8%,暂停新仓", priority="CRITICAL")) # 检查3:25% 累计跌幅切换 cumulative_chg = (price_now / pos["entry_price"]) - 1 if cumulative_chg <= -0.25 and pos["mode"] == "naked_put": alerts.append(Alert(ticker, "MODE_SWITCH", "累计跌 25%,切换至 Spread", priority="CRITICAL")) # 检查4:DTE 时间止损 if pos["dte"] <= params["exit"]["time_stop_dte"] and pos["pnl_pct"] < 0: alerts.append(Alert(ticker, "TIME_STOP", f"DTE={pos['dte']},仍亏损,强制平仓", priority="HIGH")) # 检查5:财报临近 days_to_earn = days_to_earnings(ticker) if days_to_earn <= 12: alerts.append(Alert(ticker, "EARNINGS_WARN", f"距财报 {days_to_earn} 日,评估平仓", priority="MID")) send_alerts(alerts) # 发送到邮件 / Telegram / Slack save_alerts(alerts) # 保存至 alert_YYYYMMDD.txt return alerts
参数冲突处理规则
全局 vs 单标 · 谁赢谁输的铁律
核心原则:单标参数只能更严,不能更宽

阶段1(全局配置)是宪法,阶段3(单标手册)是地方法规。地方法规可以比宪法更严格,但不能突破宪法的底线。任何冲突都以更严格的那一方为准。

冲突场景全局规则单标规则执行结果
VIX 阈值冲突 VIX > 28,B 级禁止裸卖 VIX > 35 全面暂停(未覆盖 28–35) 全局优先:28–35 区间执行全局规则(禁止裸卖)
Delta 上限冲突 A 级 IVR-mid:Delta ≤ 0.18 META IVR-mid:Delta ≤ 0.15(更严) 单标优先:执行 0.15 上限(更严者胜)
Delta 上限越界 A 级 IVR-high:Delta ≤ 0.20 某标的 IVR-high:Delta ≤ 0.22(违规!) validate_params 报错,拒绝写入,必须修正 YAML
名义敞口冲突 单标上限 20% NAV META 手册未指定上限 全局兜底:执行 20% NAV 上限
财报黑名单冲突 距财报 ≥ 10 日 NVDA 手册:距财报 ≥ 14 日(更严) 单标优先:执行 14 日封闭期
FOMC 黑名单冲突 FOMC 当日及前一日禁止开仓 META 手册:FOMC 不影响 全局优先:FOMC 黑名单不可被单标放宽

冲突判定流程

validate_params.py · 冲突判定逻辑 def resolve_conflict(global_val, local_val, constraint_type): """ constraint_type: "max" = 取较小值(上限约束,如 Delta 上限) "min" = 取较大值(下限约束,如 DTE 下限) "bool_strict" = global=True 时单标不得设为 False(如 FOMC 黑名单) """ if constraint_type == "max": return min(global_val, local_val) # 取更严(更小)的上限 elif constraint_type == "min": return max(global_val, local_val) # 取更严(更大)的下限 elif constraint_type == "bool_strict": if global_val == True and local_val == False: raise ValueError("全局强制约束不可被单标放宽") return global_val # 全局更严时取全局
版本控制规范
文档与配置强绑定 · 防止脱节故障

版本号格式

采用三段式版本号 vMAJOR.MINOR.PATCH,含义如下:

段位触发升级场景示例
MAJOR方法论核心架构变化(如增减阶段、改变核心策略)v2.x.x → v3.0.0
MINOR参数边界实质性调整(如 VIX 阈值、Delta 上限变化)v3.0.x → v3.1.0
PATCH文字修正、新增标的、小改进,不影响核心逻辑v3.0.0 → v3.0.1

版本同步规则

系统文件清单
完整系统的必要文件一览
目录结构 nra-wheel-system/ ├── config/ │ ├── config.json # 全局规则配置(阶段1) │ └── watchlist.json # 静态 Watchlist(118 标的) │ ├── playbooks/ │ ├── META/ │ │ ├── meta.html # 人读版手册(阶段3) │ │ └── params.yaml # 机读版参数(阶段3) │ ├── NVDA/ │ │ ├── meta.html │ │ └── params.yaml │ └── ... # 每个标的一个目录 │ ├── scripts/ │ ├── wheel_screener.py # 每日筛选(阶段2) │ ├── openclaw_scan.py # 扫单推荐(阶段4) │ ├── position_monitor.py # 持仓监控(阶段5) │ └── validate_params.py # 参数校验工具 │ ├── docs/ │ ├── choose.html # 全局方法论文档(阶段1,与 config.json 同步) │ └── nra-wheel-methodology.html # 本文件 │ ├── outputs/ # 脚本产出物,按日期归档 │ ├── eligible_20260419.json │ ├── signal_20260419.json │ └── alert_20260419.txt │ ├── ledger/ # 月度台账 │ ├── 2026-04.xlsx │ └── CHANGELOG.md │ └── ticker-params.yaml # 合并版(供脚本快速读取)
投产检查表
在系统正式投产前,确认所有项目

必须完成(Blocker)

建议完成(Nice-to-Have)

系统就绪标准

所有"必须完成"项均打勾,validate_params.py 对全量 YAML 零报错,在 IBKR 纸交易账户完成 3 个交易日的全流程演练,方可切换至实盘账户。

免责声明
本操作手册基于 历史数据、美股期权市场规则及 NRA 税务政策综合研究制定,由RHCLOUD AI 生成,不构成任何投资建议。期权交易存在本金全部损失的重大风险。股票 受监管变化、业绩表现、行业竞争、技术迭代等因素影响,可能出现超出历史经验的极端波动。

本手册所涉及的全部税务处理方式、遗产税规划、离岸公司架构,须在相关持牌 CPA、执业律师出具书面意见后方可执行。过往绩效数据与历史回测结果不代表未来收益。交易者须自行评估风险承受能力,并对一切投资决策及其税务后果承担完全责任。

版本:V3.0 · 综合优化版 · 2026 年 4 月 · 内部学习文件 · 禁止对外传阅