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({