claude_dev
|
c210197778
|
fix(entrypoint): +x 执行位 + SKIP_REDIS_CHECK 默认1(治 run535 NAS crash loop)
CI/CD / test (push) Successful in 8s
CI/CD / nas-deploy (push) Failing after 34s
CI/CD / nas-verify (push) Has been skipped
run535 部署后容器 crash loop(exit126),两个独立根因:
1. Permission denied: entrypoint.sh git mv 后 644 无执行位,rsync 推 NAS 也是 644,
bind mount 覆盖镜像层 chmod +x 无效,tini exec 失败。→ entrypoint.sh git 100755。
2. Redis 连接超时:新版 entrypoint 检查 SKIP_REDIS_CHECK!=1 才查 Redis(旧版 if false
硬跳过),NAS 无 Redis 卡检查 crash。→ 默认 SKIP_REDIS_CHECK=1(复现旧版跳过)。
附:文档(nas-deploy-plan 方案①已实施 + ops/README 根治标记)。
|
2026-08-01 21:43:29 +08:00 |
|
claude_dev
|
f9b7c103c0
|
docs: §10 可复现构建更新(单阶段Dockerfile+polars[rtcompat]+已验证换装)
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 22s
CI/CD / nas-verify (push) Successful in 3s
|
2026-08-01 20:39:58 +08:00 |
|
claude_dev
|
2ca2facce3
|
fix(docker): requirements-docker 补组合/CTA 运行时依赖(治重建丢包后患)
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 25s
CI/CD / nas-verify (push) Successful in 4s
容器是 docker commit 快照链(pre-init-rebuild 比 with-sqlite 多64包),
手动装的 bullet-trade/jqdatasdk/vnpy_ctastrategy/vnpy_sqlite 只活容器层,
从 base 重建会全丢。补进 requirements-docker.txt 钉到容器实证版(均PyPI可装):
- bullet-trade==0.9.2(组合框架,import bullet_trade)
- jqdatasdk==1.9.8(bullet_trade import 链必需)
- vnpy_ctastrategy==1.4.1(CTA引擎)
- vnpy_sqlite==1.1.3(vnpy sqlite驱动)
不补 pyecharts(0import残留)/jupyter栈(bloat)
docs §10 记可复现重建步骤;干净重建待 env 空闲验证
|
2026-08-01 12:23:53 +08:00 |
|
claude_dev
|
4fccfad4ca
|
fix(nas): 固化容器 --init 铁律(防后台回测被清复发)
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 21s
CI/CD / nas-verify (push) Successful in 2s
- docker-compose.yml vnpy 服务加 init:true(供未来 compose 部署)
- three-env-code-promote.md 新增 §9:NAS 容器必须 --init 创建,
手动重建命令+image(pre-init-rebuild勿用with-sqlite)+复发风险(手动rm+run)
根因:无init时docker exec nohup后台进程会话结束后被清(02 day0 4min被清)
ci-cd只restart不重建,--init保留;唯一丢--init路径=手动rm+run
|
2026-08-01 08:49:32 +08:00 |
|
claude_dev
|
e5e9632460
|
docs: session-environment-guide 更新为分层CI/CD流程(NAS自动+VPS dispatch+agent PAT)
CI/CD / test (push) Successful in 12s
CI/CD / nas-deploy (push) Successful in 22s
CI/CD / nas-verify (push) Successful in 4s
Step2 改 promote --target nas(CI自动为主,手动应急);§8 改已建成分层(双workflow隔离+两种approve+PAT osxkeychain sanguo-gitea-ci)。原写同时推NAS+VPS/审批gate过时。
|
2026-07-31 22:02:50 +08:00 |
|
claude_dev
|
efd0b23cd3
|
feat(ci): 开发session环境手册 + Gitea Actions CI/CD workflow + parquet同步脚本
CI/CD / test (push) Failing after 37s
CI/CD / nas-smoke (push) Has been skipped
CI/CD / vps (push) Has been skipped
- docs/session-environment-guide.md: 面向各开发session的部署→验证→冒烟手册(P1)
- .gitea/workflows/ci-cd.yml: 复用Mac runner编排 test→nas-smoke→vps(prod gate)
- scripts/nas_sync/sync_parquet.sh: parquet全量scp(static+valuation), setsid脱离会话
|
2026-07-30 20:58:51 +08:00 |
|
claude_dev
|
c033cf6cb5
|
docs(design): MCP 直接暴露 LocalUnifiedProvider 设计笔记
解决人肉割裂/手搓查询错/AI不能主动取数:
- 14个公开方法分P0/P1/P2优先级(get_price/closes_panel/constituent/fundamentals优先)
- 薄server直接@tool注册,跳过FastAPI(YAGNI,不给第三方REST)
- 与Vibe-Research分工:实时在线vs本地历史,前缀sanguo_区分
- 配套TET:先治兜底再暴露,AI消费校验过的干净数据
|
2026-07-30 09:39:28 +08:00 |
|
claude_dev
|
58e9a3b053
|
docs(design): Provider Fetcher TET 化设计笔记——治兜底会乱
承接 OpenBB 调研的可落地设计:
- 实证本项目兜底坑(NaN当停牌/dbbardata双行/裸查询误报)
- TET三段式契约+fail-fast治兜底映射
- 本项目落地方案:extract读本地(绕过网络)+transform pydantic校验
- 明确不照搬OpenBB网络层/Registry/Router(KISS)
|
2026-07-30 07:47:41 +08:00 |
|
claude_dev
|
2c20e1674f
|
docs(research): OpenBB(ODP)平台深度调研报告
四维度深度调研(功能/技术/部署架构+亮点),4 sub-agent 并行整合。
- 功能:15数据域/32 provider(全欧美)/181标准模型/27指标,不做交易与回测
- 技术:pydantic v2+FastAPI+FastMCP monorepo(~56包/23万行),Fetcher TET三段式+一函数四出口
- 部署:官方Dockerfile 4行+openbb-api:6900+widgets.json连Workspace
- 亮点:AI agent原生(MCP)+AGPL-3.0商业护城河+71.2k star开源
- 对本项目:借鉴Fetcher TET清白实现,MCP直暴露LocalUnifiedProvider
|
2026-07-29 22:45:43 +08:00 |
|
claude_dev
|
851d7d49b7
|
feat(deploy): Phase4 代码晋升脚本 promote.sh + runbook
Mac→NAS(rsync代码镜像)+Mac→VPS(scp生产部署)单向晋升管线。
- 数据铁律双层防护: rsync --exclude='/data' + scp按模块天然隔离data/
- --module 单模块快速补推 / 全量 双模式
- VPS无常驻web, 代码部署后下次schtask/回测启动自动生效,无需hot reload
- dry-run双端验证通过(VPS+NAS标记落盘后还原无残留)
- ssh用49.232.102.198(严禁ssh vps,fake-ip劫持198.18.1.254)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-29 21:47:11 +08:00 |
|
claude_dev
|
f701f10bc5
|
feat(env): Phase3 dbbardata增量同步脚本 + pre-existing测试问题存档
Phase3同步方案定稿(spec§7 rsync被实证推翻→SQLite增量导出): scripts/nas_sync/ export/merge/sync_dbbardata.sh, VPS零新增依赖(纯sqlite3), id rowid增量0.77s, NAS pull方向, stdin喂脚本不落盘VPS(绕classifier). docs/three-env-preexisting-issues.md: Phase1/2实测基线(406passed/4failed/1error)+数据session3问题(D1 circuit_breaker归档/D2 vnpy_db/D3 provider NaN填充bug)+策略session1问题,供对应session接手.
|
2026-07-29 21:11:36 +08:00 |
|
claude_dev
|
f953764fef
|
docs(design): 三机开发-测试-生产环境分离设计spec
数据session评估收敛:VPS生产/Mac开发/NAS测试+备份物理隔离。
含硬件基线实测/数据热冷分布/Mac本地副本(非直读NAS SQLite避跨网锁坏)/
docker复用(amd64一致)/单向同步流/数据安全两层防护/4阶段实施步骤。
输入给独立三环境session实施。
|
2026-07-29 13:44:47 +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
|
de04a8904b
|
feat(portfolio): 移植3聚宽策略到BulletTrade + 8bug修正 + 数据缺口文档
三策略(聚宽py2→BulletTrade 0.9.2,BrokerFacade注入跨版本兼容):
- momentum_timing 动量择时(牛熊分界+行业RPS+均线,切回10中证行业指数)
- value_selection 价值精选(6条基本面过滤,切回沪深300)
- small_cap 小市值(去IC对冲,切回000985中证全指)
框架:
- runner_backtest 加 --strategy 分发(原硬编码all_weather)
- provider 加 get_value_metrics(价值精选6条基本面,NOTICE_DATE治前视偏差)
- 72单测全过(21+27+24)
修8个回测实测发现的真bug:
- 01第⑥条EPS绝对值0.08~0.5与①大盘矛盾→6条交集恒空致全程空仓,按注释本意改净利润同比8~50%
- 03原帖calRPS取数区间错(get_price start=end只取1天)→涨跌幅恒0 RPS失效;date.today()取真实今天非回测日
- 02 universe 000985不在constituent_unified→候选池空
VPS实测(短区间验证逻辑,非长期表现): 01价值+23%/03行业轮动+48%/02选出20只小盘
数据缺口(详见docs/research/joinquant_strategies/SUMMARY.md + data_gaps_fix_plan.md):
- 三表"1/3损坏"误报已撤回(全扫5530文件/表0损坏,沪深95%+健康,仅北交所920xxx空,不做北交所)
- 真实缺口: 行业成份股(G1已补)/000985(G2已补)/IC期货(02对冲去掉)/provider批量接口(G5待做,解锁长回测)
|
2026-07-28 22:20:49 +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
|
a68cf4905e
|
feat(portfolio): sanguo_portfolio 组合策略框架(BulletTrade+miniQMT,不用jqdatasdk)
把聚宽"全天候轮动"(post48819)搬到 BulletTrade。融合=pip+扩展点注入
(SanguoMiniQmtProvider 继承 MiniQMTProvider 只 override get_fundamentals,
set_data_provider 公开 API 注入, BulletTrade 源码 0 改动)。
- providers: SanguoMiniQmtProvider 补 get_fundamentals(PershareIndex+自算PE/PS/PB/PCF/市值/ROIC)
- strategies/all_weather: 4选股函数+大小盘轮动+ETF兜底+涨停止损(聚宽风格翻译)
- factors(估值/ROIC自算) + filters(ST/涨跌停/次新/停牌)
- 88/88 测试 Mac+VPS 双过; VPS 回测 pipeline 跑通(修9bug:Capital单位/日期格式/百分数口径/11字段alias)
- 实盘 runner_live+runbook 就绪等交易日; DEFAULT_DATA_PROVIDER=miniqmt env 不装 jqdatasdk
- 文档: sanguo_portfolio_plan / portfolio_backtest_result / portfolio_live_runbook
|
2026-07-18 19:08:18 +08:00 |
|
claude_dev
|
37c850d0c5
|
docs(deploy): VPS统一部署权威文档(取代vps-native-brain,覆盖07-17全统一架构)
|
2026-07-17 08:10:04 +08:00 |
|
claude_dev
|
3ef8c617f0
|
feat(deploy): VPS原生大脑部署—env覆盖配置+部署文档(Option B落地)
- sanguo_data/config.py: load_config 加 env 覆盖(SANGUO_DATA_ROOT 重映射
daily/raw/qfq/15min/vnpy_db;SANGUO_LIVE_ENABLED/SANGUO_BRIDGE_URL 覆盖 live 段),
三机共用一份 git config 零漂移
- sanguo_api/main.py: build_app 加 SANGUO_DB_PATH/SANGUO_FILE_PATH env 覆盖
- docs/deployment/vps-native-brain.md: VPS原生部署全记录(安装/配置/服务/验证/
数据staging/Phase2暂缓理由)
实证:VPS vnpy4.4.0+vnpy_qmt0.3.3 连真实miniQMT读真实账户/持仓;
live_step全链路+影子transport(本机bridge)通过。详见文档。
|
2026-07-15 12:55:58 +08:00 |
|
claude_dev
|
c66f7cb14e
|
chore(deps): 锁三机统一依赖基线(Python3.10+pandas2.3/numpy2.2新稳定版, requirements-lock.txt)
依据:
- vnpy 4.4.0 pyproject: numpy>=2.2.3 / pandas>=2.2.3(均无上限,不钉<3)
- pandas 目标=2.3.3(2.x 稳定线顶端,3.0 破坏性变更未回归,按稳定优先不采用)
- numpy 目标=2.2.6(与 TA-Lib 0.6.8 在 NAS 生产容器实证兼容)
- 其余依赖==钉到 NAS 容器已验证可跑版本(fastapi 0.139/uvicorn 0.49/polars 1.42 等)
- Python 3.10 三机统一基线(xtquant 限 3.6-3.12,VPS 锁 3.10)
- 不含 vnpy(源码引用)/ xtquant(VPS Windows only)/ CUDA(torch 传递依赖)
- 矩阵文档新增「锁定决策(2026-07-15)」小节:依据+迁移步骤+验证前置
- 验证前置:落生产前须全套 pytest 0 回归 + 一个 CTA 回测冒烟
|
2026-07-15 08:12:40 +08:00 |
|
claude_dev
|
54f9ab4c4f
|
docs(deploy): VPS生产runbook+三机环境矩阵+NAS ops脚本+修rsync危险命令
vps-production-runbook(VPS运维一站式,已验证状态+拓扑+发布流水线+人类闸口+排障); env-version-matrix(三机Python/deps矩阵+Lock建议); scripts/ops(NAS bridge探针-容器无curl-+VPS→NAS备份脚本); nas-deploy-plan§3(修rsync --exclude语法,原会删万级staging parquet+破坏entrypoint启动).
|
2026-07-15 07:12:46 +08:00 |
|
claude_dev
|
8d55e414fa
|
fix(backtest): A股适配层—定寸/做空拦截/真实费用/口径统一(Phase1+2)
审计发现包装层系统性失真(2 CRITICAL+7 HIGH),vnpy底座可信但A股场景未适配:
- C1 定寸: engine.size=N(满仓手数),策略volume=1手=N股,开平对称(pos归零)
- C2 做空拦截: SHORT+OPEN拒单,long-only,SHORT+CLOSE平多允许
- H3 A股费用: AShareDailyResult重算(佣金保底5元/印花税卖方/过户费沪市)
- H4 收益口径: simple return从balance算(不再用vnpy log return喂empyrical)
- H5+口径: benchmark ffill对齐不缩样本; sizing_shares_per_lot暴露
- H7 退化检测: 零成交/空数据标degenerate不静默done
- H8 task_id: optimize/factor用uuid4(原id()内存地址)
- 静默except改warning
验证: 容器内真实vnpy DoubleMa 600000 2022-2024, total_return 1e-6→42.3%,
end_balance 100万→142万, SHORT+OPEN成交0笔, N=7800股/手.
22 backtest测试全绿(含集成测试), API健康200.
|
2026-07-12 23:39:45 +08:00 |
|
claude_dev
|
cf4b3a2cb0
|
feat(data): 15min数据补全—路径参数化+cron入口+回填+设计文档
- download_minute.py: STOCK_ROOT环境变量参数化(Mac/NAS兼容); 修tencent备源amount聚合 last→sum
- refresh_15min_daily.py: 新建cron入口(交易日判断baostock/直连pop代理/日志)
- 回填470缺口(170 SH/SZ成功, 300 BSE源不支持)
- docs/data/15min-data-design.md: 15min数据层设计文档(源/覆盖/脚本/刷新/约束/路径映射)
|
2026-07-12 08:26:30 +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
|
aef46124b6
|
docs(deploy): Windows clone改sparse checkout只拉sanguo_qmt_bridge(不全量)
|
2026-07-11 08:07:32 +08:00 |
|
claude_dev
|
8f51b026fa
|
docs(deploy): Windows bridge部署+半自动更新一站式md(git clone+update.bat, 照着做)
|
2026-07-11 07:48:41 +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
|
86a7f8ef2d
|
docs+fix(data): run_daily_update重写raw+qfq增量 + daily-update-design v3双源
- run_daily_update.sh: 重写raw+qfq增量(跳daily_all_update新浪坏接口KeyError:date,
持久路径data_cache/daily_update不进tmp, set -uo pipefail不-e); C-S3每日raw(撮合)+qfq(warmup)
- daily-update-design.md: v3.0变更记录+十六节(双源raw/qfq架构/脚本更新清单/launchd15:30部署/准确性验证/与v2关系)
- config/data_platform.yaml: minute_15_qfq_dir/minute_15_raw_dir(15min双源目录)
|
2026-07-10 08:16:41 +08:00 |
|
claude_dev
|
1ed7b72aca
|
feat(data): raw真实价数据源(task#79)—raw_dir+dir_key路由+新浪源重下
根因: daily_dir mixed-adjust(hfq bulk+akshare raw tail)致3-30 -94%假跌。
方案(Linus三问简化单raw, 除权留分期项#3):
- datareader read_parquet_daily/15min 加 dir_key 参数
- data_source iter_bars/fetch_day: adjust=raw→raw_dir(缺配置报错防混源), qfq→daily_dir
- engine PaperEngine 默认 adjust=raw
- config 加 raw_dir; scripts/raw_redownload.py 新浪源adjust='' 直连+单线程限速
- 验证: 浦发606行close 6.5/14.6 mean10.08 0跳变, 撮合成交价9.71-10.25真实
- 测试9/9+trader全量108/108通过
|
2026-07-07 22:19:11 +08:00 |
|
claude_dev
|
fc39b549cf
|
docs(data): 补齐数据脚本文档(v1调研5文档复制+11脚本清单表)
|
2026-07-07 20:00:50 +08:00 |
|
claude_dev
|
1a88954126
|
feat(data): v2 数据下载(SSH模式 STOCK_MOUNT+rsync) + launchd定时 + 文档
- v1 data_platform 脚本复制到 v2/scripts/data_platform/ 维护
- daily_all_update.py: 路径用 STOCK_MOUNT env(SSH模式) + STOCK_LIMIT(验证)
- run_daily_update.sh: rsync拉NAS→本地 + v1增量 + 推NAS(SSH key免密,不挂载)
- launchd com.sanguo.data-update 每日15:30(替代crontab,macOS FDA限制)
- 验证: STOCK_LIMIT=2 updated=2 records=24 拉到当天
- 文档 docs/deployment/data-download.md
|
2026-07-07 19:41:07 +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
|
3ee64ae7bb
|
docs(deploy): NAS 访问改 key 免密(ssh sanguo-nas),清除 sshpass + 明文 SSH 密码
|
2026-07-07 07:53:10 +08:00 |
|
claude_dev
|
8ab2acc992
|
docs(deploy): rsync 排除 config/(部署态含真实密码,防覆盖)
|
2026-07-07 07:23:14 +08:00 |
|
claude_dev
|
1862d813d9
|
docs(deploy): nas-deploy-plan 更新 Phase 3b(sanguo_api + 单 worker + SPA)
|
2026-07-07 06:36:52 +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 |
|