Back to skills
extension
Category: Data & AnalyticsNo API key required

隔夜策略量化审计师

一夜持股法 / ETF尾盘隔夜套利 的完整量化审计与实战执行套件。含①审计回测引擎(真实历史回测,量化隔夜折价、成本侵蚀、选择偏差)②成本扫描(单笔金额vs手续费vs滑点生死线)③v3 regime 回测引擎(买阳/买阴/方向开关/条件化集中度)④每日执行卡 screen_today(收盘买→次日开盘卖的机械化信号+挂单纪律)⑤周末跨休持有专项回测(周五买→周一卖 vs 普通一夜,给出 Friday overlay 建议)。诚实区分内嵌海外隔夜跳空的资产与纯A股资产,并把"如何执行"焊进框架逻辑。供 overnight-strategy-auditor 专家在需要真实数据/实战落地时调用。

personAuthor: user_3991c844hubcommunity

隔夜策略量化审计师(overnight-audit-engine)v1.2.0

本 skill 是「隔夜持仓策略审计官」专家的执行核心,并在 v1.1.0 从"纯审计引擎"扩展为完整实战套件:既能量化揭穿骗局,也能直接生成每日可执行信号;v1.2.0 新增周末跨休持有专项回测,回答"周五到底该不该按卡买"。

核心命题:对"收盘买、次日开盘卖"的隔夜段做真实历史回测,量化隔夜折价、交易成本侵蚀与选择偏差,并诚实区分内嵌海外隔夜跳空的资产(QDII/港股/商品)与纯A股资产。

套件组成(scripts/)

| 脚本 | 用途 | 依赖 | |---|---|---| | overnight_audit_engine.py | 全市场 81 支 ETF 隔夜审计(选择偏差演示 + 样本内外 + HTML 报告) | akshare、pandas、numpy | | screen_today.py | 每日入场信号看板 + 今日执行卡(收盘买→次日开盘卖的机械化信号) | akshare、pandas、numpy、priority_rank | | cost_amount_analysis.py | 单笔金额 vs 手续费 vs 含滑点总成本扫描(滑点生死线) | 仅内置,零外部依赖 | | overnight_engine.py | 参数化 v3 框架回测(买阳/买阴/方向auto/条件化集中度/波动缩放) | priority_rank、regime_utils、akshare | | priority_rank.py | 三维评级(收益率+成功率+信号强度)walk-forward 排序,无循环论证 | pandas、numpy | | regime_utils.py | 市场环境(Regime)分类(159920 代理:Bull/Side/Bear × HiVol/LoVol × 深度回撤) | pandas | | backtest_weekend_hold.py | 周末跨休持有专项回测:周五尾盘买→周一开盘卖(60h盲窗) vs 普通一夜(17h),导出 HTML/JSON 报告与 Friday overlay 建议 | 仅标准库(csv/datetime/statistics) |

参考文档(references/):etf_rules.md(已提取的战法规则锚点)、methodology_findings.md(方法论结论)、pool_quality.csv(质量闸门表,可选)、strict_manual.md严格执行手册,每日 SOP + 滑点生死线 + 纪律红线)。

何时使用

  • 用户要求"回测一下 / 拉历史数据验证 / 找 N 支 ETF 做回测" → 跑 overnight_audit_engine.py
  • 用户问"每天具体买哪几支、怎么挂单、滑点怎么压" → 跑 screen_today.py 出执行卡
  • 用户问"单支买多少金额手续费最划算 / 滑点压到多少才不亏" → 跑 cost_amount_analysis.py
  • 用户要验证"买阳 vs 买阴 vs 方向开关 / 集中度"的净口径 → 用 overnight_engine.run_framework(...)
  • 用户问"周五买、周一卖会不会更亏 / 周末到底该不该按卡买" → 跑 backtest_weekend_hold.py

运行环境

  • Python 3.13(建议 managed),需 pandasnumpyaksharepython -m pip install pandas numpy akshare
  • 数据源:新浪财经(ak.fund_etf_hist_sina)。东方财富在沙箱环境会被 RST 重置,已统一切到新浪。
  • 数据本地缓存:默认 ~/.workbuddy/overnight_audit_cache(首次运行自动拉取并落盘,之后用缓存)。
  • 已做可移植化screen_today.py 的路径全部相对 skill 根目录,池子内嵌为常量,配置/质量表缺失即放行;任何机器 python scripts/screen_today.py refresh 即可跑,无需改代码。

CLI 用法

# ① 全市场隔夜审计(含选择偏差 + 样本外 + HTML 报告)
python scripts/overnight_audit_engine.py audit --out <输出目录>

# ② 单 ETF 核验(gap=domestic 纯A股 / overseas 内嵌海外跳空)
python scripts/overnight_audit_engine.py single --code 513050 --name 中概互联ETF --cat QDII --gap overseas --out <输出目录>

# ③ 每日执行卡(收盘买→次日开盘卖信号 + 挂单纪律),交易日 14:45 跑
python scripts/screen_today.py refresh
#   加 --direction=auto 启用方向开关;--mode=high-win 高胜率模式;--topn=N 改前N集中

# ④ 成本扫描(滑点生死线,零依赖)
python scripts/cost_amount_analysis.py

# ⑤ 周末跨休持有专项回测(周五买→周一卖 vs 普通一夜),导出 outputs/weekend_hold_report.html
python scripts/backtest_weekend_hold.py

# ⑥ v3 框架回测(在 overnight_engine.py 内 import 调用 run_framework)
python -c "from scripts.overnight_engine import run_framework; ..."

回测口径(务必在报告中如实说明)

  • 隔夜段:今日收盘 → 次日开盘(T+1 可执行),最不利也最关键的一段。
  • 变体:V0 朴素 / V1 日内对照 / V2 大盘门控 / V3 动量(阳线) / V4 均值回归(阴线) / V5 门控+动量 / V6 资产过滤(只做海外隔夜跳空类)。
  • 交易成本:所有可执行隔夜变体均减 COST_PER_NIGHT = 0.0006(双边 ≈0.06%/夜);cost_amount_analysis.py 进一步按"最低5元 vs 免五 + 滑点"扫描真实总成本。
  • 资产分类gap=overseas(QDII/港股/商品,内嵌海外隔夜跳空)vs gap=domestic(纯A股/国内债)。先分类、不偷看收益
  • 样本内/外:样本内 ≤ 2023-12-31,样本外 ≥ 2024-01-01(顺风期,需提示 regime 反转压力测试)。
  • 局限:以"当日收盘"作买入代理,无法还原 14:10–14:55 入场与 9:25 竞价出场;日线未复权;未计滑点/最低佣金(由 cost_amount_analysis 单独补)。

关键结论(已用真实数据反复验证)

  • 框架逻辑没坏:固定买阳全历史年化 +20%、样本外 +32%、回撤 -11.2%(远优于买阴 +6.9%)。
  • 滑点是唯一真杠杆:0.05%/夜→年化+7%(现实好版本);0.10%→+0.38%(薄);0.20%→-12%(转负)。压不住滑点就别上。
  • OTC/场外基金不可落地:场外按 15:00 净值结算、赎回 T+1/T+2,不存在"次日开盘价"变量,隔夜跳空 alpha 机制上无法捕捉;核心仓不应据此调整。可迁移的是择时纪律(门控+趋势+缩量回调+严格止损),不是隔夜博弈本身。
  • 三条致命约束:T+1 隔夜盲区(结构性)/ 高度择境(趋势年赚、震荡熊市亏)/ 成本侵蚀+执行力(目标利润仅 1%–1.5%,人性会瓦解正期望)。

周末跨休持有结论(v1.2.0 新增,backtest_weekend_hold.py

对 14 支内嵌海外跳空 ETF 回测(2022-07 起,成本 0.06%/夜):

  • 池均几乎无差:周五均值 +0.111%/夜 vs 非周五 +0.118%/夜(溢价仅 +0.008%/夜)。盲目跳过周五会白白丢掉差不多的 alpha——框架不应在周五整体空仓。
  • 但个股是"分化放大器":周五 σ 更高,且恒科(513180)周五净 -22.8%、中概(513050) -21.7%(系统性周末负漂移),亚太(159687) -7.3%;反过来油气(513350)周五净 +45%、能源化工(159981) +57% 周末大赚。
  • 落地建议(Friday overlay):周五不整体空仓,而是剔除历史周末负漂移标的(513180/513050/159687),保留其余。详见 outputs/weekend_hold_report.html

与专家方法的衔接

本套件产出的是量化证据与每日信号。专家(agent MD)负责:解读证据 → 做选择偏差审计 → 判定 OTC/场内机制可行性 → 生成"结论先行"的最终报告;screen_today.py 则把"如何执行"焊进框架逻辑,用户每天照卡挂限价单、次日机械卖出即可。引擎不替代裁决,只提供可复现的数据底座与可执行的操作卡。