Files
worldquant-alpha-system/docs/worldquant-knowledge-base/03-engineering/2026-operating-lessons.md
T
yuxuanhui 69c19ed25f
Deploy production / deploy (push) Successful in 51s
Refactor project components and workflows
2026-09-20 11:20:51 +08:00

7.1 KiB
Raw Blame History

2026 工程经验:可恢复、可对账、可核验

只引用今年帖子,不安装或执行其代码。这里整理职责与故障模式,不宣称项目已经实现。

1. 请求、业务结果与配额分层

今年动态并发帖建议成功后渐增、429 时降低并发并退避;它是示例策略,不是平台配额保证。来源:【代码分享】遇到429时,我用代码写了个一套管理机制来动态控制并发数(2026-03-23)。每日 simulations 使用量查询见 获取 WorldQuant 每天剩余回测次数、已回测次数(2026-08-28)。调度器应以实际响应、Retry-After 和可取得的当前配额为依据,而不是固定并发数字。

认证失败、限流、暂时网络错误、任务业务失败分别处理;提交类请求出现未知结果时先对账,不能盲目重发。认证复用和限流目标是减少冗余请求,不是用多账号/多会话规避额度。

2. 长任务保存状态

checkpoint CSV 与报告帮助批处理断点续跑,来源:【代码工具分享】让 Alpha 回测告别手工时代:一条命令跑完整个研究闭环(2026-06-28)。跨 API/网页的台账用 RESERVED 防止重复派发,来源:一个很小但很有用的工具:Alpha Backtest Ledger,避免重复回测(2026-05-31)。

CSV 本身不保证并发原子性。需要记录任务身份、租约或领取时间、simulation/alpha ID、最后成功阶段和 unknown 状态恢复。规范化公式和完整 settings 参与去重;不要盲目统一代码大小写,可能改变字段或字符串含义。

3. 缓存有完整性清单

只记录最后更新时间不够;缺页或遗漏 Alpha 会低估相关性。来源:本地check ppc的完整方法及代码,助你GLB PPA开发一臂之力(2026-08-29)。缓存应保存数据池类型、分页完成状态、去重数量、失败页面、日期区间和采集版本。

浏览器向 Python 传递缓存的社区方案强调字段校验。来源:分享一个连接插件中prodmemo和python的一个小脚本,帮助大家可以将页面上缓存的pc拿到python里用(2026-08-09)。应验证输入 schema 和对象范围,不能把未经核验的缓存直接用于提交判断。

4. 研究反馈与 OS

将 OS 的检查字段同步到本地,而不只看 IS。帖子提出检查 COMPENSATED_ALPHA 的 WARNING;是否可计费/配点要按当时平台对象核验。来源:【QUANT101】什么是 Non-Compensated Alpha? 如何筛选 Compensated Alpha?(2026-03-28)。

流水线可以贯通生成、模拟、去重、相关检查和 OS 回流;社区 MCP 架构的存在不证明其收益有效。来源:Pipeline MCP 深度版:面向多样性、高质量、低相关性 Alpha 持续生产的编排架构实践(2026-04-20)。研究任务完成与外部提交应分开授权。

5. 数据获取与审计

今年帖子介绍认证后通过 Zendesk API 读取论坛资料。来源:Python纯代码获取论坛内容(不使用任何无头浏览器等操作)(2026-05-14)、通过 Zendesk API 直接获取 WQB 平台资源 — 告别浏览器依赖(2026-05-17)。本次实际使用这一可访问接口完成目录与评论读取;只保存需要的来源目录和归纳,不把会话 Cookie 写入知识库。

建设次序

先补台账和完整结果保存,再做断点恢复与配额控制;之后建设相关性缓存完整性检查、结构化失败回流,最后扩大候选生成。架构建议见 工程路线。没有修改本项目运行代码、数据库或全局代理规则。

2026-09-11 补充:跨区域重跑的比较与恢复边界

来源:将 OS Regular Alpha 重跑为 ALL/D1 的脚本(2026-09-08 发布,本次读正文及 5 条评论)。作者称直接 REST 请求需要显式指定 REGION_AGNOSTIC,仅改 region 不够;这是社区实现经验,本库未执行代码、验证请求 schema 或复现其结果。

可迁移的工程做法是先清点候选、小样本检查,再扩大批量;逐项记录源 Alpha、模拟引用和终态。POST_ERROR 不能一律视为已处理,未知受理结果须先对账,429 等临时错误与字段不支持多区域的兼容性错误应分别处理。评论补充保持原有 decay、pasteurization 等设置,避免把参数变化误归因于跨区域迁移;新的 universe 口径也要单独核对。

帖子开头声称批量重跑“一定能找到”可提交候选,但正文也明确完成不代表指标或提交资格保留。本库只保留后一边界;没有可提交结果也不足以单独证明原信号质量低,仍需排查覆盖、设置和区域适用性。

2026-09-18 补充:断点声明与代码行为要对照

OS Alpha 批量重跑 RA 两脚本(2026-09-16)声称支持续跑,但所附代码在 simulate_single 返回后无条件 mark_done(k),而异常或缺少 Location 的路径可能返回 None。这会把未确认完成的任务记为已处理;应保留已受理引用及 UNKNOWN/待对账状态,不能仅靠 done 集合跳过。进度键也没有覆盖全部 settings,改动未入键参数后可能误复用旧进度。这些是静态阅读发现,没有运行脚本或验证平台端行为。

同帖还包含自动 PATCH Alpha 标签的步骤,因而不是纯读取工具。另一篇 RA 说明(2026-09-11)所述“不设置属性、不提交”不能自动套用到不同脚本。AlphaSubmitter(2026-09-07,本轮补录)宣传多轮自动重试,但没有给出足够的幂等或受理状态核对证据;POST 超时不能直接解释为服务端未创建,重发前需先对账。

意见留言墙本轮新可见评论提出登录过期导致界面状态丢失、回测次数与 Alpha 列表数量不同等问题。它们是用户反馈,不是已确认平台故障:先保存任务引用与界面筛选状态,再分别核对请求次数、失败/取消状态和结果对象数,避免仅凭两个总数推断丢数据。本轮没有复现相关 UI 行为。