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:
parent
a08b8d31c6
commit
c220a9034a
|
|
@ -825,6 +825,11 @@ async def get_global_configs(
|
||||||
for k, meta in ADDITIONAL_STRATEGY_DEFAULTS.items():
|
for k, meta in ADDITIONAL_STRATEGY_DEFAULTS.items():
|
||||||
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
|
||||||
|
|
|
||||||
|
|
@ -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=unknown(K线不足或未判定)时,是否允许自动交易。默认关闭更稳健。',
|
AUTO_TRADE_ALLOW_UNKNOWN: '当 marketRegime=unknown(K线不足或未判定)时,是否允许自动交易。默认关闭更稳健。',
|
||||||
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_')) {
|
||||||
type = typeof value === 'boolean' ? 'boolean' : 'number'
|
if (typeof value === 'string') {
|
||||||
|
type = 'string'
|
||||||
|
} else {
|
||||||
|
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'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user