claude_dev
|
256820d36f
|
feat(strategy): 策略实例做实P0+P1+策略库A+B混合布局(spec§12.6定稿)——实例=策略档案:①绑定:paper/live账户+回测任务加instance_id(paper_accounts/live_accounts ALTER迁移),发起即建档(无档案自动建),绑已有档案时D1发起快照(账户用档案参数复印件)②回写:事件型(回测_on_done/回放线程)落盘update_instance_run;持续型(实走/影子/实盘)读时聚合_instance_runtime(四格覆盖+在跑账户+漂移检测)③D2/D3同步:POST /paper/sync/{id}批量刷运行中模拟账户(实走+影子锁死一致),实盘不在线改参④D5删除保护409⑤P1全景:GET instances/{id}/overview(全部运行账户+净值尾部+合并持仓归因)收编挂起项「按实例归因持仓」⑥前端:策略库重做A+B混合(统计条+在跑巡检模式+左栏代码树中文主显/文件副行+档案区漂移角标/同步/全景;STRATEGY_LABELS抽共享常量),InstanceOverview抽屉(echarts净值对比+归因持仓表),模拟盘/实盘表单加实例档案下拉(选中预填+绑定,路由?instance=直进);mock层enriched/sync/overview(路由序enriched先于{id});+7绑定测试,921绿,build绿,dev浏览器验收过 [vps]
CI/CD / test (push) Successful in 14s
CI/CD / nas-deploy (push) Successful in 52s
CI/CD / nas-verify (push) Successful in 17s
|
2026-08-15 22:39:05 +08:00 |
|
claude_dev
|
5615b11640
|
feat(api): 回测参数校验—5提交入口统一拦截(2029结束日期可提交根治)——用户实况portfolio_ef8b655a零校验跑垃圾结果;sanguo_api/validation.py:L1静态(格式/先后/未来/区间≥30天/资金/费率0~1%)+L2数据最新日(600000日线锚定MAX(datetime),24h模块缓存,查库失败退化仅L1);接线CTA/组合/优化/因子/模拟盘回放5入口,400中文业务提示;前端5页日期控件禁选未来日期(disableFutureDate共享);+10测试含2029回归,API 115绿,前端build绿 [vps]
CI/CD / test (push) Successful in 19s
CI/CD / nas-deploy (push) Successful in 28s
CI/CD / nas-verify (push) Successful in 10s
|
2026-08-15 21:32:32 +08:00 |
|
claude_dev
|
4a6fb4cd37
|
fix(editor): 语法检查按钮接真——原为原型期假实现(sleep 600ms恒报通过,用户删中括号仍提示成功);后端POST /strategy/file/{name}/check(compile()不落盘,SyntaxError返行号+消息,与保存的py_compile门禁同源);前端调真接口,错误显示「第N行:消息」红tag+toast,编辑即清;3新后端测试(删括号必报错) [vps]
CI/CD / test (push) Failing after 11m17s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
|
2026-08-15 21:08:36 +08:00 |
|
claude_dev
|
534a06aad7
|
feat(shadow-desk): 双轨日终对账报表(影子P3前半,设计§8.2)—reconcile_report四指标(成交笔数全同/每笔价差vwap对比<10bps带符号供滑点重标/收盘持仓逐只数量/净值月偏差<0.5%)+find_dual_track_pairs自动配对(shadow策略名↔live strategy_class,live#5↔shadow#39实证)+dual_track_reconcile落库upsert;API GET /paper/reconcile(+单配对refresh);CLI python -m;supervisor auto轮询挂15:10后每日一次兜底;14新测试(符号口径SH/XSHG归一/影子拒单不计/部分成交如实报笔数异) [vps]
CI/CD / test (push) Successful in 11s
CI/CD / nas-deploy (push) Successful in 33s
CI/CD / nas-verify (push) Successful in 12s
|
2026-08-14 23:18:07 +08:00 |
|
claude_dev
|
e9aec041db
|
feat(api): P1.4 web token 60min静默刷新—后端POST /auth/refresh(有效旧token换新,过期401不放行续命)+login/refresh返expires_in+get_token_exp;前端请求拦截器剩余<10min单飞预刷新(裸axios避递归/mock短路,失败静默降级走401兜底);治长回测轮询401跳登录;3新测试 [vps]
CI/CD / test (push) Successful in 18s
CI/CD / nas-deploy (push) Successful in 34s
CI/CD / nas-verify (push) Successful in 11s
|
2026-08-14 23:09:34 +08:00 |
|
claude_dev
|
f49154266d
|
fix(live): 监控页三修——①收益率改首快照基线(与列表同口径,治共用QMT账户下cap兜底的假900%)②组合实盘成交落库_sync_trades(轮询broker当日成交→live_trades,此前完全没人写成交表)③updated_at北京时间显示+策略参数JSON改表格 [vps]
CI/CD / test (push) Successful in 15s
CI/CD / nas-deploy (push) Successful in 42s
CI/CD / nas-verify (push) Successful in 14s
|
2026-08-14 22:07:30 +08:00 |
|
claude_dev
|
f73810a6da
|
fix(live): 组合实盘快照守卫——cash<=0(持仓先到资金未同步)不落balance;2026-08-14实况=首条total=2931成收益率基线→前端341080%假收益率;抽出_snapshot_once可测+回归测试 [vps]
CI/CD / test (push) Successful in 16s
CI/CD / nas-deploy (push) Successful in 36s
CI/CD / nas-verify (push) Successful in 15s
|
2026-08-14 21:54:56 +08:00 |
|
claude_dev
|
a1d4773189
|
fix(api): PUT /live 编辑漏补vt_symbol后缀(新建有normalize编辑没有);2026-08-14实况=用户改300024成裸码→引擎'vt_symbol无法解析,跳过'→假运行收不到行情;编辑与新建同规normalize+回归测试 [vps]
CI/CD / test (push) Successful in 17s
CI/CD / nas-deploy (push) Successful in 47s
CI/CD / nas-verify (push) Successful in 14s
|
2026-08-14 21:51:39 +08:00 |
|
claude_dev
|
c9bc654d3a
|
fix(paper): 实走/影子隐藏起止日期(用户指正:开放账户区间无意义): 前端仅回放显示日期,卡片标题资金与区间→资金+说明文案; 后端非回放强制start=创建当天end空(组合日终重放依赖start_date空值会崩); 区间断言进测试 [nas]
CI/CD / test (push) Successful in 15s
CI/CD / nas-deploy (push) Successful in 31s
CI/CD / nas-verify (push) Successful in 13s
|
2026-08-14 19:45:09 +08:00 |
|
claude_dev
|
6220fc5943
|
refactor(paper): 影子升级为第三种运行模式(回放/实走/影子,用户拍板CTA和组合都可走影子): 模式卡三选一替代组合卡内撮合引擎单选; engine由mode推导(shadow→shadow否则eod_replay,CTA/组合统一); 日终20:30 job只遍历mode=live天然隔离影子账户; 列表徽标mode=shadow亮'影子'+组合live标'日终'; 2新测试 [vps]
CI/CD / test (push) Successful in 13s
CI/CD / nas-deploy (push) Successful in 27s
CI/CD / nas-verify (push) Successful in 9s
|
2026-08-14 12:55:26 +08:00 |
|
claude_dev
|
861c7faa8c
|
feat(portfolio): P1-a 组合策略K线周期字段(前后端): 模拟盘新建组合卡显周期下拉(原v-if藏起,实走/影子用miniQMT档位); live组合分支不写死d(空=d默认,cta空=15m); 组合回测加interval(d=day,非d拒400+runner拒ValueError,分钟档等数据层); worker params存interval供回放预填; 前端组合回测表单加下拉(仅日线可选,其余disabled标注影子可用) [vps]
CI/CD / test (push) Successful in 11s
CI/CD / nas-deploy (push) Failing after 12s
CI/CD / nas-verify (push) Has been skipped
|
2026-08-14 12:05:23 +08:00 |
|
claude_dev
|
234b44e141
|
feat(live): CTA实盘vt_symbol裸6位码自动补交易所后缀(6→SSE,0/3→SZSE);表单提示+单策略原因说明(实盘需A股适配,陆续扩展) [nas]
CI/CD / test (push) Successful in 15s
CI/CD / nas-deploy (push) Successful in 32s
CI/CD / nas-verify (push) Successful in 13s
|
2026-08-14 08:30:56 +08:00 |
|
claude_dev
|
5850a60561
|
feat(api+web): 任务列表管理(验收四轮批1):历史任务→任务列表改名;DELETE /task/{id}单/批删除(进行中拒删);GET /task/{id}/params参数回放+点任务ID跳参数页预填;真创建时间+耗时列(提交即记,进行中活计时);进行中禁查看;组合任务params全量存 [nas]
CI/CD / test (push) Failing after 10m39s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
|
2026-08-14 08:29:20 +08:00 |
|
claude_dev
|
fd0b9d0c36
|
feat(live): 组合策略实盘(R3-1): live_accounts加strategy_type/pool/max_pool/benchmark列(ALTER迁移); supervisor对组合行拉runner_live子进程(env传参+崩溃检测); runner_live重写适配bullet_trade 0.9.2新API(strategy_file+broker_factory,旧initialize=/broker=已废弃)+live_strategy.py适配文件挂StrategyTemplate; 前端live/New双卡表单+列表组合徽标; 8测试 [vps]
CI/CD / test (push) Successful in 12s
CI/CD / nas-deploy (push) Successful in 27s
CI/CD / nas-verify (push) Successful in 12s
|
2026-08-13 19:57:23 +08:00 |
|
claude_dev
|
baaa459481
|
test(api): 修2个stale测试(benchmark-curve/risk-series未知任务从404改断言降级200空序列,对齐b2c41c7降级设计) [nas]
|
2026-08-13 19:57:23 +08:00 |
|
claude_dev
|
82c9edb092
|
fix(strategy): 编辑器代码空白根因=/strategy/files不含code; 加GET /strategy/file/{name}按需拉取; 运行回测改回跳参数页+按策略预填(New.vue读query.class,推翻上轮直接发起) [nas]
|
2026-08-13 19:40:18 +08:00 |
|
claude_dev
|
ccf958c5d6
|
feat(paper/live): 生命周期管理补全: paper停止/恢复(实走20:30 step跳过stopped)/删除(连带净值成交持仓挂单)/编辑(名称标的资金); live删除(运行中拒绝)/编辑(stopped才可改); 前端列表+结果页按钮/编辑弹窗/删除确认 [vps]
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Failing after 11s
CI/CD / nas-verify (push) Has been skipped
|
2026-08-13 18:27:32 +08:00 |
|
claude_dev
|
d8c156e6de
|
feat(strategy): 策略库灌入vnpy内置8策略模板(DoubleMa/AtrRsi/BollChannel/DualThrust/KingKeltner/MultiSignal/MultiTimeframe/TurtleSignal); registry自研目录优先加载(编辑副本即刻生效,pip兜底); 分类器识别vnpy_ctastrategy import风格 [vps]
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Failing after 12s
CI/CD / nas-verify (push) Has been skipped
|
2026-08-13 18:24:40 +08:00 |
|
claude_dev
|
523105650d
|
fix(api): GET /task 内存失后 DB fallback 返 status(治回测 done 后前端轮询 404 死循环卡等待) [nas]
CI/CD / test (push) Successful in 13s
CI/CD / nas-deploy (push) Successful in 25s
CI/CD / nas-verify (push) Successful in 12s
|
2026-08-13 08:52:53 +08:00 |
|
claude_dev
|
4ad505434b
|
feat(backtest): 个股回测接入费用(cfg通道)+slippage+benchmark放宽至4基准 [vps]
CI/CD / test (push) Successful in 11s
CI/CD / nas-deploy (push) Successful in 25s
CI/CD / nas-verify (push) Successful in 9s
|
2026-08-12 23:56:14 +08:00 |
|
claude_dev
|
1d8e39709f
|
feat(strategy): 策略代码+实例路由组(routes_strategy)并注册 app [nas]
|
2026-08-12 23:56:14 +08:00 |
|
claude_dev
|
31836701f6
|
feat(strategy): 策略实例 JSON 存储 CRUD(list/get/create/update/delete) [nas]
|
2026-08-12 23:47:51 +08:00 |
|
claude_dev
|
a272741dd6
|
feat(strategy): registry 扩展自研目录扫描(AST)+文件读写+py_compile; __init__ 惰性化(纯逻辑模块脱离 fastapi 可单测) [nas]
|
2026-08-12 23:47:07 +08:00 |
|
claude_dev
|
304844903c
|
feat(api): 回测结果API加relative_metrics+基准曲线/风险序列/持仓/日志4端点
|
2026-07-11 13:48:23 +08:00 |
|
claude_dev
|
a1048690c1
|
test: 前后端对齐—容器复跑验证+清理僵尸测试
- test_main: FastAPI 0.139 _IncludedRouter 不再 flatten,改用 TestClient 探测路由
- datareader: 文件名(sh600000_daily)/patch target(vnpy.trader.database) 对齐 lazy import 实现
- alpha_lab/analyzer/data_adapter: vnpy.alpha/alphalens 容器专用本地 skip
- 删 4 个测废弃 sanguo_web 的僵尸测试(-1267 行死代码)
- pytest.ini: asyncio_mode=auto
- frontend: package.json 加 test script(npm test 可跑)
- NAS 容器 309 passed 全绿验证(Python 3.10,本机 303+6skip)
|
2026-07-11 11:45:26 +08:00 |
|
claude_dev
|
252deb5ec7
|
feat(api): paper positions/pending 端点(实走监控用,Phase 3c Live页后端基础)
|
2026-07-09 22:33:35 +08:00 |
|
claude_dev
|
14088eac13
|
feat(paper): C-S2 分策略归因(/strategies 聚合成交/拒单/费用)
|
2026-07-07 12:07:37 +08:00 |
|
claude_dev
|
041dca59e2
|
feat(api): /paper/* 路由(create建account+equity/trades查询,JWT)
|
2026-07-07 12:06:26 +08:00 |
|
claude_dev
|
54fc1b656f
|
feat(s3): 历史任务 + 参数优化端到端跑通
- result_store.load_result_by_task_id + orchestrator.get_result DB 兜底(历史回看)
- GET /task 列表、GET /task/{id}/optimization-results
- Task.raw_result 存优化结果 list(内存)
- cta_optimizer 修同款 bug(interval d / capital 1M / vnpy DB SETTINGS)
- get_status 返回 error_msg(str 守卫)
- 前端 优化页(网格输入+轮询+结果表)、历史页(任务列表+回看)、侧栏子菜单
- 修 5 个旧 test_routes 回归;73 tests passed
- 冒烟:历史 3 任务 + 优化 9 组合
|
2026-07-07 06:35:54 +08:00 |
|
claude_dev
|
212ad6426d
|
feat(s2): 投研核心端到端跑通(IC 表 + tears 报告)
- Task 加 raw_result 字段;orchestrator get_raw_result(内存存 FactorReport)
- 路由 /factor/list、/task/{id}/ic-summary、/task/{id}/report/{factor}(query token 给 iframe)
- analyzer cfg=None 时加载 data_platform.yaml(修 API 路径 read_db_daily 崩)
- get_status 返回 error_msg(调试+前端 failed 展示)
- 前端 投研-新建(多因子/多标的/日期)+ 结果页(IC 表 + tears iframe)
- factor 冒烟通过:ma5 → IC 1D/5D/10D 真实数据
|
2026-07-07 06:28:01 +08:00 |
|
claude_dev
|
3a0e75fdc1
|
feat(api): 回测结果接口(strategy list/params + equity-curve/daily-pnl/trades + kline)
- strategy_registry 枚举 vnpy_ctastrategy 策略(兜底 STRATEGY_NAMES)
- /strategy/list、/strategy/{name}/params
- /task/{id}/equity-curve、/daily-pnl、/trades(BacktestResult JSON 化)
- /kline(read_db_daily 历史 K 线)
- 9 tests passed(4 strategy_registry + 5 routes)
|
2026-07-07 06:08:53 +08:00 |
|
claude_dev
|
4e86d9e00e
|
feat(api): sanguo_api.main 容器入口(build_app + create_app factory,挂 SPA)
|
2026-07-07 00:37:38 +08:00 |
|
claude_dev
|
efaac41c06
|
feat(api): routes 完整(login + JWT 依赖 + optimize/factor + WS route)
|
2026-07-06 19:04:26 +08:00 |
|
claude_dev
|
48a9058cb2
|
feat(api): WS 连接池 ConnectionManager
|
2026-07-06 18:15:22 +08:00 |
|
claude_dev
|
2227a91a8d
|
feat(api): JWT 单用户认证(auth.py)+ config 扩展
|
2026-07-06 18:10:04 +08:00 |
|
claude_dev
|
0f894c8415
|
feat(api): 轻量 FastAPI 5 路由(无 JWT/WS/前端)
|
2026-07-06 11:38:15 +08:00 |
|