feat(config): Enhance global configuration with auto trade filter defaults

Added support for auto trade filter defaults in the global configuration, ensuring consistency with account settings. Updated the frontend to include descriptions for the auto trade symbol whitelist, improving user understanding of the feature. This enhancement aims to provide better control over automated trading strategies.
This commit is contained in:
薇薇安 2026-04-18 21:51:52 +08:00
parent a08b8d31c6
commit c220a9034a
2 changed files with 13 additions and 1 deletions

View File

@ -826,6 +826,11 @@ async def get_global_configs(
if k not in result: if k not in result:
result[k] = meta result[k] = meta
# 自动交易过滤(含 AUTO_TRADE_SYMBOL_WHITELIST 等):与账号配置 API 一致,未入库也能在全局页展示
for k, meta in AUTO_TRADE_FILTER_DEFAULTS.items():
if k not in result:
result[k] = meta
logger.info(f"返回全局配置项数量: {len(result)}") logger.info(f"返回全局配置项数量: {len(result)}")
return result return result
except Exception as e: except Exception as e:

View File

@ -39,6 +39,7 @@ const KEY_LABELS = {
AUTO_TRADE_ALLOW_RANGING: '允许震荡市自动交易', AUTO_TRADE_ALLOW_RANGING: '允许震荡市自动交易',
AUTO_TRADE_ALLOW_UNKNOWN: '允许未判定市场自动交易', AUTO_TRADE_ALLOW_UNKNOWN: '允许未判定市场自动交易',
AUTO_TRADE_ALLOW_4H_NEUTRAL: '允许 4H 中性时自动交易', AUTO_TRADE_ALLOW_4H_NEUTRAL: '允许 4H 中性时自动交易',
AUTO_TRADE_SYMBOL_WHITELIST: '自动交易白名单(空=不限制)',
RANGING_MARKET_SIGNAL_BOOST: '震荡市额外信号门槛', RANGING_MARKET_SIGNAL_BOOST: '震荡市额外信号门槛',
POSITION_SCALE_FACTOR: '仓位放大系数', POSITION_SCALE_FACTOR: '仓位放大系数',
SYNC_RECOVER_MISSING_POSITIONS: '同步时补建缺失持仓', SYNC_RECOVER_MISSING_POSITIONS: '同步时补建缺失持仓',
@ -110,6 +111,7 @@ const CONFIG_GUIDE_DETAILS = {
AUTO_TRADE_ALLOW_RANGING: '当不强制 only_trending 时,是否允许在震荡市自动交易。默认关闭,避免横盘来回扫损。', AUTO_TRADE_ALLOW_RANGING: '当不强制 only_trending 时,是否允许在震荡市自动交易。默认关闭,避免横盘来回扫损。',
AUTO_TRADE_ALLOW_UNKNOWN: '当 marketRegime=unknownK线不足或未判定是否允许自动交易。默认关闭更稳健。', AUTO_TRADE_ALLOW_UNKNOWN: '当 marketRegime=unknownK线不足或未判定是否允许自动交易。默认关闭更稳健。',
AUTO_TRADE_ALLOW_4H_NEUTRAL: '是否允许4H趋势=neutral时自动交易。关闭可减少震荡扫损开启会显著增加出单需配合更严格的信号门槛。', AUTO_TRADE_ALLOW_4H_NEUTRAL: '是否允许4H趋势=neutral时自动交易。关闭可减少震荡扫损开启会显著增加出单需配合更严格的信号门槛。',
AUTO_TRADE_SYMBOL_WHITELIST: '逗号或空格分隔合约,如 SOLUSDT,LINKUSDT。非空则仅这些合约会「自动下单」其余仍会扫描并可能出现在推荐中。留空表示不启用白名单与历史行为一致。',
RANGING_MARKET_SIGNAL_BOOST: '震荡市额外提高的最小信号门槛。比如 2 表示在基础 MIN_SIGNAL_STRENGTH 上再 +2只保留更强的震荡市信号。', RANGING_MARKET_SIGNAL_BOOST: '震荡市额外提高的最小信号门槛。比如 2 表示在基础 MIN_SIGNAL_STRENGTH 上再 +2只保留更强的震荡市信号。',
LIMIT_ORDER_OFFSET_PCT: '限价入场偏移(%。BUY 挂在当前价下方SELL 挂在当前价上方。值越小越贴近当前价更容易成交值越大更保守。建议0.05%-0.20%。', LIMIT_ORDER_OFFSET_PCT: '限价入场偏移(%。BUY 挂在当前价下方SELL 挂在当前价上方。值越小越贴近当前价更容易成交值越大更保守。建议0.05%-0.20%。',
ENTRY_CONFIRM_TIMEOUT_SEC: '下单后等待成交的确认超时。在纯限价模式下超时未成交会撤单并跳过。建议60-180秒。', ENTRY_CONFIRM_TIMEOUT_SEC: '下单后等待成交的确认超时。在纯限价模式下超时未成交会撤单并跳过。建议60-180秒。',
@ -631,6 +633,7 @@ const GlobalConfig = () => {
AUTO_TRADE_ALLOW_RANGING: { value: false, type: 'boolean', category: 'strategy', description: '当不强制 only_trending 时,是否允许在震荡市自动交易。' }, AUTO_TRADE_ALLOW_RANGING: { value: false, type: 'boolean', category: 'strategy', description: '当不强制 only_trending 时,是否允许在震荡市自动交易。' },
AUTO_TRADE_ALLOW_UNKNOWN: { value: false, type: 'boolean', category: 'strategy', description: '当市场状态未判定时,是否允许自动交易。' }, AUTO_TRADE_ALLOW_UNKNOWN: { value: false, type: 'boolean', category: 'strategy', description: '当市场状态未判定时,是否允许自动交易。' },
AUTO_TRADE_ALLOW_4H_NEUTRAL: { value: false, type: 'boolean', category: 'strategy', description: '是否允许 4H 趋势为中性时自动交易。关闭可减少震荡扫损、提升质量(建议关闭)。' }, AUTO_TRADE_ALLOW_4H_NEUTRAL: { value: false, type: 'boolean', category: 'strategy', description: '是否允许 4H 趋势为中性时自动交易。关闭可减少震荡扫损、提升质量(建议关闭)。' },
AUTO_TRADE_SYMBOL_WHITELIST: { value: '', type: 'string', category: 'strategy', description: '自动交易白名单:非空则仅名单内合约自动下单;空表示不限制。与 MANUAL_BLOCKED 可同时使用。' },
RANGING_MARKET_SIGNAL_BOOST: { value: 2, type: 'number', category: 'strategy', description: '震荡市额外提高的最小信号门槛。' }, RANGING_MARKET_SIGNAL_BOOST: { value: 2, type: 'number', category: 'strategy', description: '震荡市额外提高的最小信号门槛。' },
BETA_FILTER_ENABLED: { value: true, type: 'boolean', category: 'strategy', description: '大盘共振过滤BTC/ETH 下跌时屏蔽多单。' }, BETA_FILTER_ENABLED: { value: true, type: 'boolean', category: 'strategy', description: '大盘共振过滤BTC/ETH 下跌时屏蔽多单。' },
BETA_FILTER_THRESHOLD: { value: -0.005, type: 'number', category: 'strategy', description: '大盘共振阈值(比例,如 -0.005 表示 -0.5%)。' }, BETA_FILTER_THRESHOLD: { value: -0.005, type: 'number', category: 'strategy', description: '大盘共振阈值(比例,如 -0.005 表示 -0.5%)。' },
@ -947,7 +950,11 @@ const GlobalConfig = () => {
type = typeof value === 'boolean' ? 'boolean' : 'number' type = typeof value === 'boolean' ? 'boolean' : 'number'
category = 'strategy' category = 'strategy'
} else if (key.startsWith('AUTO_TRADE_')) { } else if (key.startsWith('AUTO_TRADE_')) {
if (typeof value === 'string') {
type = 'string'
} else {
type = typeof value === 'boolean' ? 'boolean' : 'number' type = typeof value === 'boolean' ? 'boolean' : 'number'
}
category = 'strategy' category = 'strategy'
} else if (key === 'LIMIT_ORDER_OFFSET_PCT') { } else if (key === 'LIMIT_ORDER_OFFSET_PCT') {
type = 'number' type = 'number'