From cbf778d560c1401e00acdc864d09a3c7e47f00b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=87=E8=96=87=E5=AE=89?= Date: Sun, 22 Feb 2026 19:30:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(config):=20=E6=9B=B4=E6=96=B0=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E9=85=8D=E7=BD=AE=E7=BB=84=E4=BB=B6=E4=BB=A5=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=9F=BA=E7=A1=80=E7=AD=96=E7=95=A5=E5=92=8C=E5=B8=82?= =?UTF-8?q?=E5=9C=BA=E6=96=B9=E6=A1=88=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 `GlobalConfig` 组件中引入基础策略和市场方案的概念,优化了策略选择的用户界面。新增基础策略和市场方案的状态显示,提升用户体验。同时,更新了相关逻辑以确保策略的灵活性与可视化效果。此改动为用户提供了更清晰的策略选择与使用说明。 --- frontend/src/components/GlobalConfig.jsx | 44 ++++++++++++++++++------ 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/frontend/src/components/GlobalConfig.jsx b/frontend/src/components/GlobalConfig.jsx index 209007a..2f6ff02 100644 --- a/frontend/src/components/GlobalConfig.jsx +++ b/frontend/src/components/GlobalConfig.jsx @@ -986,10 +986,18 @@ const GlobalConfig = () => { } return cur === exp } - let currentPreset = null + // 基础策略:山寨币/备选等(排除 scheme_ 开头的市场方案) + let currentBasePreset = null + // 市场方案:bear/normal/bull/conservative(从 MARKET_SCHEME 直接读取,便于展示自动更新结果) + let currentMarketSchemeDisplay = null + const schemeDisplayMap = { bear: '熊市', normal: '正常', bull: '牛市', conservative: '保守' } + + let scheme = '' if (configs && Object.keys(configs).length > 0 && presets) { try { + // 1. 匹配基础策略(非 scheme 的 preset) for (const [presetKey, preset] of Object.entries(presets)) { + if (presetKey.startsWith('scheme_')) continue const keysToCheck = preset.signatureKeys && preset.signatureKeys.length > 0 ? preset.signatureKeys : Object.keys(preset.configs) @@ -1003,14 +1011,19 @@ const GlobalConfig = () => { if (!valueMatches(cur, exp, key)) { match = false; break } } if (match && keysToCheck.length > 0) { - currentPreset = presetKey + currentBasePreset = presetKey break } } + // 2. 市场方案:从 MARKET_SCHEME 读取 + const schemeVal = configs['MARKET_SCHEME']?.value ?? configs['MARKET_SCHEME'] + scheme = typeof schemeVal === 'string' ? schemeVal.toLowerCase().trim() : '' + currentMarketSchemeDisplay = schemeDisplayMap[scheme] || (scheme ? scheme : null) } catch (e) { console.error('detectCurrentPreset error:', e) } } + const currentSchemePresetKey = scheme && schemeDisplayMap[scheme] ? `scheme_${scheme}` : null const presetUiMeta = { altcoin: { group: 'altcoin', tag: '当前推荐' }, @@ -1198,18 +1211,29 @@ const GlobalConfig = () => {

快速切换方案

-
- 当前方案: - - {currentPreset && presets && presets[currentPreset] ? presets[currentPreset].name : '自定义'} - +
+
+ 基础策略: + + {currentBasePreset && presets && presets[currentBasePreset] ? presets[currentBasePreset].name : '自定义'} + +
+
+ 市场方案: + + {currentMarketSchemeDisplay || '未设置'} + +
使用说明
  • - 日常使用:选「山寨币策略(当前推荐)」即可,已与当前策略(4H 中性关闭、RSI/止盈/止损/盈亏比)对齐。 + 基础策略 + 市场方案:基础策略(山寨币/备选)决定整体风控风格,市场方案(熊市/正常/牛市/保守)在其上叠加止损、仓位、4H 过滤等调整。二者配合使用。 +
  • +
  • + 日常使用:选「山寨币策略(当前推荐)」+ 按行情选市场方案即可。
  • 若几乎不出单:可临时把 AUTO_TRADE_ALLOW_4H_NEUTRAL 打开(会增加 4H 震荡单,信号质量下降)。 @@ -1237,7 +1261,7 @@ const GlobalConfig = () => { return (
{preset.desc}