feat(config, strategy): 更新多账号错峰配置与日志记录逻辑
在配置文件中将多账号错峰开关 `SCAN_STAGGER_BY_ACCOUNT` 的默认值调整为 False,并在策略中增加了对该配置的注释说明。同时,优化了4H趋势中性信号的日志记录逻辑,确保在关闭中性信号时仅记录 DEBUG 信息,提升了日志的可读性与策略的灵活性。此改动旨在增强系统的可用性与用户友好性。
This commit is contained in:
parent
8bd7bae718
commit
6a9fcddfdc
|
|
@ -223,7 +223,7 @@ DEFAULT_TRADING_CONFIG = {
|
|||
'SCAN_PREWARM_CONCURRENT': 5, # 预热阶段同时预取多少个交易对的 K 线(避免并发过高)
|
||||
# 多账号/低配服务器(如 2 CPU 4G):降低并发与错峰扫描,避免 CPU 打满
|
||||
'SCAN_CONCURRENT_SYMBOLS': 2, # 扫描时同时分析多少个交易对(2 CPU 4G 多账号建议 2,单账号可 3~5)
|
||||
'SCAN_STAGGER_BY_ACCOUNT': True, # 多账号时错峰首次扫描,避免多进程同时扫
|
||||
'SCAN_STAGGER_BY_ACCOUNT': False, # 多账号错峰开关:单账号可关闭;多账号同时跑时改为 True 避免同时扫
|
||||
'SCAN_STAGGER_RANDOM': True, # True=随机延迟(更分散),False=按 account_id 固定步长延迟
|
||||
'SCAN_STAGGER_MIN_SEC': 10, # 随机延迟下限(秒)
|
||||
'SCAN_STAGGER_MAX_SEC': 120, # 随机延迟上限(秒)
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ class TradingStrategy:
|
|||
# 多账号错峰:避免多进程同时扫描导致 CPU 打满(2 CPU 4G 等低配服务器)
|
||||
import os
|
||||
import random
|
||||
stagger_enabled = config.TRADING_CONFIG.get('SCAN_STAGGER_BY_ACCOUNT', False)
|
||||
stagger_enabled = config.TRADING_CONFIG.get('SCAN_STAGGER_BY_ACCOUNT', False) # 全局开关:单账号关、多账号开
|
||||
stagger_random = config.TRADING_CONFIG.get('SCAN_STAGGER_RANDOM', True)
|
||||
account_id = int(os.getenv('ATS_ACCOUNT_ID') or os.getenv('ACCOUNT_ID') or 1)
|
||||
if stagger_enabled:
|
||||
|
|
@ -583,8 +583,12 @@ class TradingStrategy:
|
|||
# 4H趋势向下,只允许做空信号
|
||||
logger.debug(f"{symbol} 4H趋势向下,只允许做空信号")
|
||||
elif trend_4h == 'neutral':
|
||||
# 4H趋势中性,记录警告
|
||||
logger.warning(f"{symbol} 4H趋势中性,信号质量可能降低")
|
||||
# 4H趋势中性:若已关闭「允许4H中性」则仅 DEBUG,避免刷屏;若开启则 WARNING 提示信号质量可能降低
|
||||
allow_neutral = bool(config.TRADING_CONFIG.get("AUTO_TRADE_ALLOW_4H_NEUTRAL", False))
|
||||
if allow_neutral:
|
||||
logger.warning(f"{symbol} 4H趋势中性,信号质量可能降低")
|
||||
else:
|
||||
logger.debug(f"{symbol} 4H趋势中性(已关闭4H中性开单,仅记录)")
|
||||
|
||||
# 简化策略:只做趋势跟踪,移除均值回归策略(避免信号冲突)
|
||||
# 策略权重配置(根据文档建议)
|
||||
|
|
@ -963,8 +967,8 @@ class TradingStrategy:
|
|||
"""
|
||||
定期同步币安持仓状态(独立任务,不依赖市场扫描)
|
||||
"""
|
||||
sync_interval = config.TRADING_CONFIG.get('POSITION_SYNC_INTERVAL', 300) # 默认5分钟
|
||||
logger.info(f"定期持仓同步任务启动,同步间隔: {sync_interval}秒")
|
||||
sync_interval = int(config.TRADING_CONFIG.get('POSITION_SYNC_INTERVAL', 60) or 60)
|
||||
logger.info(f"定期持仓同步任务启动,同步间隔: {sync_interval}秒(来自 POSITION_SYNC_INTERVAL)")
|
||||
|
||||
while self.running:
|
||||
try:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user