1
This commit is contained in:
parent
a1b54d658f
commit
965c1651cd
|
|
@ -213,6 +213,7 @@ DEFAULT_TRADING_CONFIG = {
|
|||
'ATR_MULTIPLIER_MIN': 0.5, # 动态ATR倍数最小值
|
||||
'ATR_MULTIPLIER_MAX': 0.5, # 动态ATR倍数最大值
|
||||
'SCAN_INTERVAL': 900, # 扫描间隔15分钟(900秒),快速验证模式:提高扫描频率以增加交易机会
|
||||
'SCAN_SYMBOL_ANALYSIS_TIMEOUT_SEC': 18, # 单个交易对「详细分析」超时(秒),超时则跳过该交易对;网络慢可调大(如 25)
|
||||
'KLINE_INTERVAL': '1h',
|
||||
'PRIMARY_INTERVAL': '4h', # 主周期4小时,过滤噪音
|
||||
'CONFIRM_INTERVAL': '1d', # 确认周期日线,看大趋势
|
||||
|
|
|
|||
|
|
@ -116,16 +116,21 @@ class MarketScanner:
|
|||
# - 由于中间数据(K线、技术指标)已经缓存,实际API请求会大大减少
|
||||
semaphore = asyncio.Semaphore(3) # 最多5个并发请求(单用户建议5,多用户建议3)
|
||||
|
||||
analysis_timeout = float(cfg.get('SCAN_SYMBOL_ANALYSIS_TIMEOUT_SEC', 18) or 18)
|
||||
if analysis_timeout < 5:
|
||||
analysis_timeout = 5.0
|
||||
elif analysis_timeout > 60:
|
||||
analysis_timeout = 60.0
|
||||
|
||||
async def get_symbol_change_with_limit(symbol):
|
||||
async with semaphore:
|
||||
try:
|
||||
# 添加超时控制,确保单个交易对的分析不会无限期阻塞
|
||||
return await asyncio.wait_for(
|
||||
self._get_symbol_change(symbol, all_tickers.get(symbol)),
|
||||
timeout=10.0 # 单个交易对分析超时10秒
|
||||
timeout=analysis_timeout
|
||||
)
|
||||
except asyncio.TimeoutError:
|
||||
logger.warning(f"{symbol} 分析超时(10秒),跳过")
|
||||
logger.warning(f"{symbol} 分析超时({analysis_timeout:.0f}秒),跳过")
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.debug(f"{symbol} 分析出错: {e}")
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user