claude_dev
|
7a14d7da82
|
feat(portfolio): strategy 字段全链透传(API→orchestrator→worker→runner_backtest + 前端选择器)
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 20s
CI/CD / nas-verify (push) Successful in 3s
后端: PortfolioBacktestRequest.strategy → submit_portfolio(strategy=) → spec →
portfolio_worker _build_argv --strategy(NAS local + Mac SSH 两分支)
前端: PortfolioBacktestReq.strategy? + 策略下拉(4选项) + 副标题动态 + onSubmit 透传
runner_backtest CLI 已支持 --strategy(choices 4 策略),本提交不动
|
2026-08-01 23:01:26 +08:00 |
|
claude_dev
|
e64b5906da
|
fix(portfolio-backtest): 净值曲线 echarts 空白 - watch漏触发手动兜底
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 22s
CI/CD / nas-verify (push) Successful in 3s
根因(浏览器实证): onSubmit 异步轮询 done 后 result/equityCurve 同帧赋值,
v-if result 块(含 chart-box div)此帧才挂载, watch(equityCurve, flush:post)
在该时序下漏触发 renderEquity → echarts 从未 init(chart-box 无 _echarts_instance_)。
手动 echarts.init+setOption 实证容器/echarts/数据全正常(37点),纯 watch 触发遗漏。
修复: equityCurve 赋值后 await nextTick()(等 chart-box 挂载)+ 手动 renderEquity()兜底。
watch 保留(双保险, ensureChart 幂等)。
|
2026-08-01 16:56:26 +08:00 |
|
claude_dev
|
4986e5c3c4
|
feat(portfolio): 组合回测异步化(接入 orchestrator task 框架)
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 21s
CI/CD / nas-verify (push) Successful in 3s
routes_portfolio 同步 subprocess.run(timeout=600) >10min 回测被 504 杀。
改异步复用现有 sanguo_orchestrator:submit_portfolio 仿 submit_factor,
子进程执行搬至 portfolio_worker.py(三机自适应保留,timeout 600→3600),
复用 _wait_future/_on_done 持久化。前端 onSubmit 改 POST 拿 task_id
→ 轮询 /task/{id} → done 取 /portfolio/task/{id}/result。
- runner.py: + submit_portfolio + _portfolio_worker(lazy import)
- portfolio_worker.py(新): 三机自适应 argv + 子进程 + stdout JSON → BacktestResult
- routes_portfolio.py: POST async 返 task_id + GET /portfolio/task/{id}/result
- 前端: postPortfolioBacktest 返 task_id + 轮询 status + 取 result(去 600s timeout)
不动策略逻辑/runner_backtest 核心/现有 task 接口。
|
2026-08-01 13:52:46 +08:00 |
|
claude_dev
|
ae6dde7778
|
fix(frontend): 组合回测副标题文案修正(本地执行,非VPS)
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 24s
CI/CD / nas-verify (push) Successful in 4s
CI/CD 测试改动:验证 nas-deploy 前端 build+rsync 链路对前端改动跑得通
|
2026-07-31 22:54:49 +08:00 |
|
claude_dev
|
286c0bd069
|
fix(portfolio-backtest): 净值曲线watch加flush:'post'
CI/CD / test (push) Successful in 8s
CI/CD / nas-smoke (push) Successful in 2s
CI/CD / vps (push) Successful in 22s
watch(equityCurve) 默认 flush:'pre' 在 DOM 更新前触发,
equityEl div(在 v-if=result 内)尚未挂载→echarts.init 拿不到 DOM→空图。
flush:'post' 让 watch 在 DOM 更新后触发,曲线正常渲染。
|
2026-07-31 13:21:16 +08:00 |
|
claude_dev
|
96b1924fd5
|
feat: 实盘模拟(live) + 组合回测MVP(portfolio)
[live] 实盘模拟 vnpy+miniQMT 直连(supervisor 轮询, 前后端):
- sanguo_live: LiveTradingEngine + AShareCtaTemplate(定寸/禁做空) + runner_supervisor(DB驱动) + persistence(4表WAL)
- sanguo_api/routes_live: 9路由(create/start/stop/positions/trades/account/status)
- frontend live: New/List/Monitor + api/live.ts; config/live.yaml
[portfolio] 组合回测 MVP(BulletTrade, 链路代码完成待验证):
- runner_backtest 加 JSON 入口(--json, BacktestEngine 顶层 import)
- sanguo_api/routes_portfolio: POST /portfolio/backtest SSH 触发 VPS 跑
- frontend PortfolioBacktest.vue + api/portfolio.ts: 表单+结果+净值曲线
- 路由/菜单注册(/backtest/portfolio 组合回测)
- 已知: MVP 链路未端到端验证, agent 改至中途被停; 待 Mac 起服务联调
|
2026-07-18 20:04:16 +08:00 |
|