ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

读懂Vibe-Trading alpha bench --strict:随机对照组与样本外门槛的硬门禁

读懂Vibe-Trading alpha bench --strict:随机对照组与样本外门槛的硬门禁 读懂Vibe-Trading alpha bench --strict随机对照组与样本外门槛的硬门禁【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading在量化因子研究里IC 显著并不等于因子有效。Vibe-Trading 是一个面向个人投资者的 AI 交易代理Your Personal Trading Agent它内置了 450 个量化 alpha 因子库Alpha Zoo。通过一条alpha bench --strict命令你可以为每个因子加上一道随机对照组 样本外验证的硬门禁快速筛掉看起来有效、其实是噪音的假因子。本文带你读懂这套严格基准测试strict bench的设计逻辑与使用方法。为什么传统alive门禁容易被骗Vibe-Trading 内置 4 个因子动物园zooqlib158Qlib Alpha158、alpha101Kakushadze 101 公式化 alpha、gtja191国君证券 191 因子、academicFama-French 五因子 Carhart 动量。默认基准测试bench_runner.py的判定很朴素平均 IC 0.02IC 为正的比例 0.55单样本 t 值 2满足就标记为alive存活。问题在于这套门禁是跟零比较的。如果某因子的 IC 其实来自共享的横截面 beta比如市场风格、市值效应那么把因子值随机打乱后算出来的 IC 可能差不多高——传统门禁对此毫无察觉。A 股社区的 9 个月审计12 个单因子 191 个 GTJA 变体给出的结论非常扎心每个因子都能在某个参数设置下通过原始 IC 测试但只有12 个中的 1 个能通过并行的随机对照检验。这就是--strict模式诞生的直接原因。--strict 如何构建随机对照组核心实现在 bench_runner_strict.py。它的关键步骤行内打乱row shuffle对每个交易日把因子值在同一行同一天的截面内随机重排保留截面分布、彻底破坏信号→股票的对应关系。NaN/inf 单元格原地固定见_shuffle_within_rows()。多组对照取均值默认用 5 个随机种子各打乱一次逐日 IC 取均值得到一个稳定的零信息基线IC 序列compute_random_ic_series()。配对 alpha每个交易日计算信号IC − 随机IC再对这个差值序列做单样本 t 检验得到alpha_t。只有因子显著优于随机打乱自己才算通过第一道关。这个设计等价于 Harvey-Liu-Zhu2016多重检验修正的效果在大因子库中发表级因子的 |t| 阈值应接近 3.5 而非 2.0。StrictThresholds 保留了 2.0 的默认值以兼容旧结果也支持传 3.5 做更严的检验。一个值得注意的工程细节random_control参数是必填且无默认值的见 run_bench_strict()。漏传会直接抛TypeError——因为一次真实的事故证明意外跳过随机对照会让 alpha 虚高 3~8 个百分点。样本外OOS硬门禁train/test 双段验证光有随机对照还不够。因子可能在训练期碰巧强于随机样本外就失效。--oos-split参数如--oos-split 2023-01-01把数据按日期切成训练段与测试段边界日只进训练段防止泄漏两段必须各自独立通过 t 值门槛。读懂 4 类判定结果categorise_strict()会把每个因子归入 4 类输出中带有对应计数类别含义新手理解confirmed_alive✅全样本 训练段 测试段全部通过真正存活的因子train_only⚠️全样本通过但样本外掉进噪音区间过拟合候选谨慎对待reversed_strict❌配对 alpha 显著为负或样本外方向翻转信号其实是反的诊断价值最高noise与随机无法区分直接忽略另外ic_count 30有效样本不足 30 个的因子会被直接判为noise避免小样本 t 值虚高。快速上手一条命令跑严格基准先安装如需要git clone https://gitcode.com/GitHub_Trending/vi/Vibe-Trading然后一条命令即可开启严格门禁vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2018-2025 \ --strict --oos-split 2023-01-01常用参数速查--strict开启强制随机对照组核心开关--oos-split YYYY-MM-DD样本外切分点只与--strict搭配生效--random-seeds N随机对照种子数默认 5调大可收紧 t 值但速度约慢 6 倍--top N保留 Top-N 因子默认 20运行横幅会明确标注[strict: random control, oos 2023-01-01]让你在结果里一眼确认门禁已生效见 cli_handlers.py 的入口装配与 命令行参数定义。CLI 行为由 test_alpha_bench_strict_cli.py 等测试持续守护。写在最后alpha bench --strict的本质是把因子研究中最容易自欺欺人的两处——没跟随机比和没做样本外——变成流程里的强制步骤。对于新手而言记住三条就够用没加--strict的alive结果只配当初筛看结果先数confirmed_alive再研究train_only为什么掉队想更严格把阈值提到 3.5Harvey-Liu-Zhu 建议值。让门禁替你把噪音挡在门外你的研究时间才能花在真正有效的因子上。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表