This commit is contained in:
薇薇安 2026-02-12 16:57:58 +08:00
parent 7379dd1f4b
commit e7443dddf3

View File

@ -58,8 +58,12 @@ class MarketScanner:
logger.warning("未获取到交易对")
return []
# 根据配置限制扫描的交易对数量
# 根据配置限制扫描的交易对数量(确保为整数,避免 DB/JSON 返回 float 导致 slice 报错)
max_scan_symbols = cfg.get('MAX_SCAN_SYMBOLS', 500)
try:
max_scan_symbols = int(max_scan_symbols) if max_scan_symbols is not None else 500
except (TypeError, ValueError):
max_scan_symbols = 500
if max_scan_symbols > 0 and max_scan_symbols < len(all_symbols):
symbols = all_symbols[:max_scan_symbols]
logger.info(f"限制扫描数量: {len(symbols)}/{len(all_symbols)} 个交易对(配置: MAX_SCAN_SYMBOLS={max_scan_symbols}")
@ -164,6 +168,11 @@ class MarketScanner:
# 智能补单:返回 TOP_N + 额外候选数,当前 TOP_N 中部分因冷却等被跳过时,策略仍会尝试后续交易对,避免无单可下
top_n_val = cfg.get('TOP_N_SYMBOLS', config.TRADING_CONFIG['TOP_N_SYMBOLS'])
extra = cfg.get('SCAN_EXTRA_SYMBOLS_FOR_SUPPLEMENT', config.TRADING_CONFIG.get('SCAN_EXTRA_SYMBOLS_FOR_SUPPLEMENT', 8))
try:
top_n_val = int(top_n_val) if top_n_val is not None else 20
extra = int(extra) if extra is not None else 8
except (TypeError, ValueError):
top_n_val, extra = 20, 8
take_count = min(len(sorted_results), top_n_val + extra)
top_n = sorted_results[:take_count]