From 6c2c217e2216f4029792e2595fca548ed253cdf1 Mon Sep 17 00:00:00 2001 From: claude_dev Date: Mon, 24 Aug 2026 20:54:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(web+api):=20=E7=BB=84=E5=90=88=E5=9B=9E?= =?UTF-8?q?=E6=B5=8Bmax=5Fpool=E9=BB=98=E8=AE=A430=E2=86=920=E2=80=94?= =?UTF-8?q?=E2=80=94=E7=94=A8=E6=88=B7=E6=8B=8D=E6=9D=BF=E3=80=8C=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E9=A1=B5=E9=9D=A2=E8=82=AF=E5=AE=9A=E8=A6=81=E6=94=B9?= =?UTF-8?q?=E3=80=8D(=E5=9B=9E=E6=B5=8B=E5=8F=A3=E5=BE=84=E4=B8=8E?= =?UTF-8?q?=E5=AE=9E=E7=9B=98=E5=AF=B9=E9=BD=90,f214e2f=E5=8F=AA=E7=BF=BB?= =?UTF-8?q?=E4=BA=86live/paper=E9=93=BE=E6=BC=8F=E4=BA=86=E5=9B=9E?= =?UTF-8?q?=E6=B5=8B)=20[nas]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 你印象中改过的是6ecdaab#95标的池pool→all(三表单+后端四处),max_pool当时没动。本次三处对齐: PortfolioBacktest表单默认30→0+过时提示(「MVP验证用,默认30」)清理+routes_portfolio Field default=30→0(防API直调口径分裂,#95同款对齐法)。语义同全链:0=不限,策略层>0才截断。build绿+tests/api 165绿。 --- frontend/src/views/backtest/PortfolioBacktest.vue | 4 ++-- sanguo_api/routes_portfolio.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/views/backtest/PortfolioBacktest.vue b/frontend/src/views/backtest/PortfolioBacktest.vue index 71bb8bd..441f040 100644 --- a/frontend/src/views/backtest/PortfolioBacktest.vue +++ b/frontend/src/views/backtest/PortfolioBacktest.vue @@ -57,7 +57,7 @@ const selectedInstanceId = ref(null) const form = reactive({ pool: 'all', strategy: 'all_weather', - max_pool: 30, + max_pool: 0, start: dr.start, end: dr.end, cash: 1_000_000, @@ -516,7 +516,7 @@ function fmtNum(v: number | null | undefined, digits = 2): string { - 0=全市场不限, N=前N只(MVP验证用, 默认30) + 0=全市场不限(默认), N=前N只 diff --git a/sanguo_api/routes_portfolio.py b/sanguo_api/routes_portfolio.py index 3c43a1a..d9e22dc 100644 --- a/sanguo_api/routes_portfolio.py +++ b/sanguo_api/routes_portfolio.py @@ -38,7 +38,7 @@ class PortfolioBacktestRequest(BaseModel): default="all_weather", description="策略: all_weather/momentum_timing/value_selection/small_cap", ) - max_pool: int = Field(default=30, description="选股池上限: 0=全市场不限, N=前N只(MVP验证用)") + max_pool: int = Field(default=0, description="选股池上限: 0=全市场不限(默认), N=前N只") # A 股费用(对齐个股回测) commission_rate: float = Field(default=0.0003, description="佣金率双边(万3=0.0003)") stamp_duty_rate: float = Field(default=0.001, description="印花税率卖出(千1=0.001)")