Commit Graph

43 Commits

Author SHA1 Message Date
claude_dev fec3e8e221 docs(data): spec§18终版——统一到sanguo-5m一次性容器模式+断点续传互借三件 [nas]——用户终拍板「统一到5min吧」:①运行时改docker run --rm同5m全款(bash wrapper=/volume1/stock/corpus/run_corpus.sh宿主文件CI不覆盖同5m部署纪律;镜像lock-aligned版本自动跟随CI;弱依赖=daemon+tag不改名与5m同款已跑一月实证),corpus两改进=DSM任务admin跑(实测admin可docker ps)+--user admin-uid输出文件admin属主+--name sanguo-corpus运维锚点(docker stop一条命令杀);反向统一硬阻塞入档=5m写的data_backup库是03:00链root属主产物admin venv写不进;统一后全图=VPS schtask家族(数值)/NAS docker run --rm(5m+corpus对外爬取)+sync链(内部搬运)机器内一种物理下限;②断点续传对比互借(bs_5m_eod.py盘点):corpus借三件=单实例锁pid活性检测(原设计真缺口,防DSM定时与手动补跑竞写state)+退出码细分(0完成/1致命/2限流让路/3墙钟自停对齐5m语义)+state损坏幂等降级;5m反向不改造(整片推进粒度粗但回灌已完结+OR REPLACE幂等+LOOKBACK自愈,改造无未来收益),仅两个顺手项下次动run_5m.sh一并(加--name/头注释时点19:05→00:05修正);验收5/5b改docker stop+主容器restart不影响实证;T1改wrapper+金丝雀 [nas]
CI/CD / test (push) Successful in 25s
CI/CD / nas-deploy (push) Successful in 2s
CI/CD / nas-verify (push) Successful in 6s
2026-09-06 21:42:54 +08:00
claude_dev 8aa3a3d2fc docs(data): spec§18补与sanguo-5m独立容器方案差异对比 [nas]——应用户问「5分独立容器和现在实现有何不同」:同治「不被主容器重启波及」但深度不同——5m=docker家族内(docker run --rm一次性容器,仍依赖daemon+镜像+tag不改名,优点=镜像环境完整+版本自动跟随主容器),corpus=零docker(按用户指令走到底);5m当年未走到底合理(bs_5m_eod依赖面=整个镜像环境含baostock,宿主3.8 venv装不齐),corpus依赖面收敛3通用包才有条件(代价=venv冻结版本漂移需手动pip,T1锁版本缓解);5m不迁(在跑稳定/迁移需重验/没坏不动),但其为存量docker依赖点,NAS docker大升级时需人工盯届时再评估 [nas]
CI/CD / test (push) Successful in 5s
CI/CD / nas-deploy (push) Successful in 26s
CI/CD / nas-verify (push) Successful in 8s
2026-09-06 20:19:04 +08:00
claude_dev dfa156a39e docs(data): §18.8补5m分钟线行+NAS两例外存放修正——用户验收点名找回 [nas]——用户记得「NAS比VPS多一种数据=分钟线」完全正确:①sanguo-5m(DSM id=7,root,00:05)在跑,baostock 5min增量+全量回补2020起含退市5547只,独立一次性容器docker run --rm跑lock-aligned镜像(08-22治CI重启主容器杀在跑任务),落点=NAS副本库dbbardata('5m')=5m唯一权威(VPS侧'5m'是空占位);②minute_kline/2.1G=cfdaily时代外部1min/5min/15min,无任务,1min为全体系唯一1分钟粒度;文档债定性:§14.2「5min占位/不设schtask」为07-22快照,08-20落地5m管线时未回写融合spec(run_5m.sh头注释+memory才记录),本表现补;存放修正=数值权威VPS+两例外在NAS(5m+语料) [nas]
CI/CD / test (push) Successful in 21s
CI/CD / nas-deploy (push) Successful in 1s
CI/CD / nas-verify (push) Successful in 7s
2026-09-06 20:13:21 +08:00
claude_dev fcc3a2e0fa docs(data): spec§18「root=和旧数据一致」前提实测推翻 [nas]——/volume1/stock属主实测=三种混合:cfdaily(A股数据/minute_kline/knowledge_base,用户记忆中的之前基本面数据恰是cfdaily非root)/root(03:00链+sanguo_5m)/admin(_dbuild/gitea/frp等);文件全rwxrwxrwx+ACL无消费方依赖属主;真正一致在方法论层(schtask语义/marker/慢爬/单脚本红线)两案同款;唯一实质差异=运维通道(admin ssh可杀可装,root全走DSM一次性任务或交互sudo自动化不可达);终判admin,用户仍拍root亦可(代价=venv引导与kill全人工) [nas]
CI/CD / test (push) Successful in 27s
CI/CD / nas-deploy (push) Successful in 24s
CI/CD / nas-verify (push) Successful in 5s
2026-09-06 20:09:13 +08:00
claude_dev 7e9319b166 docs(data): spec§18 root vs admin 终局论证入档 [nas]——应用户「root的数据不可修改设计更好吗」:root属主写保护=半吊子幻觉(admin不能覆写但能删,删看目录权限rwxrwxrwx,03:00链先rm再拉workaround实证),防住原地改防不住删了重建;root跑采集代价全天候=root进程admin杀不动(Synology sudo交互密码自动化做不了,本设计验收含kill-9续跑项root方案连测试都无法执行)+venv装包盯跑全要root陪跑+外网爬虫最大权限;不可改性交给正确工具=append-only协议(dt分区只追加/tmp+rename/id键控)+可再生性(源站都在断点可重拉,语料=全体系唯一可完全再生数据类),如需防篡改层验收后加DSM快照/每周tar+校验和(对任何属主生效)——结论admin落地 [nas]
CI/CD / test (push) Successful in 25s
CI/CD / nas-deploy (push) Successful in 8s
CI/CD / nas-verify (push) Successful in 8s
2026-09-06 20:07:17 +08:00
claude_dev 3d3ddb5f57 docs(data): 全局下载方案与存放位置总表§18.8+CLAUDE.md语料路径行 [nas]——应用户「不想搞好几套下载方案和存放位置」:不是几套,是一条规则两台机器=每类数据唯一权威源+唯一权威位置(§14.2既定原则)+采集发起位置跟随权威位置;数值类(行情/估值/报表/事件面板)权威=VPS既有8任务家族不变,文本语料类(新闻/公告)权威=NAS(用户三约束唯一决定:不上VPS+东财IP限流+不绑docker);§18.8收齐现势10行任务总表(bs-daily/xt-eod/idx-eod/ak四频率/vintage/NAS03:00链/corpus)并注明§14.5为历史快照,存放=VPS data/数值权威+NAS /volume1/stock副本+大体积历史+语料唯一权威+Mac无生产数据,corpus不是第三种根=既有数据根新子目录;CLAUDE.md关键路径加corpus行(全session可见) [nas]
CI/CD / test (push) Successful in 23s
CI/CD / nas-deploy (push) Successful in 27s
CI/CD / nas-verify (push) Successful in 9s
2026-09-06 20:01:39 +08:00
claude_dev b90f258100 docs(data): spec§18存量不迁移澄清+admin权限逐项实测 [nas]——应用户问「有必要全改admin吗/admin确定有权限吗」:①存量脚本一个不迁(03:00链等root任务照旧,没坏不动;admin仅新corpus任务选型;目录/时间窗/管道三隔离零冲突)②admin权限逐项实测=/volume1/stock建目录写删全通(rwxrwxrwx+ACL admin属主)+venv --copies在volume1建成stdlib OK+pip user-site既有+CI部署路径无障碍③新坑入档:venv建/tmp会Permission denied(DSM /tmp特殊限制+会被清空)——设计本就落volume1;④设计内零root依赖,例外走人工sudo逃生门 [nas]
CI/CD / test (push) Successful in 26s
CI/CD / nas-deploy (push) Successful in 1s
CI/CD / nas-verify (push) Successful in 10s
2026-09-06 19:57:30 +08:00
claude_dev 0157094da2 docs(data): spec§18补admin与独立任务论证 [nas]——应用户问「为何不统一root/为何单独建定时任务」:admin三理由=03:00链root属主坑在案(admin覆盖须先rm再拉)+语料库admin侧操作密集(venv/盯跑/删分区)属主即零摩擦+最小权限出网爬虫不必root,成本为零;独立任务三理由=失败不连坐(对内行情同步vs对外慢爬马拉松,corpus卡死不拖死行情链,断路器饿死同款教训)+属主部署管道不同(sync脚本root地盘CI不覆盖vs corpus走CI的repo路径)+06:00避开03:00链跑道且00时档公告已入库全吃到 [nas]
CI/CD / test (push) Successful in 0s
CI/CD / nas-deploy (push) Successful in 3s
CI/CD / nas-verify (push) Successful in 9s
2026-09-06 19:52:37 +08:00
claude_dev fe5d0f00a6 docs(data): 06:00晨窗调度依据实测固化 [nas]——应用户问「基本面数据白天被更新的可能性有多大」:深市0904全市场600条公告发布时刻实测=盘中(09-15时)3条0%+盘后15-20时46%+00时档54%(巨潮深夜批处理「半夜鸡叫」实锤);新闻当日条目盘中27%盘后晚间73%;结论=公告白天更新概率≈0且主体在零点档,T+1晨06:00拉取=前日公告100%入账,优于任何傍晚方案(17:30收工会漏19-20时18%+00时54%);新闻对日频消费零损失;spec§18.3+报告各补一段 [nas]
CI/CD / test (push) Successful in 27s
CI/CD / nas-deploy (push) Successful in 3s
CI/CD / nas-verify (push) Successful in 10s
2026-09-06 19:50:19 +08:00
claude_dev 14d3531f77 docs(data): 语料库spec§18修订——用户两条反馈落地 [nas]——①断点续传钦点加固:unit粒度marker+原子写+杀进程重启即从未完成unit续跑+漏日自愈(公告T-1~T两天窗/新闻recent-100天然覆盖数日缺口)+daily幂等可重跑,验收加5b条(kill -9重启续跑实证);②解绑docker(用户:「不要和docker绑定,避免docker重启就失败」):采集进程改NAS宿主机直跑,运行时=/volume1/stock/corpus/venv(--copies自举,DSM自带Python3.8.12+pip实测可用x86_64,依赖锁cp38版),容器重启/升级/停用零影响;先例=现有DSM 03:00同步链(id=2,crontab实证7条任务在跑)宿主机直跑多年零docker,本设计沿同模式改admin跑避root属主坑;验收加docker全停下照跑实证;T1改venv自举 [nas]
CI/CD / test (push) Successful in 4s
CI/CD / nas-deploy (push) Successful in 10s
CI/CD / nas-verify (push) Successful in 9s
2026-09-06 19:45:18 +08:00
claude_dev 92e63ee27c docs(data): 基本面语料库NAS采集设计spec§18+三摸底实测报告 [nas]——用户拍板六项范围(除公告PDF全量):新闻标题+摘要级/全文级/历史回补+公告元数据回补2000起/每日增量/定期业绩类PDF;硬约束=存储采集全NAS不上VPS(家宽IP与VPS东财限流零冲突)+采集限于00:30-17:30+慢爬;设计=1脚本corpus_download.py+1调度入口sanguo-corpus-daily 06:00(daily+backfill两lane串行,--until 17:30墙钟自停);数据模型=id键控(dt=发现日分区,无today文件名语义,天然免疫0902/0904式错标)+append-only短窗去重;回补顺序=公告meta→新闻meta→新闻全文→PDF(新→旧,容量闸门:/volume1实测645G空闲,每50GB自查,<200G暂停升级);失败语义吸收09-01/09-05教训(确定性错跳过不烧重试不连坐);探测优先能拿多深拿多深+depth_summary记录;附三摸底报告(聚宽136字段原料层≈100%已有/巨潮2000年起130万条年/东财3年硬顶/存储大头PDF 520G年) [nas]
CI/CD / test (push) Successful in 23s
CI/CD / nas-deploy (push) Successful in 0s
CI/CD / nas-verify (push) Successful in 8s
2026-09-06 13:49:46 +08:00
claude_dev 99355bfbea docs: 活文档§17 首夜巡查修正——margin_sse T+1 结构根治/NAS 同步链扩容/回灌纪律/VPS 部署终态(同批同步,防失传) [nas]
CI/CD / test (push) Successful in 0s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 14s
2026-09-02 23:09:19 +08:00
claude_dev 4966d30a11 feat(provider): A档截面数据使用层出口——泛型底座+涨停池门面双层接口
CI/CD / test (push) Failing after 3s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
09-02任务①落地。§15采集的14类panel数据此前零读取出口,策略/因子session
想用只能手搓parquet路径;经业界对照(dsa get_limit_up_pool/tushare
limit_list_d U/D/Z参数化/聚宽per-domain/OpenBB TET)定稿「泛型底座+域
语义门面」:

①get_event_panel(event_type,date/start+end,trading_days_only=True):
保真底座,白名单14类统一通道(=采集注册表口径,hot_rank未挂载不入列),
返回akshare原样中文列+trade_date(文件名合成);缺文件=合法缺失→空df;
trading_days_only默认用get_trade_days滤非交易日——治快照族「周中法定
假日文件=上一交易日态复制品」的区间双计数(采集层只按周一~五落盘,
周六根本无文件,风险面=周中假日);=False按周一~五枚举(=采集口径)

②get_limit_pool(kind=zt|zbgc|dtgc,...):涨停池门面(温度计/炸板率/行业
集中度消费契约),kind三合一←tushare limit_list_d;英文标准列
code/consecutive_boards/seal_amount/break_count/industry…(键名对齐dsa);
映射表基于VPS真实parquet实测(dtgc实测含动态市盈率/封单资金/板上成交额/
连续跌停/开板次数,与文档口径有差);akshare改中文列名时本层吸收漂移,
有行缺源列→DataSchemaError fail-fast;真空日(dtgc 0跌停空文件无列)
→仍返标准列空表schema稳定

③实现=TET Fetcher(fetchers/event_panel.py双Fetcher同文件,price.py先例),
FETCHERS注册表+event_panel/limit_pool两键(未来MCP出口零成本);base.py
新增_DateRangeParams跨字段校验(date/start+end互斥二选一);LocalUnified
Provider(回测)与SanguoMiniQmtProvider(实盘,委托self._unified)双侧同款
——方法面钉死测试强制无缺口,双侧同schema支持副本对照;miniQMT/QMT/
PTrade均无此类接口(业界惯例=外部源补),实盘同读本地文件

测试:21新测试(白名单fail-fast/日期语义/保真读/假日滤/门面schema/
列漂移fail-fast/真空日空表/注册表)+全量793绿;活文档§16+§15指引行 [vps]
2026-09-02 10:43:11 +08:00
claude_dev 66e741b6bb docs: 数据设计文档活文档化+§15 A档截面数据域增补——用户约定(09-02):唯一数据设计文档,每次架构变更同批更新(防长期失传);决策=更新原2026-07-21融合spec不新建(三层框架仍成立/引用链不断/少一份文档),头部状态从「设计草案」翻为活文档声明+最后更新日期;§15沿用「日期节追加新节覆盖旧节」惯例:15.1单脚本红线 15.2十一数据域清单表(源/集群/调度/行数/回补能力) 15.3东财墙模型(每IP每~40min窗口1发/cyq数学死/换域答案) 15.4语义与防线(panel_gap_check两档+panel契约) 15.5消费契约(炸板率口径/列名schema) [nas]
CI/CD / test (push) Successful in 2s
CI/CD / nas-deploy (push) Successful in 7s
CI/CD / nas-verify (push) Successful in 14s
2026-09-02 09:41:02 +08:00
claude_dev a62013cb9c docs(factor): 第一批实施计划——13任务TDD拆解(挂载/股票池/指标/存储/引擎/CLI/API/前端三页/NAS验证),含ST过滤偏差声明与spawn池规避设计 [nas] 2026-08-24 23:52:40 +08:00
claude_dev c94d1f3d2b docs(factor): 第一批设计spec+终端风前端mockup——①spec:Alpha101+158全量挂载全A重验(2018-2026,主板+创业板剔ST/新股,RankIC 1/5/10D,退市股保留无幸存者偏差);后端=注册表挂载+vwap派生列+批量评估脚本(因子分批15-20/批)+冒烟先行;用户拍板两条:⚠️最终部署VPS不止NAS(走标准promote链,VPS 42.8G权威库)+行业中性化先不做(IC数据说话后再决策)②mockup v2:第一版亮色Element风被用户打回,重做1:1科幻终端风(tokens.css深空黑/荧光青/琥珀/红涨绿跌/term-grid/信号灯),三页=IC排行榜(统计瓦片+筛选+主表带IC色条sparkline)/因子详情(表达式+月度IC+十分组)/批量评估(股票池3预设卡+因子集勾选),用户确认③mockup与spec互引,调查报告见同目录 [nas] 2026-08-24 23:36:36 +08:00
claude_dev c3e53fbef3 docs(data): 归档数据层验证产物 + 数据层总览README
- scripts/data_platform/_archive/legacy/: 归档20个独立探针/诊断/旧降级脚本(零引用验证)
- docs/archive/data/: 归档17个数据相关旧设计/plan/report(保留fusion spec作深读)
- docs/data-platform/README.md: 数据层单一权威记录(8节:架构/布局/源/管线/铁律/API/缺口/待办)
- 删除 _mootdx_depth_result.txt
- Phase2待办: 15m灌库链+旧回填import链(有测试/wrapper依赖,VPS schtask确认后归档)
2026-07-29 10:11:38 +08:00
claude_dev e7465c342f feat(data): 中证1000/2000 定期更新 schtask + schtask 路径坑修复
sanguo-index 增强: index_monthly_wrapper 加 STEP0 parse_csindex_announce
(治偏差全集, 月度16号自动刷新 constituent_unified)

register_akshare_schtasks 修 PowerShell schtasks /tr 反斜杠路径丢前缀坑:
$ws 变量在双引号被原生命令解析吃掉 -> Arguments 存成 \xxx.ps1 ->
schtasks /run 返回成功但 wrapper 静默不跑从不写日志。改全路径硬编码 + --%。
ak-* 5 schtask 路径全坏已批量修(register_akshare 旧版"已部署Ready"是假成功)。

诊断: Get-ScheduledTask 中文Win报 0x80070057 无用, 改 schtasks /query /xml
看 Arguments 才发现丢前缀。

schtask 全链路验证 STEP0-3 exit=0, constituent_unified
000852=1672(was_removed=672) / 932000=2684(684) 治偏差保持。
2026-07-24 00:20:36 +08:00
claude_dev ae3a768091 docs(data): akshare 低频 schtask plan(spec §14.5 A+B+C)
spec §14.5 akshare/index 低频 schtask 部署 plan, 待 compact 后新 session 执行:
- A 三表/估值增量(sanguo-ak-eod 日频 + ak-quarter 季频, --force 全量夜间慢跑)
- B 成份股月度(sanguo-index, 改 merge_constituent 可重跑 DROP/REPLACE + 3源wrapper + TDD)
- C 事件类 7 种(ak-events per-date 日频 + ak-stock per-stock 周频)

实测现状: static 停 7/22 18:25(provider依赖) / events 全空(从未采集) /
constituent_unified 7110 静态 / 旧 schtask 全无(方案A stop_all 清了)

关键约束: akshare marker symbol级→三表/估值必须--force更新 / per-stock全量慢+东财限流→夜间 /
merge_constituent RENAME不可重跑→改幂等

plan 自包含(fresh agent 可执行), 关联 memory akshare-low-freq-plan
2026-07-23 08:49:56 +08:00
claude_dev 41cc6d13bf feat(portfolio): LocalUnifiedProvider spec §6 使用层落地 + VPS E2E(Task6)
spec §6 使用层 provider — 读方案A 权威数据层, 零 online, 治幸存者偏差:
- get_price: dbbardata('d') raw + bs_adjust_factor 前复权(asof, qfq[t]=raw[t]*factor[t])
- get_index_stocks/get_constituent: constituent_unified 并集治偏差(300=940含被踢, 无date时点)
- get_fundamentals_df: baostock pe/pb/ps/pcf + akshare 市值 + 三表委托 LocalParquetProvider
- 辅助: trade_days/security_info/current_tick/split_dividend/all_securities

VPS E2E 实证修复(Mac fixture 盲区):
- dbbardata datetime 混合格式("2024-09-26" vs "2024-09-26 00:00:00")
  → pd.to_datetime format='mixed' + SQL substr(datetime,1,10) 比日期(字符串比漏边界)
- 补 TestMixedDatetimeFormat 单测覆盖

验证: VPS 真数据 E2E 全通过(600519在市raw/qfq复权/000005退市治偏差/510300ETF/
fundamentals市值+pe+eps全字段/辅助方法); Mac 37单测+149回归绿

交付: 使用说明 docs/portfolio_local_unified_provider.md(其他 session 直用)+
plan+probe+E2E 脚本
2026-07-23 08:25:44 +08:00
claude_dev c2a89d01a4 feat(data): 方案A 数据层落地(spec §14)— DB唯一表+治幸存者偏差+权威源
spec §14 方案A 数据层迁移完成 + E2E 验证(read_db_daily: 在市/退市治偏差/ETF 全OK):
- dbbardata('d') 1826万含退市(治回测幸存者偏差, INSERT OR REPLACE staging迁移, WHERE OHLC NOT NULL+COALESCE)
- constituent_unified 7110行/9指数(300/500/50 baostock全集 + 深证4指 akshare cni union + 中证1000/2000 snapshot)
- pe/pb 不进DB -> valuation_baostock/<year>.parquet 按年宽表(2003-2026)
- 废弃 daily_baostock_full/bs_index_constituent(rename _old 保留); 旧4 schtask disabled
- 新 schtask sanguo-bs-eod 18:05(baostock个股日线+15min+拆pe/pb DAILY_LIMIT 48000) + sanguo-xt-eod 18:40(ETF/基金xtata)
- 权威源: baostock个股日线+估值+15min+复权+300/500/50 / xtata ETF+基金+当天实时 / akshare三表+事件+深证中证成份股
- 全程备份+staging+_old保留可回滚; 脚本 audit/probe/migrate/merge/cleanup/fix_config/verify/bs_eod/xt_eod/wrapper/register_schtasks
- 待办(spec §6 使用层): LocalParquetProvider 接 constituent_unified+valuation_baostock + 实时拼接
2026-07-23 07:20:34 +08:00
claude_dev 774170ec05 feat(data): 数据源融合 P0 补全 + 每日增量脚本
采集层(多源各下):
- baostock: 日线全字段全量(baostock_daily_fullmarket) + 15min全市场 + 静态(基础/复权/分红/季频/三表) + 成份股
- akshare: 静态(估值/龙虎榜/大宗/融资融券/北向/指数成分/行业/股本/解禁/业绩预告)
- xtdata(miniQMT): build_daily_from_xtdata + daily_update_xtdata

数据补全 P0:
- ETF全市场: universe 扩展 沪深A股∪ETF∪基金(7414), dividend_type='front' 前复权
- 历史成份股(治幸存者偏差): index_const_hist_download 深证/国证 adjust_cni 4指数 + 中证1000/2000快照 + 新浪交叉校验
- 退市K线: baostock_delisted_download + import_delisted_to_db(实证 Day1 fetch_all_stocks 已含退市)

灌库:
- import_baostock_to_db: daily_baostock_full(5537股/1826万行,18字段)+ bs_index_constituent + bs_adjust_factor
- INSERT OR REPLACE 幂等, WAL+busy_timeout, dbbardata 不碰

每日增量 #7(用户决策A: VPS直跑):
- daily_update_static: login探针防黑名单graceful skip + LOOKBACK7 + query_stock_basic含退市 + INSERT OR REPLACE + QUERY_COUNT守48000/天

设计文档: spec(13节三层融合) + P0 plan + 数据gap设计
2026-07-22 10:34:22 +08:00
claude_dev e1b8c4ac68 docs(plan): 富回测结果页实施计划—8任务TDD(metrics→数据→引擎→API→前端→部署) 2026-07-11 13:20:30 +08:00
claude_dev 6c461d4d9c docs(spec): 富回测结果页设计(v1)—聚宽级10指标+5图+4tab, empyrical后端算相对基准指标 2026-07-11 13:16:49 +08:00
claude_dev 928a52b96f docs(live): D期§8更新—D-2含bridge完善+半自动更新, D-4b加120141诊断, 运维发现(120141/行情关/重连/token分离) 2026-07-11 08:33:51 +08:00
claude_dev a93d5ed8d8 docs(live): D期§8状态更新—D-1/D-2/D-3/D-4a/D-4c验证通过, 仅D-4b等周一 2026-07-11 06:31:53 +08:00
claude_dev 379836d34e docs(live): D期任务状态更新(D-1/D-3完成)+Windows部署联调清单
- 设计文档§8: D-1/D-3标代码完成+commit号, D-2/D-4待Windows, 附代码层验证说明
- d-phase-windows-deploy.md(新): Windows端一站式清单(D-1实测/D-2自启/D-4a联调/故障排查)
2026-07-11 00:07:18 +08:00
claude_dev ff84b3d4b0 feat(live): D-3 sanguo实盘分支(影子下单)+D期设计文档
D-3 模式A影子下单(spec §5):
- bridge_client.py: QMT bridge HTTP客户端(urllib, X-Bridge-Token, 失败不抛返回None)
- live_orchestrator: _shadow_trades_to_bridge 当日成交POST bridge(默认enabled=false)
- persistence: paper_shadow_orders幂等表+save_shadow_order/is_trade_shadowed
- config: data_platform.yaml加live段, token走env(BRIDGE_TOKEN)
- to_bridge_code symbol转换与guess_exchange一致(2位前缀)
安全: enabled=false默认关+token走env+幂等防重复+影子失败不阻断live_step

docs: phase3d-live-trading-design.md(D期完整设计)
2026-07-11 00:03:46 +08:00
claude_dev 7c7976221b docs(spec): phase3c-design §295分期项标记完成(分红送股+占用成本落地) 2026-07-10 08:46:14 +08:00
claude_dev 1b87d3f7c0 docs(plan): Phase 3c 模拟盘实现计划(C-S0~S3,19 任务)
C-S0 引擎核心 TDD 完整代码(models/limit/position_ledger/matcher);
C-S1 回放端到端接口+验收(适配器/引擎/双源/持久化/API/前端);
C-S2 分户归因;C-S3 实走。含 self-review。
2026-07-07 09:34:41 +08:00
claude_dev 6c0acd2374 docs(spec): Phase 3c 模拟盘设计 v2(吸收架构+业务双 review)
架构 + A 股业务双 sub-review 后修正 6 项 CRITICAL + 4 项 HIGH:
- 复权双数据源(qfq 信号 / raw 撮合),解涨跌停系统性失真
- 涨跌停板块表(主板±10/ST±5/创业科创±20/北交所±30)+ 封板判据收紧(T字板保守拒单)
- match_session 多撮合时点(next_open/current_close),支持尾盘抓涨停类策略
- 资金 T+0、印花税 0.05%(2023.8.28 新规)+ 过户费 + 最低佣金 5 元
- StrategyRunner 明确为 CtaTemplate 适配器(PaperCtaEngine 拦截 send_order)
- 任务模型:回放走共享 DB 进度+checkpoint 续跑;实走 APScheduler 启动恢复
- owner_id/checkpoint_date/scheduler_job_id 字段补齐
- 分红送股/归因软限额/科创200股/集合竞价 标注分期(C-S3 后)
2026-07-07 09:28:58 +08:00
claude_dev 759acf2f6c docs(phase3b): Phase 3b Vue 前端实施计划(S0-S3,含 result_id bug 修复) 2026-07-07 00:33:28 +08:00
claude_dev f0f08d32c3 docs(phase3b): 投研+回测 Web 控制台(Vue 前端)设计文档
- 4 期愿景:投研→回测→模拟→实盘(国金QMT),本期 B=投研+回测
- 对齐 vnpy client 回测模块 + 投研自有
- 技术栈 Vue3+Vite+TS+ElementPlus+ECharts+Pinia
- 部署:8000 切 sanguo_api,Vue 静态挂 FastAPI,不动端口/反代
- 含后端补 5 类接口(资金曲线/每日盈亏/成交/K线/报告)
- 4 切片 S0→S1→S2→S3
2026-07-07 00:25:31 +08:00
claude_dev b2c2a1305b docs(phase3a): Web API 完整化完成报告(8 task, 44+74 passed, NAS smoke 6/6, 已合并 master) 2026-07-06 20:22:54 +08:00
claude_dev b3cb6fd7cf docs(phase3a): Web API 完整化实现计划(8 task,TDD) 2026-07-06 17:36:12 +08:00
claude_dev 3369ea2433 docs(phase3a): Web API 完整化 design(异步 pool + WS 阶段 + JWT 单用户 + tears 完整化) 2026-07-06 17:22:45 +08:00
claude_dev d9c4f15bc9 docs(phase2): 因子/回测层完成报告(13 task, 54+4 passed, 覆盖率 81%, 端到端冒烟通过) 2026-07-06 11:47:50 +08:00
claude_dev a480fd389f docs(phase2): 因子/回测层实现计划(13 task:3 spike + 10 实现,spike 先行) 2026-07-06 07:25:53 +08:00
claude_dev 83ca15b57b docs(phase2): 因子/回测层 design(brainstorming 3 轮确认,待 review) 2026-07-05 23:47:07 +08:00
claude_dev 6da8a55b5e docs(phase1): 数据层完成报告 + 端到端冒烟脚本 2026-07-05 23:47:07 +08:00
claude_dev 9595879655 docs: 新增 Plan 1 数据层实施计划
8 个 TDD task:脚手架+配置 / validator / DataReader(parquet+SQLite) /
DataFeed(多源fallback+BaoStock超时) / DataWriter(原子写) /
UpdateScheduler(增量+断点续传+熔断) / vnpy 4.4.0 spike + 端到端冒烟
含 self-review 与执行指引
2026-07-05 11:31:20 +08:00
claude_dev f255e5062e docs: 新增 vnpy 量化平台第一阶段架构设计
基于 PRD 落地分层架构:
- 数据层(继承 v1,双存储 parquet+SQLite,cron+Web 更新)
- 因子/回测层(vnpy.alpha 可插拔扩展 + BacktestingEngine 多进程优化)
- Web API 层(FastAPI 自建 + JWT + 回测任务 pool)
- 前端(Vue 3 + Vite + Naive UI,替换原生)
- 部署(NAS Docker,uvicorn 单进程避 fork 坑)
含早期 spike 与 ADR 对应表
2026-07-05 11:08:59 +08:00
claude_dev 3d20489761 docs: 新增 vnpy 量化平台第一阶段 PRD
沉淀 superpowers brainstorming 多轮讨论:
- 项目初衷、核心原则(不改 vnpy/面向未来/复用 v1 数据)
- 第一阶段范围(A 股回测+策略开发闭环)与后续 spec 规划
- 8 条架构决策(ADR):不引 Qlib/不用 Celery/vnpy 零改造/
  复用 v1 数据丢弃 v1 回测/国金模拟独立/弃内嵌架构/
  webtrader 按需启用/因子层可插拔
- v1 数据资产继承清单 + 数据源踩坑黑名单
- 风险与待决策项
2026-07-05 10:54:15 +08:00