平台注册状态默认 paused(六个 akg 因子不参评,方案 2.5),旋钮 FACTOR_REGISTER_STATUS;台账加 008 池深选项二、009 上线记录
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
62dbe57aed
commit
117f77bc71
12
common.py
12
common.py
|
|
@ -125,15 +125,21 @@ def write_factor(table: str, df: pd.DataFrame, mode: str = "daily") -> None:
|
|||
|
||||
|
||||
def register(factor_code, display_name, table, category, desc,
|
||||
author="akg-factor-bridge") -> None:
|
||||
author="akg-factor-bridge", status: str | None = None) -> None:
|
||||
"""注册 factor_metadata。自适应实际存在的列(避免猜死 schema)——
|
||||
列名以线上 factor_metadata 为准,本函数只写它有的列。"""
|
||||
列名以线上 factor_metadata 为准,本函数只写它有的列。
|
||||
|
||||
status 默认取 config.FACTOR_REGISTER_STATUS(2026-09-02 方案 2.5:这个系统只做主观选股,
|
||||
六个 akg 因子不参与平台的因子评价与组合成员候选;平台参评列表只取 status='active',
|
||||
所以默认注册为 'paused',与平台自己的"暂停"取值一致)。要恢复参评,把旋钮设回 active
|
||||
再跑 run.py register。"""
|
||||
values = {
|
||||
"factor_code": factor_code, "display_name": display_name,
|
||||
"target_ds_name": "ds_a", "target_table_name": table,
|
||||
"author": author, "description": desc,
|
||||
"category": json.dumps(category, ensure_ascii=False),
|
||||
"frequency": "daily", "status": "active", "factor_type": "single",
|
||||
"frequency": "daily", "status": status or config.FACTOR_REGISTER_STATUS,
|
||||
"factor_type": "single",
|
||||
}
|
||||
with db.factor_conn() as conn:
|
||||
with conn.cursor() as cur:
|
||||
|
|
|
|||
|
|
@ -189,6 +189,7 @@ BIONIC_SCAN_KEY = os.environ.get("BIONIC_SCAN_KEY", "")
|
|||
# --- 候选卡(2026-09-02 主观选股改进方案,docs/主观选股改进方案_2026-09-02.md)------
|
||||
# 桥从"打分排序器"改成"候选卡装配器":分数与档位不动,另出带理由的候选单。规则在 card.py。
|
||||
# 两个旋钮保持默认、不在历史样本上挑参数,等样本外复盘读数再拍(09-02 拍板)。
|
||||
FACTOR_REGISTER_STATUS = os.environ.get("FACTOR_REGISTER_STATUS", "paused") # 平台注册状态:paused=不参评(方案 2.5,平台参评列表只取 active),active=参评
|
||||
CARD_START_PCT = float(os.environ.get("CARD_START_PCT", "3")) # 门槛二:数据日涨幅达到几个百分点算已启动(与基座热点扫描同口径)
|
||||
CARD_ACCUM_MAX_AGE = int(os.environ.get("CARD_ACCUM_MAX_AGE", "30")) # 确认线:吸筹评分日龄上限(交易日)
|
||||
# 计划快照落点(容器内路径;仓库根挂在 /app,故默认落在仓库 data/plan/)。
|
||||
|
|
|
|||
|
|
@ -50,6 +50,20 @@
|
|||
- 预期:PMS 新建仓改由人工裁决,自动止血;模拟盘只在 155。
|
||||
- 复核日期:候选来源切换拍板时(001 复核之后)。
|
||||
|
||||
## 008 · 2026-09-02 · 池深不变式:PMS 计划深度改回 50
|
||||
|
||||
- 改动:PMS 运行参数 PMS_PLAN_TOP_N 从 100 改为 50(155,参数表 pms_runtime_param,updated_by 标 claude),与桥入池的 POOL_TOP=50 对齐。用户拍板选项二。回退是同样方式设回 100。
|
||||
- 依据:方案 1.11,主榜第 51 到 100 名的强传导票 PMS 能买、却不在决策系统夜间分析池里。用户认为 100 与 50 差别不重要,先对齐。
|
||||
- 预期:PMS 探针的合格候选数不变(改前基线 41 只,因为强传导档本身不足 50 只);池深不变式恢复成立。
|
||||
- 复核日期:候选来源切换时一并看。
|
||||
|
||||
## 009 · 2026-09-02 · 候选卡与快照上线(155 生产)
|
||||
|
||||
- 改动:生产桥仓库拉到 62dbe57(候选卡、快照、环境标签、复盘脚本、风险名单只读一次)。代码是卷挂载,构建、计划、入池脚本即刻用新代码;常驻接口进程要重启桥容器才加载新代码,重启由用户执行(Claude 的重启命令被权限分类器拦下,属红线项不绕过)。入池来源保持档位(POOL_SOURCE=tier)、切片关闭,PMS 行为不变。决策系统接口地址(REGIME_API_URL)待用户写入配置并重建容器后环境标签才有值,之前为"未知"。
|
||||
- 依据:方案 2.6 执行顺序;上线前核对——一次性容器计划与入池干跑通过、两套单测通过、决策系统接口从 155 可达。
|
||||
- 预期:每交易日 07:10 起落当日快照(data/plan/plan_<数据日>.json)、接口带生成时刻与代码版本;PMS 探针合格数与改前一致。
|
||||
- 复核日期:09-11 首份周报核对快照连续性。
|
||||
|
||||
## 007 · 2026-09-02 · 坏信号集合三处同源
|
||||
|
||||
- 改动:坏信号集合 {SELL, AVOID, DROPPED} 在桥内归一到 card.BAD_SIGNALS,pool.py 从它引用;决策系统 pms_advisor.py 与 PMS rule_gate.py 各自写死,三处同改。
|
||||
|
|
|
|||
Loading…
Reference in New Issue