先读文档和确认算子签名。
第一步开始:先确认上市天数的兜底字段,再写 SQL。
AIStudio 现在是停止状态,运行会自动启动,规格 K4(16C/32G),6.4 宽币/分钟。任务要求用 AIStudio 引擎,结束时我会停掉它。先跑因子加工。
诊断里有一处不对:行业中位数只填上了约 29 条,3360 条仍然为空,不符合「先填充」的预期。先查这些行的特征,再决定怎么处理。
第二步:落库名取任务头部指定的 bqd1777。步骤文字里的 value_roe_neutral 和 EP/ROE 合成像是模板残留,与「换手率标准差」不一致。
落库回读一致(8,176,921 行,无重复键,无空值)。第三步前先探查行情表对停牌日的处理和 AIStudio 上的环境,这决定了收益怎么对齐。
第二步已落库。第三步按「SQL 优先、numpy 交叉核对」做,拆成几个脚本。先写公共函数和 SQL 拉取脚本。
第三步先用 SQL(c_rank、c_ntile、m_lead)算日度 RankIC 和月末十分组,再在下一个脚本里用 numpy 复算对照。
SQL 版 RankIC 和十分组已跑通。下一步写 numpy 复算脚本,做三件事:和 SQL 逐日对账、按真实月末持仓期做分组与多空、跑自检。
第三步主脚本:读 bqd1777,用 numpy 复算并与 SQL 逐日对账,再做月度分组、多空和自检。
脚本里有两处残留要先清掉:月末信号日的推导写了两遍,另有一段恒为空的退市查询。清理后再运行。
输出被截断了前半段,先从结果文件读取日度 IC、SQL 对账和分组部分。
自动审核暂时不可用,我重试同一个只读命令。
s3c_extra.py 里留了两段写错后没删的 if False else None 查询,先删掉再运行。
报告前补一项检查。停牌日行情表仍有行,如果这些行的换手率是 0,会拉低窗口内的标准差。先查清楚,再决定报告里怎么写这一条。
检验已全部跑完,SQL 版与 numpy 版口径一致。现在写报告生成脚本:所有数字从结果 JSON 读取,并在构建时断言正文依赖的结论。
断言拦下了我自己的标签错误:k 从 0 开始,上升的台阶是 G2→G3,但标签写成了 G1→G2。同时去掉那条没有意义的年度断言。
报告已生成。交付前先检查内联脚本语法、有无外部依赖,以及页面能否在无浏览器的环境里跑完绘图。
语法、离线依赖和模拟绘图都通过。最后核对报告里「翻向每年方向一致」这句是否成立,清理临时探查文件,然后停止 AIStudio。
四步都跑完了,报告在 /home/aiuser/work/cowork/2026-10-28-094408/myfactor_turn.html,AIStudio 已停止。
这个因子是负向有效,但不是你设定的多头方向。 换手率标准差越大,之后一个月越差。日度 RankIC 均值 -0.089,Newey-West t 为 -12.4,朴素 t 为 -44.4,虚高约 3.6 倍。所以 IC 为负,十组收益从 G1 到 G10 基本逐级下降。按你设定的多 G10 空 G1,扣费后年化 -23.9%,最大回撤 -88%,不可用。反过来做(多 G1 空 G10)每年都赚,扣费年化 +17.5%,夏普 1.17,但这是看完结果才选的方向,有样本内偏差。
bqd1777,回读 8,176,921 行,与写入一致。
value_roe_neutral,因子描述里有 EP/ROE 合成,这些与「换手率标准差」不符。我按头部指定的 bqd1777 执行,因子只用换手率。自检里有四项没有完全通过,报告里都如实写了:
窗口长度 20 日是我选的默认值,你没指定。报告里说「高换手波动对应投机脉冲」的解释已标为猜测,没有验证。
AIStudio 这次运行了约 40 分钟,K4 规格按 6.4 宽币/分钟计,估算约 250 宽币,未按账单核实。
内容由 AI 生成,请核实重要信息