From e22c8ee939fc80dbf060bc2c10913a0d72deda40 Mon Sep 17 00:00:00 2001 From: claude_dev Date: Sat, 1 Aug 2026 23:20:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(portfolio):=20max=5Fpool=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E9=80=8F=E4=BC=A0(model+handler+=E5=89=8D=E7=AB=AF,?= =?UTF-8?q?=E8=A7=A3=E9=99=A430=E7=A1=AC=E7=BC=96=E7=A0=81)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit model 加 max_pool 字段(默认30,0=全市场不限);handler 用 req.max_pool 替换硬编码30; 前端加选股池上限 input + onSubmit 透传。下游 submit_portfolio→spec→argv--max-pool 链路异步化时已存在,本次只补入口。全周期验收可传 max_pool=0 对比 docker exec 旁证 --- frontend/src/api/portfolio.ts | 1 + frontend/src/views/backtest/PortfolioBacktest.vue | 12 ++++++++++++ sanguo_api/routes_portfolio.py | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/frontend/src/api/portfolio.ts b/frontend/src/api/portfolio.ts index 379f936..e968d9a 100644 --- a/frontend/src/api/portfolio.ts +++ b/frontend/src/api/portfolio.ts @@ -3,6 +3,7 @@ import { apiClient } from './client' export interface PortfolioBacktestReq { pool: string strategy?: string + max_pool?: number start_date: string end_date: string initial_cash: number diff --git a/frontend/src/views/backtest/PortfolioBacktest.vue b/frontend/src/views/backtest/PortfolioBacktest.vue index 396f7e6..ef981ce 100644 --- a/frontend/src/views/backtest/PortfolioBacktest.vue +++ b/frontend/src/views/backtest/PortfolioBacktest.vue @@ -29,6 +29,7 @@ let pollTimer: ReturnType | null = null const form = reactive({ pool: 'hs300_subset', strategy: 'all_weather', + max_pool: 30, start: '2024-01-01', end: '2024-02-29', cash: 1_000_000, @@ -108,6 +109,7 @@ async function onSubmit(): Promise { const tid = await postPortfolioBacktest({ pool: form.pool, strategy: form.strategy, + max_pool: form.max_pool, start_date: form.start, end_date: form.end, initial_cash: form.cash, @@ -193,6 +195,16 @@ async function onSubmit(): Promise { 选择回测策略 + + + 0=全市场不限, N=前N只(MVP验证用, 默认30) +