fix: 修复 smart_trade_engine.py 3处除零风险
- :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
This commit is contained in:
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user