akg-factor-bridge/CLAUDE.md

5.0 KiB
Raw Blame History

CLAUDE.md — akg-factor-bridge 项目指引

本文件写给之后在这个仓库工作的 Claude 会话。先读完再动手。

一句话定位

数据底座 astock-kg 与通用因子平台 quant_factor_service 之间的因子导出桥:基座只暴露只读视图,桥算全部子因子并在桥内合成复合因子 akg_score写平台因子表并注册元数据平台管存储、调度、评价。桥不 import 两边任何代码,靠 .env 三处数据库连接独立工作。

文档地图(先读哪份)

  • 唯一事实源docs/量化因子导出与合成设计.mdv2.0。注意astock-kg 仓库 docs/ 下的同名文档是 v1、方案已被推翻别读。
  • README.md架构、六因子口径、HTTP 接口表、用法、上游约束、里程碑状态。
  • docs/选股说明_下游对接.md选股计划的业务逻辑与下游对接。
  • docs/选股计划入池_对接说明.md与决策系统夜间推理的对接含池深与 PMS 下单候选深度的关系,第 7 节)。

部署与联动2026-09-01 现状)

  • 桥部署在 192.168.16.155 的 8300 端口,常驻容器跑 uvicorn无热加载:代码更新要在桥机拉代码并重启桥容器(重启前须经用户同意,避开每早 07:10 因子构建窗口)。
  • 上游astock-kg 基座PG 视图 sql/astock_kg_slot_views.sql基座机 tlai4090 即 192.168.16.178SSH 端口 2280用户 tlai
  • 下游甲:决策系统 bionic_trader192.168.16.188:38000每晚认知扫描读 Mongo 股票池分组 AKG_PLANpool.py push 写入)。
  • 下游乙PMStradingSystem 仓库)建仓不读 Mongo 池,直接调本桥 GET /plan 取主榜前 PMS_PLAN_TOP_N 名做下单候选。
  • 基座前端今日页的交易计划、个股页的计划判决,都代理本桥接口(基座 .env 的 AKG_BRIDGE_BASE
  • 时区:容器与各服务器为国际时间,调度排程按北京时间,谈时间先说清是哪一路。

纪律(历次用户令,逐条必守)

  1. 全程 Docker不在宿主机直跑 pip、python、psql。开发机没有 Python 依赖环境是常态,需要真实依赖的测试用一次性容器跑(见下)。
  2. 只读优先分析、对账、体检工具全是纯查询写路径只有因子表写入common.write_factor、计划文件生成与 Mongo 入池pool.py push。动写路径前想清楚。
  3. 口径变更先看数据:改 UPSIDE_NEG_TOLERANCE、POOL_THEME_CAP 这类口径旋钮之前,先跑 score_lab.py 对比器拿读数,改口径属拍板事项。
  4. 代码里"勿回退"注释都是实测教训(例:观察档下界、锚强度排序),改动碰到就先读注释里的案例。
  5. 交易系统或因子平台仓库有哨兵断言测试,其登记清单已丢失:往平台侧加表、加调度前,必须先在那边仓库重建登记清单再动手。
  6. 提交信息用中文短句说清楚做了什么。

测试(改完必跑)

纯逻辑单测三个不连库。test_plan_verdict.py 全离线,开发机系统 Python 直接跑;另两个需要 pandas 与 fastapi 实体,在有 Docker 的机器用一次性容器跑全套:

# 开发机(零依赖,秒出)
python3 test_plan_verdict.py

# 基座机 tlai4090全套三个一次性容器跑完即弃
rm -rf ~/akg_tmp_bridge_test && git clone -q git@192.168.18.24:zlt/akg-factor-bridge.git ~/akg_tmp_bridge_test && docker run --rm -v ~/akg_tmp_bridge_test:/w -w /w python:3.12-slim bash -c "pip install -q -r requirements.txt; for t in test_plan_verdict.py test_pool_logic.py test_xxl_trigger.py; do echo == \$t ==; python \$t || exit 1; done"; docker run --rm -v ~/akg_tmp_bridge_test:/w python:3.12-slim rm -rf /w/data /w/__pycache__; rm -rf ~/akg_tmp_bridge_test

预期:三个测试分别打出 ALL OK 与 ALL PASS。2026-09-01 实测全过。

代码地图

  • run.py命令行入口views 自检、register 注册、build 构建、freeze 冻结、apply-views 建视图、probe 体检、push-pool 入池)。
  • factors.py六因子构建器upside、heat、event、transmission、gate、score与事件极性表。
  • plan.py当日计划装配与渲染collect、generate
  • pool.py计划写 Mongo 股票池 + 触发决策系统增量补扫decide 是入池决策纯函数,有单测)。
  • plan_reconcile.py逐票对账explain 命令行与结构化判决verdict供 API同一段判决代码两种出口。
  • api.py常驻 HTTP/plan、/plan/verdict 等,端口 8300
  • xxl.pyXXL-JOB 调度触发入口(子进程执行保证每次重读 .env
  • freeze.py每日输入冻结可复现性的落地件manifest.json 是审计线)。
  • tracks.py赛道三路映射解析。score_lab.py口径对比器。probe.py、chain_diag.py体检工具。

已知上游约束

README"已知的上游约束"一节列了三条要在 astock-kg 侧修的quiet 截断、成员抽样无排序、行情快照日错位)与传导覆盖偏低的主因(板块级异动源缺失),桥侧只告警、修不了。