From cf1023754afcd4f43b55e67945fea0684e0efbe6 Mon Sep 17 00:00:00 2001 From: freedakgmail Date: Wed, 22 Jul 2026 07:42:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20smart=5Ftrade=5Feng?= =?UTF-8?q?ine.py=203=E5=A4=84=E9=99=A4=E9=9B=B6=E9=A3=8E=E9=99=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - :504 buy_price 可能为0导致除零,添加 if buy_price > 0 else 0 保护 - :1006 partial_sell 日志中 pos['avg_cost'] 除零,添加 if pos['avg_cost'] else 0 - :1055 sell 日志中 pos['avg_cost'] 除零,添加 if pos['avg_cost'] else 0 --- stock-html/services/smart_trade_engine.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stock-html/services/smart_trade_engine.py b/stock-html/services/smart_trade_engine.py index 73a2d9f..1c56ad5 100644 --- a/stock-html/services/smart_trade_engine.py +++ b/stock-html/services/smart_trade_engine.py @@ -501,7 +501,7 @@ def generate_sell_decisions(conn, user_id, config, current_prices, scan_map=None if current_shares <= 0: continue - profit_pct_now = (price - buy_price) / buy_price * 100 + profit_pct_now = (price - buy_price) / buy_price * 100 if buy_price > 0 else 0 days_held = pos.get('days_held', 0) or 0 print(f" {code} 成本{buy_price:.2f} 现价{price:.2f} 盈亏{profit_pct_now:+.1f}% 持仓{days_held}天") consec_up = pos.get('consecutive_up_days', 0) or 0 @@ -1003,7 +1003,7 @@ def execute_smart_trade(conn, user_id, scan_date=None): log_signal(conn, user_id, today, code, pos['stock_name'], 'partial_sell', dec['reason'], dec['rule'], price, pos['avg_cost'], - (price - pos['avg_cost']) / pos['avg_cost'] * 100, + (price - pos['avg_cost']) / pos['avg_cost'] * 100 if pos['avg_cost'] else 0, True, price, shares) results.append({ @@ -1052,7 +1052,7 @@ def execute_smart_trade(conn, user_id, scan_date=None): log_signal(conn, user_id, today, code, pos['stock_name'], 'sell', dec['reason'], dec['rule'], price, pos['avg_cost'], - (price - pos['avg_cost']) / pos['avg_cost'] * 100, + (price - pos['avg_cost']) / pos['avg_cost'] * 100 if pos['avg_cost'] else 0, True, price, qty) results.append({