claude_dev
|
877723ab4a
|
feat(api+frontend): D7 落成边亮灯——假设→因子边可见性三处 [vps]
CI/CD / test (push) Successful in 40s
CI/CD / nas-deploy (push) Successful in 30s
CI/CD / nas-verify (push) Successful in 9s
体验稿(8823)逐条过审拍板后动工,不造新机器只做可见性:
件① 三件套(spec §7):
- 1a 卡片已产因子清单:列表项内联 factors(registry hypothesis
血统反查:名/表达式/origin/落成日);单因子名 factorId 前端退役
- 1b 分解批次历史:GET /pipeline/hypotheses/{id}/decompose-jobs
台账新→旧(QA tasks/list 端点形状照抄),卡片折叠区按需拉取
- 1c 轮次进度:run_decompose 每轮 on_progress 回调→内存 job
progress(currentRound/totalRounds/passed/regen;真轮数非 QA 摆设),
台账仍只记起跑+终态;worker 协议改收 job_id
件② 工厂来源列:factors 端点带 origin/hypothesis 血统,
⚡decomposer/✍manual 徽标+回链假设池
件③ 琥珀待办:todos 聚合加 queued/data_check 卡(已确认未分解),
分解转 building 即消行——人工卡点②显性化
件④ 结果持久落卡:前端一次性弹层退役,终态摘要+清单+批次全在卡
测试:后端 TestD7Visibility 六件(历史端点/内联清单/进度中飞可见/
终态不带过程态/琥珀消行/工厂血统)+前端三件套三测;8 目录 2780 绿
|
2026-10-09 11:51:00 +08:00 |
|
claude_dev
|
168520014d
|
feat(api+frontend): 分解 job 化——POST 立返+后台任务+卡片轮询,治响应孤儿化 [vps]
CI/CD / test (push) Successful in 38s
CI/CD / nas-deploy (push) Successful in 29s
CI/CD / nas-verify (push) Successful in 8s
10-09 终局诊断:分解服务端已成功(registry 落册)而浏览器先超时断开,
uvicorn 对断连请求不写访问日志——当日全部「静默卡死/按钮复活无提示」
同源。分钟级 LLM 任务架在同步 HTTP 上是架构错配,前端 300s+模块级
在飞登记两缓解随本刀退役(7ae6edd/3de3cb0 完成 mission)。
移植 QuantaAlpha frontend-v2/backend/app.py 任务字典范式:
- POST /pipeline/hypotheses/{id}/decompose → 202 立返 job;前置校验
同步 fail-fast(404/状态 409/LLM 未配 503);同卡在飞 409 互斥
(治重复点击堆积 21 条)
- sanguo_api/decompose_jobs.py:内存 job 字典(在飞真相,QA tasks 同款)
+ asyncio.create_task 后台跑原 worker(_DECOMPOSE_LOCK/P2-5 竞态
守卫语义不变);LLM 失败固定文案不泄露上游体(P3-8)
- pipeline_store.decompose_jobs 表:跨重启 run 台账(QA 没有,我们补
——run 台账先于页面);台账 running 无主=重启打断,读侧判 failed 回写
- GET /pipeline/hypotheses 卡片项附 decomposeJob(内存→台账→僵尸判死)
- 前端:4s 轮询 getHypotheses 单一到终态;挂载即续接服务端在飞任务
(切页/刷新不丢);卡片新增「分解」摘要行(上次通过/失败持久可见)
- 测试:TestDecompose 全类改 job 契约(fixture with TestClient 保活
后台任务)+新增 TestDecomposeJobs(202 立返/在飞 409/台账跨重启/
僵尸 running 判死);api+portfolio+factor 1700 绿
- spec:总设计 §13 P5.3 追加 job 化决议;UX 重设计 §7 件④地基已落
|
2026-10-09 10:08:36 +08:00 |
|
claude_dev
|
9d3888496b
|
fix(pipeline): 收编波三件——卡 id 加随机段防同秒碰撞+save source 白名单+长度上限+502 detail 固定文案不再透传上游响应体 (审计 P3-6/7/8 收编) [vps] [no-doc]
CI/CD / test (push) Successful in 48s
CI/CD / nas-deploy (push) Has been cancelled
CI/CD / nas-verify (push) Has been cancelled
|
2026-10-05 22:28:55 +08:00 |
|
claude_dev
|
434d7cb357
|
feat(config): QMT 部署身份单一权威源 config/qmt_identity.json——P2-18 账号硬编码根治(⚖️-2 用户拍板:确认永为模拟号+令根治硬编码)
CI/CD / test (push) Failing after 7s
CI/CD / nas-deploy (push) Has been cancelled
CI/CD / nas-verify (push) Has been cancelled
根因三层(全案=audit/20261005_qmt_identity_env_plan.md): schtask 无 per-task env+机器级 env 未设→wrapper 被迫字面量;「部署身份」无单一权威源(env 名分裂三个);模拟号零安全压力致 32 文件 88 处 copy-paste 扩散。
- qmt_gate_common.load_identity 正典装载器(:14-59): env SANGUO_QMT_ACCOUNT/BIGQMT_ACCOUNT_ID(兼容别名)>json>RuntimeError fail-loud;SANGUO_IDENTITY_JSON 显式指路不存在=立即报错;查找=repo 相对>C:\sanguo_vnpy_v2\config\(生产副本回退位)
- 灾备腿同源: relogin/qmt_bridge_probe/setclip 改 from qmt_gate_common import ACCOUNT
- 桥腿镜像同链: xt_gateway._qmt_account/qmt_gateway_client._identity_default_account/is_price_source_vps/bridge_switch_ops(3 处 env 注入+1 处内嵌探针串)/check_xtquant——env 带默认的硬编码默认值全数退役
- xt_eod_wrapper.ps1 改 Get-Content identity json(保持 ASCII);码内 docstring 字面量→占位符(engine/runner/runner_live/live.yaml 注释/README)
- .gitignore 白名单 !config/qmt_identity.json(全局 *.json 曾吞之,git check-ignore 实证)
- tests/trader/test_qmt_identity.py 五钉: 装载链语义(env 双名覆盖/显式指路 fail)+单源一致性(identity≡live.yaml≡watch_accounts≡gate_common≡各腿镜像,休市表 CI 同步测先例)+码面字面量 grep-pin(生产码面零 66639661,只 config 三件套可含)
- 监控 spec: §3.2 账号来源 bullet/§9.A-18 坑条/§12 行数+行号勘正(插入块致 bridge_ping/calendar_probe/relogin_running 引用行号推移);runbook: 非代码资产两行(副本回退路径+生产 wrapper 待改清单=10-08 窗口后 §五③)
生产 wrapper(C:\sanguo_bigqmt 库外)字面量收尾=10-08 复市验证窗口后非代码资产流程;VPS 班车同窗口(护 10-08 07:50 relogin 首班旧码纯净)。trader+api 620 绿。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-05 17:32:42 +08:00 |
|
claude_dev
|
a13ce79b93
|
fix(pipeline): 假设状态机条件 UPDATE+decompose 按卡互斥——update_hypothesis_state 带 allowed_from 守卫(单条条件 UPDATE+rowcount 二次分因,graveyard 终态竞态不可迁出)+decompose 全程 _DECOMPOSE_LOCK(仿 _GRADUATE_LOCK,跨存储两步写丢更新窗口闭合) (审计 P2-5/P2-6) [vps] [no-doc]
|
2026-10-05 15:45:51 +08:00 |
|
claude_dev
|
6251451a76
|
fix(strategy): P0-4 动量/全天候回测前视修复——9:30/14:00 决策取数上界统一 T-1(方案a) [vps]
CI/CD / test (push) Successful in 44s
CI/CD / nas-deploy (push) Successful in 0s
CI/CD / nas-verify (push) Successful in 9s
momentum_timing handle_data 入口换锚 data_date=previous_date: panel 预取/牛熊
分界/成份池/取强舍弱/均线选股/RPS/涨跌停 8 调用点统一传 T-1, pre_date 锚同步;
None 守卫=警告跳过保仓(small_cap 同款)。all_weather monthly(9:30) 判板
current_dt→previous_date, stop_loss(14:00) now_time→prev_date(缺失跳过涨停
观察)。回测不再吃当日未发生的收盘价(10-01 审计 P0-4 本体); VPS 影子盘中当日
bar 未写本就落 T-1=实盘零行为变化, 对齐 small_cap/value/factor_topn 范式。
helper 内部零改动(全经参数传入); _ex 副本已删免二遍修。
测试: 新增 test_decision_date_bound.py(TDD 红→绿钉三面: momentum 全链上界/
all_weather 两处判板); test_handle_data_uses_current_dt_not_today 原断言钉的
正是前视行为, 按新语义更新(日期来自 context 非真实今天, 上界=previous_date)。
8 目录 2495 passed。重跑重评(momentum/all_weather 同窗偏差报告+15.48%夏普
重评)待执行, 见处置档 §5.4/§5.5。
Co-Authored-By: Claude Code <reply@anthropic.com>
|
2026-10-02 08:42:36 +08:00 |
|
claude_dev
|
ca8673e031
|
refactor(strategy): P1-13 删除 TET Phase2 _ex 四副本——退役链收官 [vps]
CI/CD / test (push) Successful in 44s
CI/CD / nas-deploy (push) Successful in 3s
CI/CD / nas-verify (push) Successful in 9s
前置已毕: 四实例(57/60/61/62) 10-01 16:08 停退(infra UPDATE stopped + supervisor
自收割), 10-02 08:05 morn 班 engines_expected/actual/no_restart 三绿 3/3,
vps_count_engines SHADOW=3 亲核 → 文件头自述的 Phase 3 删除授权生效。
本波: 删 4 文件 + live_strategy 工厂表 4 项 + strategies/__init__ 导出 +
runner_backtest choices/分发 4 支/_register_schedule isinstance 五处 +
前端标签表/回测下拉 4 选项 + 测试五回退(value_selection 空名单守卫 parametrize/
sizing 双列 parametrize/portfolio_live 工厂例/live_reconcile 3 标签/
routes_strategy 白名单示例换在册名)。provider get_*_ex strict 接口保留
(TET 契约); paper_accounts 四 stopped 行保留(手工重启得干净 ValueError)。
档随码走: joinquant SUMMARY 产出清单行闭环 + audit 处置档 §四.1 执行闭环
(工序两坑: 守卫列=strategies 非 name; 只 UPDATE 勿先 kill)。
本地 CI 同款 8 目录 2486 passed。
Co-Authored-By: Claude Code <reply@anthropic.com>
|
2026-10-02 08:34:34 +08:00 |
|
claude_dev
|
9389a7b9d5
|
feat(pipeline): 卡片状态转移矩阵(D3)——graveyard 终态禁复活对齐因子墓园决议,非法迁移 ValueError;矩阵禁复活后 COALESCE 清空语义无需实现 #84 [vps] [no-doc]
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-02 08:21:54 +08:00 |
|
claude_dev
|
7a89632472
|
feat(pipeline): hypotheses 表+CRUD——C8 卡片落 pipeline_store(queued 起态/墓园回写/updated_at DESC),行出参=前端 Hypothesis 契约 [vps] [no-doc]
|
2026-10-01 23:35:17 +08:00 |
|
claude_dev
|
d923a05dc8
|
fix(fee): 印花税全链对齐现行万5——10-01审计P1-9: 09-25勘误只修了ledger/ashare_engine/persistence三处, portfolio+影子链15点位漏网(shadow三默认+portfolio_paper+runner_backtest两兜底+live装配+8策略OrderCode close_tax), 影子对账曾自带一倍税差; 生产行显式值核对项已交infra [vps] [no-doc]
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-01 09:28:14 +08:00 |
|
claude_dev
|
075052da54
|
fix(data): 10-01 二轮审计吸收——白名单补四类+三注册表钉死测试; data-monitor 两班入自监; 旧名注册脚本根治; manifest 补齐; spec 三勘正 [vps] [nas]
CI/CD / test (push) Successful in 38s
CI/CD / nas-deploy (push) Successful in 3s
CI/CD / nas-verify (push) Successful in 12s
- P1-5 读写注册表脱节: EVENT_PANEL_TYPES 补 margin/sw_industry/dragon_tiger_seats/
nb_daily(15→19, 09-12 四域注册采集时漏同步); 新增 test_whitelist_sync 钉死
「采集 PER_DATE_TYPES 全族+gdhs == 白名单 == manifest domains ⊇」三同步义务;
nb_hold 季频 asof 语义不进 exact-date 底座(钉死边界, 零消费方)
- P1-6 manifest 脱节: data_manifest.yaml 8 域→27 域(补事件面板族 19 类),
消 data_gap_check 对真实供给误开缺口 issue 的潜伏面
- P1-10 监控自监: SCHTASKS +sanguo-data-monitor-morn/eve(17→19); 两 wrapper 本就
恒 exit 0(设计预留), 非零=真崩, 零假红; 双班全死盲区待 strategy 域 health
mtime 反盯(已转呈)
- docs_audit 旧名根治: register_schtasks.ps1 重写为现役 bs-daily/xt-daily
(旧版重跑会复活死任务双开, 09-01 事故同源); bs_eod_wrapper/xt_eod_wrapper
头注勘正
- docs_audit spec 三勘正: §16.1 白名单 14→19 类; §20.1「零改动自动可读」落空
改「白名单一行即读+钉死测试」; §18.8 自称权威降级+ak-daily 07:35→19:00
(VPS 实查)+xt 行名归一+ak-events 指针化; §20.10.2 硬计数指针化;
§20.15.1/runbook 在岗 17→19
- docs_audit README §4 调度表整表换现役 10 任务; data-monitoring 计划加三行
状态头注(初值退出权威位)
tests: data_platform+portfolio 1397 passed
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-01 09:19:29 +08:00 |
|
claude_dev
|
65921c5c25
|
refactor(strategy): value空名单守卫打磨——指标层/过滤清空分流日志+Ex副本parametrize同测+死代码清 [vps] [no-doc]
10-01 二次审计 P2-4/P2-5 处置:守卫日志两支分流(指标层空=铁定数据故障
vs 6条过滤后全被涨跌停/停牌滤除=状态数据可疑或极端行情待人工研判),
行为一致均跳过调仓保仓;正身+Ex 副本 parametrize 同测(test_sizing 同款
工法, 3 用例×2 类);step5 的 target_num==0 死代码双文件删(守卫早退后
不可达)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-01 07:51:06 +08:00 |
|
claude_dev
|
151f84b79e
|
fix(strategy): value空名单守卫——过滤后归零判数据异常跳过调仓,不再隐式全清仓 [vps] [no-doc]
CI/CD / test (push) Failing after 35s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
09-01 案根修(10-09 截止项):monthly_adjustment 第 4 步「卖出不在 buy_list 的」
在 buy_list 被数据故障清空(候选池非空+6 条过滤/涨跌停过滤后归零)时会清光
全部持仓——第 5 步 target_num==0 守卫在卖完之后,拦不住。修=过滤去重后
buy_list 为空即判数据异常:跳过本轮调仓保持现仓+logger.error 落监控 ERROR
口径可见,下个调仓窗自愈。spec §94 宪法既有原则的实现(全清仓=人选的档 6
防御模式,不被空名单隐式触发)→[no-doc]。正身+Ex 副本(TET 同款复制纪律)
双文件同修;测试=守卫拦(零下单+ERROR 日志)+对照不拦(正常轮换照卖)两例,
tests/portfolio+trader 1028 passed。候选池空守卫(原有)与本守卫合成完整链。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-30 22:16:42 +08:00 |
|
claude_dev
|
3a938ecac8
|
fix(portfolio): 运行注册表种子缺失条目自动 merge——治挑战者双机漏登记缺口 [vps]
CI/CD / test (push) Successful in 40s
CI/CD / nas-deploy (push) Successful in 7s
CI/CD / nas-verify (push) Successful in 8s
2026-09-27 实证: 挑战者 szneul_eq_reb63 登记 config 种子后, 双机运行副本
(ensure_runtime_registry 首触才拷贝)永不知晓——周报 job 按运行副本点名
stage+paper_account_id, 挑战者被跳过=影子 A/B 评测腿(周报/孵化梯/毕业 gate)全盲。
治本: 首触整拷语义不变, 另加 _merge_seed_entries——种子有而运行副本缺的
条目(strategies/factors 双主顾)每次 touch 自动补入, 同名条目运行态为准
(防部署回滚转移结果), 无缺条目不写盘(幂等)。
config 种子挑战者 paper_account_id null→63(周报点名非空才算, 与双机手动补行一致)。
runbook 注册表行同步更语义(档随码走)。a 方案(双机手动补行)已先行落地救急。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-27 18:35:43 +08:00 |
|
claude_dev
|
42ccfe0135
|
fix(docs): 归档断链善后——zcode验收L2晨报引用+infra全库扫8处旧路径补archive/reports前缀(survey/probes/portfolio_backtest三类出处注释; 归档件内部叙述碑文不动+runner_backtest输出参数行为不动) [nas] [no-doc]
CI/CD / test (push) Successful in 24s
CI/CD / nas-deploy (push) Successful in 9s
CI/CD / nas-verify (push) Successful in 9s
|
2026-09-27 08:26:52 +08:00 |
|
claude_dev
|
23d4b6c231
|
feat(pipeline): 偏差日报补调度接线——20:50 APScheduler job 挂 ishortfall 日跑(审计终裁P1, runbook「随周报链跑」落地) [vps] [no-doc]
|
2026-09-27 07:58:20 +08:00 |
|
claude_dev
|
77e006e4d7
|
fix(portfolio): order_event_store 连接显式 close(M9 defer 清账) [vps]
CI/CD / test (push) Successful in 29s
CI/CD / nas-deploy (push) Successful in 11s
CI/CD / nas-verify (push) Successful in 8s
with _connect(...) 只 commit 不 close——sqlite 连接靠 GC 回收(已知坑)。
最小修:新增 _conn contextmanager(内层 with conn 保留事务语义 commit/rollback,
finally 显式 close);append_events/replay_order_states 两处换用。
_connect 本身保留(幂等建表职责不变)。行为零变化,不新增测试;
全量 tests/portfolio 730 passed / 2 skipped 不变。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
2026-09-26 20:12:10 +08:00 |
|
claude_dev
|
cd1793c7c3
|
feat(pipeline): 决策价直取——jq执行委托行[策略:]bar锚+行情价到达fallback(M5竞价段兼治) [vps]
引擎「执行委托」行(live_engine.py 级,全策略覆盖)自带两个被掩埋的锚:
[策略:ts]=策略时钟=真决策 bar 时刻、行情价=派发时刻现价(plan.last_price)。
- order_log_parser:新增 _DISPATCH 行族(不产生 event,七态纯度零 schema 变更),
pending 队列 (symbol,action,qty) 严格键相等+FIFO 挂到相邻 submit/norej-reject
事件(decision_ts/dispatch_price 两键不在 _EVENT_COLS,append_events 自动忽略);
墙钟≤提交 ts 才配对;日志尾未匹配静默丢弃。
- ishortfall_daily:决策价主源=[策略:] 分钟键直查 price_fn(治派发滞后被
「提交前上一根 bar」代理掩埋,实测 delay=+157s 例两根 bar 差);到达价主源不变,
缺当分钟 bar(竞价段 09:29/12:59,M5)回退行情价。行情价禁作决策价兜底
(派发价当决策价会低估延迟成本——宁缺毋假,缺则照旧计 legs_no_anchor)。
无 jq 行的腿(回测/无策略时钟)行为不变。_BASIS_NOTE 两行同步。
- spec §4.7 三价链第 2 条追加 2026-09-26 决策价直取注记(档随码走)。
测试:新增 8(parser 4+腿解析 4,RED→GREEN;含 FIFO 配对/qty 错配不互偷/
无 dispatch 旧行为回归护栏/run_day 端到端 207 vs 旧锚 23 实证)。
全量 tests/portfolio 730 passed / 2 skipped(基线 722+8)。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
2026-09-26 20:11:21 +08:00 |
|
claude_dev
|
b5aa18cf8d
|
fix(pipeline): 冒烟实证修——桥扁DataFrame行走+env全链配方+epoch退化守卫 [vps]
CI/CD / test (push) Successful in 26s
CI/CD / nas-deploy (push) Successful in 9s
CI/CD / nas-verify (push) Successful in 8s
三案皆 VPS 真桥只读探针实证(09-26 冒烟):
- is_price_source_vps:minute_rows_to_map 形态归一(扁 DataFrame[index,close]
实测形态为准,兼容遗留嵌套 dict);_minute_closes 改逐票调桥(扁形态无
code 列,批量切片无法按票归属);_ensure_bridge_env 补 DEFAULT_DATA_
PROVIDER=miniqmt + PYTHONPATH 全链(bridge/vnpy 根/vnpy_v4.4.0/vnpy_qmt_
v0.3.3,SANGUO_VNPY_ROOT 可覆)——缺任一 xtdata import 即断。
- order_log_parser._t_raw_ts:epoch sanity floor=2000-01-01(生产实见
t_raw=0 退化单 3565 条→1970 幽灵日;退化/负/垃圾回退行首时间戳),
毫秒分支移入 floor 内评估。
- 测试 +3(扁/嵌套形态×2、epoch 退化回退×1)。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
2026-09-26 14:07:22 +08:00 |
|
claude_dev
|
e5b523de3f
|
fix(pipeline): 终审修复波——价格源缓存键(日,码)修+分钟键形态解析+probe 形态门+norej 跨文件防撞+prev_close 20 日窗+费用零价跳过 [vps]
CI/CD / test (push) Successful in 24s
CI/CD / nas-deploy (push) Successful in 9s
CI/CD / nas-verify (push) Successful in 6s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
2026-09-26 08:14:49 +08:00 |
|
claude_dev
|
866a5b7cd7
|
fix(data): 监控四修——数据领先期望=绿(research_report 假红案)/data 根条目误拼 data\/data 致三域恒黄(fixture 同镜像假绿一并修)/vintage 结论改挖 tables.holes 判定/sw_industry 带宽校准 5220 成分股粒度 [vps]
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-26 07:49:31 +08:00 |
|
claude_dev
|
a31a344559
|
feat(portfolio): 偏差日报 runner——日志→事件→分量→pipeline_store.is_daily+JSON(spec §4.7 第5条) [vps]
|
2026-09-26 06:00:09 +08:00 |
|
claude_dev
|
24b3009071
|
feat(portfolio): ishortfall 四分量纯函数——三价链+价格移动参考行+恒等式可加和(spec §4.7 第1/2条) [vps]
|
2026-09-26 05:45:03 +08:00 |
|
claude_dev
|
c80cd88c3c
|
feat(portfolio): 委托/状态/回执日志事件解析器+拒单两分法 classify_reject [vps]
|
2026-09-26 05:41:02 +08:00 |
|
claude_dev
|
dba2ec392d
|
feat(portfolio): 委托事件表 order_events——FIX 七态 append-only+重放推导(spec §4.7 第4条,老 backlog 委托入库) [vps]
|
2026-09-25 22:01:33 +08:00 |
|
claude_dev
|
b3bc869a49
|
fix(portfolio): estimate_fee 补过户费万0.1双边+印花税勘误至现行万5(P3 偏差日报④费用口径) [vps]
|
2026-09-25 21:58:17 +08:00 |
|
claude_dev
|
5a938219e0
|
fix(portfolio): register 对已注册策略合并落 backtest_run/paper_account_id(原同名同假设静默 no-op,换挂基准节律被废) [vps]
CI/CD / test (push) Successful in 24s
CI/CD / nas-deploy (push) Successful in 12s
CI/CD / nas-verify (push) Successful in 8s
upsert_strategy 同名同假设分支原直接 return entry,CLI register
--backtest-run/--paper-account-id 对已注册策略 rc=0 但字段丢弃
(今日生产实锤:四策略挂基准从未落库,runbook ≤4 周换挂基准节律被废)。
改为仅显式提供(None 不清原值)时合并覆写两字段;stage/backfilled/
composite_version/历史一律不动(stage 变更只走 transition 状态机)。
TDD:4 新测试(合并 run/合并 account/None 保原值/stage 不越权)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-25 17:07:23 +08:00 |
|
claude_dev
|
a2fb7b4dbb
|
fix(portfolio): 周报双修——回测基准认 equity 列(生产四文件全被 balance-only 拒)+daily_returns 同日多行取末次(多写者防覆写) [vps]
CI/CD / test (push) Successful in 22s
CI/CD / nas-deploy (push) Successful in 12s
CI/CD / nas-verify (push) Successful in 8s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
2026-09-25 14:49:10 +08:00 |
|
claude_dev
|
dc2b2c9282
|
feat(portfolio): 研判留痕模块——七档静态表唯一源+裁决 JSONL(spec §4.7 P3 第一刀) [vps]
|
2026-09-25 10:09:21 +08:00 |
|
claude_dev
|
5f34e24317
|
fix(portfolio): run_daily_recompute 加 as_of 参数根治测试时间脆弱(评审 Important)+清 capital 死键与 unused import [vps] [no-doc]
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
2026-09-24 23:51:00 +08:00 |
|
claude_dev
|
a1f7b34432
|
fix(portfolio): P2 终审 defer 六修——vs=0.0 误判/graduate 并发锁/口令 compare_digest/gitea base_url env 化/静默 except 加 log/测试 db 隔离+覆盖缺口补测 [vps] [no-doc]
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
2026-09-24 23:39:59 +08:00 |
|
claude_dev
|
7b6181caba
|
fix(portfolio): P2 终审修正——注册表运行副本落 data/ 首触自举+CLI --stage 断链+周报 NULL/平盘修 [vps] [no-doc]
M1 运行副本自举:promote.sh 每次 push 都 rsync config/,运行期转移(毕业/退回/
延长)写 config/ 会被下次部署静默回滚——新增 ensure_runtime_file/
ensure_runtime_registry(config/ 种子→data/ 运行副本,首触拷贝,已存在幂等不覆盖),
CLI/weekly_report/routes_pipeline 默认全改 data/(strategy_registry/
strategy_events/factor_registry/registry_events 四件,env 名不变);
factor verdict 端点经同款 ensure 自举;graduate 证据模板路径同步。
M2 register --stage 直落初档(此前只在 transition 生效=断链)。
M4 load_actual_daily_returns 剔 NULL total_equity 行(不折算 0 毒化收益链)。
M5 daily_returns 平盘日照记 0.0(剔除会低估 TE)。
T5-①删 set_pipeline_paths 死注入(app.py 同步);T5-②ladder/todos 阈值只取
一次传 gate;T5-③梯子 te/fill/vs 任一 None→周报待算(去 or 0.0 硬凑);
T5-⑤reviewIssue 非整数 422;T5-⑦graduate 尾巴(事件/模板/gitea)失败不 500,
200 带 warning 提示人工补。
测试:种子自举幂等/CLI --stage/NULL 剔行/平盘 0.0/verdict 首触自举端到端;
tests/portfolio 661 绿+tests/factor 396 绿。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
2026-09-24 21:57:56 +08:00 |
|
claude_dev
|
7c255f5e6d
|
feat(api): /pipeline 五端点接真——梯子/阈值配置/毕业口令/驾驶舱聚合/因子评审 [vps] [no-doc]
spec §4.5 决议 L 六件之 4+驾驶舱接真:ladder 拼前端形状;gate-config 两级阈值
+审计;graduate=口令+影子 gate 硬闸+分配落档+J1 issue;todos 聚合本机工件;
factor verdict 三按钮;APScheduler 20:45 周报 job(双机各跑各的,B')。
附:pipeline_store.set_threshold 首改审计 old_value 落代码默认(原 None,
Task5 验收测试=配置页审计可读被覆盖前生效值);router 级依赖取
sanguo_api.routes.verify_token(Authorization 头版,与 routes_factor 同款)。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
2026-09-24 21:10:05 +08:00 |
|
claude_dev
|
727dfb0f79
|
feat(portfolio): 周报三指标——TE 年化/fillRate 拒单计分母/vsBacktest 周差+幂等重算 [vps] [no-doc]
spec §4.5 决议 L 六件之 3:读本机主库三表(paper_daily_balance/paper_trades/
backtest_stats);滚动 4 周 ISO 周行 upsert;CLI+run_daily_recompute 双入口。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-24 20:53:10 +08:00 |
|
claude_dev
|
d137abf7e1
|
feat(portfolio): 每机 pipeline 库——gate 运行值+审计行+周报幂等落库 [vps] [no-doc]
spec §4.5 决议 L 六件之 2/3:gate_config/gate_config_audit/strategy_weekly 三表;
env SANGUO_PIPELINE_DB 覆盖路径;B' 双机各读各的本地库零跨机推送。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-24 20:53:10 +08:00 |
|
claude_dev
|
d73bbe6841
|
feat(portfolio): 晋级闸门纯函数——默认阈值+回测/影子两套判定+DB覆盖汇合点 [vps] [no-doc]
spec §4.5 决议 L 六件之 2:一处定义三处调用;frozen dataclass;压线=过;
thresholds_from_overrides 支撑「代码默认+每机运行值」两级阈值。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-24 20:53:10 +08:00 |
|
claude_dev
|
3cedcf7d53
|
feat(portfolio): 策略孵化梯注册表——五段状态机+血统硬闸+J1 事件+存量补录种子 [vps] [no-doc]
spec §4.5 决议 L 六件之 1/6:克隆 version_registry 范式(状态机/原子写/转移即
事件/issue 模板落盘);→retired 死因必填、→paper/live gate 快照必带、→live 另带
资金分配快照(决议 B);szneul_reb63 补录种子(gate 快照留空)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-24 20:53:10 +08:00 |
|
claude_dev
|
46cfe351d1
|
[nas] feat(factor): szneul_reb63 影子盘件①②——daily_section 截面增量生产器+live factor_topn 接线
CI/CD / test (push) Successful in 24s
CI/CD / nas-deploy (push) Successful in 14s
CI/CD / nas-verify (push) Successful in 7s
件② sanguo_factor/daily_section.py: 收盘后短窗批(220 历史日覆盖 120 交易
日预热)临时导出→幂等 merge 主截面 parquet(同日替换/新日追加/原子写)→
sanity(非空数+进出股票);短窗批顺带落 IC 日度记录=未来衰减告警原料。件①
live_strategy 工厂加 factor_topn,五 env 可覆盖,默认=生产配置 szneul_reb63
(szneul/top200/reb63/band1.0)。件③④(VPS schtask+instance)待拍板。顺带修
两存量测试卫生:channel_test 探针用例注入钟(盘后时段必红的时间条件缺陷,
09-01 盘后防护遗留);composite routes fixture 幂等重挂 _REGISTRY(clear 后
不还原,factor+api 组合首跑暴露建档 400)。设计档 §7.2 同步。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-22 22:47:06 +08:00 |
|
claude_dev
|
c29f784e52
|
feat(factor): 改造③size中性化变体+④分数加权rank^γ——③register_szneu_variants生产冠军挂composite_quant12_v2a_szneu(cs_neutralize((v2a),close*share_capital),残差算子线性⇒包裹式≡各源中性化再加权,引擎端到端测试逐点实证;端到端测试显式register_fast_ops钉生产算子语义——fast下alpha16小截面合成数据每日NaN部分股,5股有效对<3会假绿,20股修复)④FactorTopNConfig.weight_gamma目标市值∝(N+1−rank)^γ缺省0退化等权,透传四处+json测试扩六参 [vps]
CI/CD / test (push) Successful in 38s
CI/CD / nas-deploy (push) Successful in 0s
CI/CD / nas-verify (push) Successful in 12s
|
2026-09-14 23:46:45 +08:00 |
|
claude_dev
|
22bacdb764
|
feat(portfolio): factor_topn 调仓缓冲带 band_ratio(改造①)——持仓截面 rank≤top_n×band_ratio 不卖,跌出带才让位,砍边缘股反复进出换手;缺省1.0=原硬切逐字节等价(回归锚);透传四处=argparse+_build_strategy+run_backtest_json+结果回显(坑1纪律,json测试扩五参);TDD三案例(带内留/带外卖/剔宇宙照卖)+默认退化 [vps]
CI/CD / test (push) Successful in 32s
CI/CD / nas-deploy (push) Successful in 24s
CI/CD / nas-verify (push) Successful in 7s
|
2026-09-14 23:28:18 +08:00 |
|
claude_dev
|
76523f0484
|
fix(portfolio): --slippage 三态语义 None/0/正值——旧 default=0.0+if args.slippage: 把「想关滑点」静默落引擎默认24.6bps(_BASE_MARKET_SLIPPAGE,第六跑base名义零滑点实为24.6bps,slip1/slip2显式10/20bps反而更便宜,成本敏感性表观反向总根因);改 None=保持引擎默认/显式0=真零(PriceRelated ratio=0阻断默认回退)/正值=显式比率,json路径同步None透传,回归测试钉三态 [vps]
CI/CD / test (push) Successful in 34s
CI/CD / nas-deploy (push) Successful in 33s
CI/CD / nas-verify (push) Successful in 22s
|
2026-09-13 21:58:32 +08:00 |
|
claude_dev
|
e2e6fe2e10
|
fix(portfolio): _extract_trades 覆盖 bullet_trade Trade 真实字段——Trade 类是 security/time/tax/order_id 非 code/date,旧 keys 全没对上致 JSON trades 只剩 amount/price/commission 三字段,第六跑判定时换手率/行业归因缺标的与日期;补 keys+回归测试(第六跑在跑不受益,本修复下批起生效,当批换手按买卖对称近似) [vps]
CI/CD / test (push) Successful in 37s
CI/CD / nas-deploy (push) Successful in 14s
CI/CD / nas-verify (push) Successful in 19s
|
2026-09-13 08:16:19 +08:00 |
|
claude_dev
|
47ab3257c2
|
fix(portfolio): 滑点语义修正 FixedSlippage→PriceRelatedSlippage——--slippage 声明比率(万10=0.001)但实挂 FixedSlippage=每股固定元数(0.002→±0.001元/股≈零成本),09-13 第五跑 slip2 组(滑点0.2%)比零滑点 base 同日净值反高12.4%第一层实锤;换聚宽语义比率滑点 price×(1±ratio/2),回归测试钉死不回潮+验证真挂进 settings slippage_map [vps]
CI/CD / test (push) Successful in 0s
CI/CD / nas-deploy (push) Successful in 0s
CI/CD / nas-verify (push) Successful in 27s
|
2026-09-13 08:09:16 +08:00 |
|
claude_dev
|
9f7c56e243
|
fix(provider): fq别名none改映射pre——use_real_price=True体系撮合基准价走fq=pre(engine.py:1877),none→raw造成「前复权价买入多拿股数×不复权价计市值」口径撕裂,首日equity凭空+15%(09-12 NAS平安银行真值22.81 vs撮合18.39前复权实锤,000605复权因子≈1险些蒙混);none/None/空→pre与撮合同体系自洽,volume/paused字段不受价格复权影响同映射无害
CI/CD / test (push) Failing after 14s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
|
2026-09-12 12:15:50 +08:00 |
|
claude_dev
|
d75691e64d
|
fix(portfolio): run_backtest_json透传factor_topn四参——矩阵三跑全空仓总根因:CLI --json走本函数手工拼Namespace漏factor_dir(缺省空串→策略「未配置」直接空仓16秒假快),进程内诊断路径完整掩盖此bug;main --json分支params与Namespace双侧补齐+mock截获Namespace回归测试,全量1207绿 [vps]
CI/CD / test (push) Successful in 31s
CI/CD / nas-deploy (push) Successful in 34s
CI/CD / nas-verify (push) Successful in 9s
|
2026-09-12 08:42:45 +08:00 |
|
claude_dev
|
63676fbb4b
|
fix(provider): fq聚宽语义别名归一——none/空/None→raw,hfq→qfq;BulletTrade引擎日终估值传fq='none'被FQ_VALUES拒收致每日百次取价失败持仓市值全挂(09-12 NAS梯度实测),两处_v_fq统一走_FQ_ALIASES,回归测试+1全量1206绿 [vps]
CI/CD / test (push) Successful in 35s
CI/CD / nas-deploy (push) Successful in 4s
CI/CD / nas-verify (push) Successful in 17s
|
2026-09-12 08:35:49 +08:00 |
|
claude_dev
|
20ea77966d
|
fix(portfolio): factor_topn两处拒单/基准修复——①截面vt_symbol转聚宽后缀(SSE→XSHG/SZSE→XSHE,BulletTrade撮合按聚宽格式查行情,不转则下单全拒空仓跑完,09-12 NAS实测1262日0交易)②PriceQueryParams起止日放宽Union[str,datetime](pydantic v2类型校验先于field_validator,Optional[str]直接拒引擎传的Timestamp——基准曲线恒空的根因,2026-08-13 VPS冒烟同族问题),回归测试+2全量1205绿 [vps]
CI/CD / test (push) Successful in 28s
CI/CD / nas-deploy (push) Successful in 2s
CI/CD / nas-verify (push) Successful in 15s
|
2026-09-12 08:05:25 +08:00 |
|
claude_dev
|
84dab32ac4
|
feat(portfolio): 因子截面TopN选股策略(factor ③ IC→净值关键一跃)——batch_eval加factor_values_out截面导出(宽表parquet与指标同窗同源,截面算一次矩阵复用)+factor_topn策略(截面严格早于调仓日防前视/交易日计数器5-10-21档调仓/剔科创北交920留创业板实盘宇宙/TopN等权)+runner挂接CLI四参数,15新测试全量1203绿 [vps]
CI/CD / test (push) Successful in 25s
CI/CD / nas-deploy (push) Successful in 35s
CI/CD / nas-verify (push) Successful in 17s
|
2026-09-11 23:24:14 +08:00 |
|
claude_dev
|
90b37ce27f
|
feat(live): 成交回报回执日志①——09-04守恒缺口观测件 [vps]——根因件:002633/002836缺口复盘发现引擎会话当日成交视图行缺+时间字段中途退化None,QMT行dump全打查询时刻即铁证,事后无从对「哪笔什么时候以什么形态被看到」;用户钦点观测机制「再出现时根因可查」,dev契约:任何处理/匹配/去重之前打[trade-receipt] tid/order/acc/sym/vol/px/t_raw/recv八字段(②解析此格式,拼写冻结);实现=with_trade_receipt包装QmtBroker.get_trades(bullet_trade轮询制无成交推送回调,_Callback仅桥接断连,broker.get_trades是柜台行进本进程唯一咽喉,引擎同步/a窄修/b宽修全经它),与with_connect_retry同款实例级包装源码零改动;铁律=t_raw原样照记None也记/日志永不抛逐行try-except包死/get_trades原异常照抛行为不变;量控=观测层变化检测非处理层去组:同tid签名(t_raw+量+价+单号)不变不重打,退化即重打(捕获09-04形态),行照常流向消费方;③结论免改:vt_tradeid三条归因路径已承载柜台成交号(即时=引擎trades键/a窄修=trade_id/b宽修=eod:前缀),既有测试已钉(test_live_reconcile.py:123,206+test_live_instance_ledger.py:236),②按tid比回执↔live_trades即闭环;TDD 7新测先红后绿(caplog须set_level(INFO)坑)+598全绿
CI/CD / test (push) Successful in 13s
CI/CD / nas-deploy (push) Successful in 46s
CI/CD / nas-verify (push) Successful in 9s
|
2026-09-06 11:14:29 +08:00 |
|
claude_dev
|
c728f2368c
|
feat(data): hot_rank 挂载+wrapper 时间守卫 [vps]——墙测量5轮收官用户拍板方案A:emappdata 夜间开窗(22:28 实测 OK,晨午4轮全 FAIL),19:30 档失败零连带(单 unit 失败不触断路器 rc 仍 0,不写不标次夜自愈),首夜起 gap_check 即免费持续测量;三处同步=wrapper --types+PANEL_TYPES+EVENT_PANEL_TYPES(15类),零文件=零告警首日成功即成基线;时间守卫=param -Force+非 19:00-23:59 拒绝执行留痕 guard.log(治盘前手动误跑两犯:09-02 08:08/09-04 08:00,盘前拉当日=昨日态错标+marker 锁死当晚真数据);TDD 2 测翻新(白名单拒→放行+注册断言)先红后绿+806 全绿;VPS Parse 预检过+双脚本已 scp 生效位+wall_probe.py 已删 [vps]
CI/CD / test (push) Successful in 0s
CI/CD / nas-deploy (push) Successful in 5m3s
CI/CD / nas-verify (push) Successful in 11s
|
2026-09-04 18:46:46 +08:00 |
|