From 6460437bb489d92169b2b7e255c08e336ab982a8 Mon Sep 17 00:00:00 2001 From: hmo Date: Wed, 12 Aug 2026 13:34:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=87=E7=AA=97=E5=8F=A3fallback?= =?UTF-8?q?=E8=A1=A5portfolio/portfolio=5Ffull=E7=BB=84=E5=90=88=E6=A8=A1?= =?UTF-8?q?=E6=8B=9F=E2=80=94=E2=80=94=E6=89=A7=E8=A1=8C=E6=95=B0positions?= =?UTF-8?q?=5Ftaken/=E5=85=A8=E5=8F=82=E4=B8=8Etotal=5Freturn/=E7=BB=BC?= =?UTF-8?q?=E5=90=88=E5=88=86ret=E5=88=86=E9=87=8F=E6=9C=89=E6=95=B0?= =?UTF-8?q?=E6=8D=AE(calc=5Fsummary=E7=BC=BA=E8=BF=99=E4=BA=9B=E5=AF=BC?= =?UTF-8?q?=E8=87=B40/1=E5=92=8C0x0.00=E7=9F=9B=E7=9B=BE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- strategy_lab.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/strategy_lab.py b/strategy_lab.py index f5243415..fa08c81b 100644 --- a/strategy_lab.py +++ b/strategy_lab.py @@ -2122,7 +2122,17 @@ def list_strategies(period_tag=None): sliced = [t for t in trades if t.get('entry_date', '') >= cutoff] if not sliced: continue - sliced_summaries[v] = (calc_summary(sliced, 1000000), len(sliced), period_tag) + # 2026-08-12 补充:除 calc_summary 基础指标外,还要算组合模拟 portfolio/portfolio_full—— + # 否则执行数(positions_taken)=0、全参与(total_return)=—、综合分 ret 分量=0(老莫发现矛盾) + _summary = calc_summary(sliced, 1000000) + try: + for _t in sliced: + _t.setdefault('boost', 1.0) + _summary['portfolio'] = portfolio_sim(sliced, 1000000, max_positions=10) # 10槽组合 + _summary['portfolio_full'] = portfolio_sim(sliced, 1000000, max_positions=100) # 全参与近似 + except Exception: + pass + sliced_summaries[v] = (_summary, len(sliced), period_tag) conn.close() out = [] for r in rows: