# 多指标共振信号引擎 > 本文档详细描述基于 tradehk 项目的多指标共振交易信号系统的设计原理、评分机制和实现方案。该系统通过多个技术指标的协同验证,显著提高信号质量,降低假信号率。 --- ## 一、系统架构概览 ``` 数据输入层 ↓ K线数据(OHLCV)→ 指标计算引擎 ↓ 核心信号层(始终启用) ├── MACD 金叉/死叉 ├── AO 穿越零轴 └── MA 多头/空头排列 ↓ 可选信号层(可配置) ├── RSI 超买超卖 ├── KDJ 金叉死叉 ├── Stoch 超买超卖 ├── 布林带触轨 ├── SuperTrend 反转 └── DMI/ADX 趋势强度 ↓ 评分汇总层 ├── 多头评分(bullishCount) └── 空头评分(bearishCount) ↓ 信号输出层 ├── 信号类型:BUY / SELL / NEUTRAL └── 信号强度:STRONG / MODERATE / WEAK ↓ 大周期过滤层(可选) └── 4h/12h EWO + MACD + AO 趋势偏向 ``` --- ## 二、核心信号评分规则 ### 2.1 MACD 信号(核心,始终启用) | 信号 | 条件 | 多头分 | 空头分 | |------|------|--------|--------| | MACD 金叉 | MACD 线上穿信号线 | +2 | - | | MACD 死叉 | MACD 线下穿信号线 | - | +2 | | 柱状图扩大(正) | 柱 > 0 且 > 前值 | +1 | - | | 柱状图扩大(负) | 柱 < 0 且 < 前值 | - | +1 | ### 2.2 AO 信号(核心,始终启用) | 信号 | 条件 | 多头分 | 空头分 | |------|------|--------|--------| | AO 上穿零轴 | AO 由负转正 | +1 | - | | AO 下穿零轴 | AO 由正转负 | - | +1 | ### 2.3 MA 信号(核心,始终启用) | 信号 | 条件 | 多头分 | 空头分 | |------|------|--------|--------| | 多头排列 | 价格 > MA10 > MA100 | +1 | - | | 空头排列 | 价格 < MA10 < MA100 | - | +1 | --- ## 三、可选信号评分规则 ### 3.1 RSI 信号 | 信号 | 条件 | 多头分 | 空头分 | |------|------|--------|--------| | RSI 超卖 | RSI < 30 | +1 | - | | RSI 超买 | RSI > 70 | - | +1 | | RSI 从超卖回升 | RSI 穿越 30 向上 | +1 | - | | RSI 从超买回落 | RSI 穿越 70 向下 | - | +1 | ### 3.2 KDJ 信号 | 信号 | 条件 | 多头分 | 空头分 | |------|------|--------|--------| | 低位金叉 | K 上穿 D 且 K < 30 | +2 | - | | 普通金叉 | K 上穿 D | +1 | - | | 高位死叉 | K 下穿 D 且 K > 70 | - | +2 | | 普通死叉 | K 下穿 D | - | +1 | ### 3.3 Stoch 信号 | 信号 | 条件 | 多头分 | 空头分 | |------|------|--------|--------| | 超卖区 | K < 20 且 D < 20 | +1 | - | | 超买区 | K > 80 且 D > 80 | - | +1 | ### 3.4 布林带信号 | 信号 | 条件 | 多头分 | 空头分 | |------|------|--------|--------| | 触及下轨 | 价格 ≤ 下轨 | +1 | - | | 触及上轨 | 价格 ≥ 上轨 | - | +1 | | 极度收窄 | 带宽 < 2% | 警告(不计分) | 警告(不计分) | ### 3.5 SuperTrend 信号 | 信号 | 条件 | 多头分 | 空头分 | |------|------|--------|--------| | 趋势反转看多 | 方向 -1 → +1 | +2 | - | | 趋势反转看空 | 方向 +1 → -1 | - | +2 | | 多头趋势中 | 方向 = +1 | +1 | - | | 空头趋势中 | 方向 = -1 | - | +1 | ### 3.6 DMI/ADX 信号(仅在 ADX > 25 时有效) | 信号 | 条件 | 多头分 | 空头分 | |------|------|--------|--------| | 强趋势金叉 | +DI 上穿 -DI | +2 | - | | 强趋势死叉 | +DI 下穿 -DI | - | +2 | | 多头趋势 | +DI > -DI | +1 | - | | 空头趋势 | -DI > +DI | - | +1 | --- ## 四、信号强度判定 ### 4.1 动态阈值计算 ```python # 激活的可选指标数量 activeOptionalCount = sum([ signalUseRsi, signalUseKdj, signalUseStoch, signalUseBollinger, signalUseSuperTrend, signalUseDmi ]) # 动态阈值 strongThreshold = 5 + floor(activeOptionalCount * 0.5) moderateThreshold = 3 + floor(activeOptionalCount * 0.3) ``` ### 4.2 信号强度判定逻辑 ``` if bullishCount > bearishCount: type = BUY if bullishCount >= strongThreshold: strength = STRONG elif bullishCount >= moderateThreshold: strength = MODERATE else: strength = WEAK elif bearishCount > bullishCount: type = SELL if bearishCount >= strongThreshold: strength = STRONG elif bearishCount >= moderateThreshold: strength = MODERATE else: strength = WEAK else: return None # 无信号 ``` --- ## 五、大周期趋势过滤 ### 5.1 偏向判断规则 基于 4h 或 12h 周期的 EWO + MACD + AO 综合评分: ``` 评分规则: EWO > 0 → 多头 +2 分(最重要指标,权重最高) EWO < 0 → 空头 +2 分 MACD > 信号线 → 多头 +1 分 MACD 柱 > 0 → 多头 +1 分 AO > 0 → 多头 +1 分 判断: 多头总分 ≥ 4 → BULLISH 空头总分 ≥ 4 → BEARISH 其他 → NEUTRAL ``` ### 5.2 过滤逻辑 当大周期偏向过滤启用时: - 大周期 BEARISH → 只接受 SELL 信号,过滤 BUY 信号 - 大周期 BULLISH → 只接受 BUY 信号,过滤 SELL 信号 - 大周期 NEUTRAL → 接受所有信号 --- ## 六、信号系统优化建议 ### 6.1 针对不同市场的参数调整 **加密货币主流币(BTC、ETH)**: - 建议启用:RSI、KDJ、SuperTrend、DMI - MACD 参数:(10, 20, 10)(tradehk 默认) - 时间周期:15m 或 1h 信号,4h 大周期过滤 **加密货币山寨币(波动性更大)**: - 建议启用:RSI、布林带、SuperTrend - RSI 阈值调整:超买 80,超卖 20 - 时间周期:1h 或 4h 信号,12h 大周期过滤 **XAUT 黄金代币**: - 建议启用:RSI、布林带、DMI - 参数更保守:RSI(21),布林带(20, 2.5) - 时间周期:4h 或日线信号 **代币化美股(AAPL、TSLA 等)**: - 注意:仅在加密货币交易所开放时段有效 - 建议启用:MACD、RSI、布林带 - 时间周期:与美股交易时段对齐 ### 6.2 信号质量提升技巧 **多时间框架确认**: - 日线/4h 确定大方向 - 1h/15m 寻找精确入场点 - 5m/1m 执行入场 **成交量确认**: - 买入信号 + 成交量放大 → 信号可靠性提升 - 买入信号 + 成交量收缩 → 等待放量确认 **价格结构确认**: - 支撑位附近的买入信号更可靠 - 阻力位附近的卖出信号更可靠 - 关键整数关口(如 100,000 USDT)附近信号需谨慎 --- ## 七、信号系统回测结果参考 以下为 tradehk 信号系统在 BTC/USDT 15m 周期的历史表现(仅供参考,非投资建议): | 配置 | 时间段 | 胜率 | 盈亏比 | 夏普比率 | |------|--------|------|--------|----------| | 仅核心信号 | 2023-2024 | ~52% | 1.3:1 | 0.8 | | 核心+RSI+KDJ | 2023-2024 | ~58% | 1.5:1 | 1.2 | | 全部指标+大周期过滤 | 2023-2024 | ~63% | 1.8:1 | 1.6 | > **注意**:以上数据为示例,实际表现因市场环境、参数设置和执行质量而异。过去表现不代表未来收益。 --- ## 参考资料 - tradehk 项目源码:`client/src/lib/indicators.ts` - tradehk 项目类型定义:`client/src/lib/types.ts` --- ## 附录:数据说明与补充 本附录旨在对多指标共振信号引擎中涉及的关键指标、参数及应用提供更详尽的说明,以帮助使用者更深刻地理解系统原理并进行有效配置。 ### 一、核心指标数据详解 #### 1.1 MACD (异同移动平均线) MACD 是一个核心的趋势跟踪动量指标,通过计算两条不同周期的指数移动平均线 (EMA) 的差离值 (DIF) 来反映价格动能的变化。 - **计算公式**: ```latex DIF = EMA(Close, N_{short}) - EMA(Close, N_{long}) DEA = EMA(DIF, N_{mid}) MACD_{bar} = (DIF - DEA) \times 2 ``` - **数据说明**: | 属性 | 说明 | |---|---| | 数据范围 | 理论上无界,随标的价格波动而变化 | | 单位 | 与标的资产的计价单位一致 (如 USDT) | | 精度要求 | 建议至少保留 4-6 位小数,以捕捉微小变化 | | 数据来源 | 基于输入的 [K线](../../wiki/名词解释/K线.md) (OHLCV) 数据计算得出 | - **数据格式规范**: 指标计算结果通常以 JSON 对象数组的形式提供,每个对象代表一个时间点的数据。 ```json [ { "timestamp": 1672531200000, "dif": 120.55, "dea": 110.23, "macd_bar": 20.64 } ] ``` #### 1.2 AO (动量震荡指标) AO 指标通过比较短期动量和长期动量,衡量市场的动能,常用于判断趋势的潜在转折点。 - **计算公式**: ```latex Median\ Price = \frac{High + Low}{2} AO = SMA(Median\ Price, 5) - SMA(Median\ Price, 34) ``` - **数据说明**: | 属性 | 说明 | |---|---| | 数据范围 | 理论上无界,正负值表示多空动能 | | 单位 | 与标的资产的计价单位一致 (如 USDT) | | 精度要求 | 建议保留 4-6 位小数 | | 数据来源 | 基于 K 线数据计算 | #### 1.3 MA (移动平均线) MA 是技术分析的基础,用于平滑价格数据以识别趋势方向。本引擎采用的是简单移动平均线 (SMA)。 - **计算公式**: ```latex SMA_{N} = \frac{1}{N} \sum_{i=1}^{N} Price_{i} ``` - **数据说明**: | 属性 | 说明 | |---|---| | 数据范围 | 与标的价格范围基本一致 | | 单位 | 与标的资产的计价单位一致 (如 USDT) | | 精度要求 | 建议保留 2-4 位小数 | | 数据来源 | 基于 K 线收盘价 (Close) 计算 | ### 二、可选指标数据详解 #### 2.1 RSI (相对强弱指数) RSI 是一个动量震荡指标,用于衡量价格变动的速度和幅度,常用于判断[超买超卖](../../wiki/名词解释/超买超卖.md)状态。 - **计算公式**: ```latex RS = \frac{Average\ Gain_{N}}{Average\ Loss_{N}} RSI = 100 - \frac{100}{1 + RS} ``` - **数据说明**: | 属性 | 说明 | |---|---| | 数据范围 | 0 到 100 | | 单位 | 无 | | 精度要求 | 建议保留 2 位小数 | | 数据来源 | 基于 K 线收盘价计算 | #### 2.2 KDJ (随机指标) KDJ 指标通过计算特定周期内出现过的最高价、最低价与收盘价之间的关系,来反映价格的动能和超买超卖现象。 - **计算公式**: ```latex RSV_{N} = \frac{Close - L_{N}}{H_{N} - L_{N}} \times 100 K = SMA(RSV, M_1) D = SMA(K, M_2) J = 3K - 2D ``` - **数据说明**: | 属性 | 说明 | |---|---| | 数据范围 | K 和 D 值在 0-100 之间,J 值可能超出此范围 | | 单位 | 无 | | 精度要求 | 建议保留 2 位小数 | | 数据来源 | 基于 K 线高、低、收盘价计算 | ### 三、核心应用场景 1. **趋势跟踪策略 (Trend Following)**: 在大周期(如 4h/12h)过滤开启且偏向为 `BULLISH` 的情况下,当 1h 周期出现 `BUY` 信号且强度为 `STRONG` 时,可以认为是一个顺应大趋势的可靠入场点。此场景下,[MACD](../../wiki/名词解释/MACD.md) 的金叉和 MA 的多头排列是关键的确认信号。 2. **震荡市高抛低吸 (Range Trading)**: 在市场处于横盘震荡,大周期偏向为 `NEUTRAL` 时,可以重点关注可选信号层中的 `RSI` 和 `Stoch`。当价格接近前期支撑位,同时 RSI 进入超卖区 (<30) 并形成 `BUY` 信号时,可视为一个潜在的短线买入机会。反之,在阻力位附近出现 `SELL` 信号则为卖出机会。 3. **突破确认策略 (Breakout Confirmation)**: 当价格试图突破一个重要的[阻力位](../../wiki/名词解释/阻力位.md)时,单一的突破可能存在“假突破”风险。此时,如果突破行为伴随着一个由多指标共振产生的 `STRONG BUY` 信号(例如,`bullishCount` 显著高于 `strongThreshold`),并且成交量放大,那么突破的有效性将大大增强。`SuperTrend` 指标的反转信号在此场景中尤其有价值。 ### 四、系统参数参考表 下表整理了信号引擎中各指标的可配置参数,并提供了针对不同市场风格的推荐值。 | 参数 | 关联指标 | 推荐值 (通用) | 取值范围 (建议) | 说明 | |---|---|---|---|---| | `short` | MACD | 12 | 5 - 20 | 短周期 EMA | | `long` | MACD | 26 | 20 - 50 | 长周期 EMA | | `mid` | MACD | 9 | 7 - 14 | 信号线 (DEA) 周期 | | `period` | RSI | 14 | 7 - 21 | RSI 计算周期 | | `oversold` | RSI | 30 | 20 - 40 | 超卖阈值 | | `overbought` | RSI | 70 | 60 - 80 | 超买阈值 | | `n` | KDJ/Stoch | 14 | 9 - 21 | 计算周期 | | `m1` | KDJ | 3 | 2 - 5 | K 值平滑周期 | | `m2` | KDJ | 3 | 2 - 5 | D 值平滑周期 | | `period` | 布林带 | 20 | 15 - 30 | 移动平均线周期 | | `stdDev` | 布林带 | 2 | 1.5 - 3.0 | 标准差倍数 | | `factor` | SuperTrend | 3 | 2 - 5 | ATR 乘数 | | `atrPeriod` | SuperTrend | 10 | 7 - 14 | ATR 计算周期 | | `period` | DMI/ADX | 14 | 10 - 20 | DMI/ADX 计算周期 | | `adxThreshold` | DMI/ADX | 25 | 20 - 30 | ADX 趋势强度有效阈值 | ### 五、常见误区与正确理解 1. **误区:信号越多越好**。认为启用所有可选指标能得到最准确的信号。**正确理解**:过多的指标可能导致信号冗余甚至相互冲突,并且会使系统对特定市场产生[过拟合](../../wiki/名词解释/过拟合.md)。应根据资产特性和市场环境,选择 2-4 个相关性较低的指标进行组合。 2. **误区:`STRONG` 信号等于 100% 成功率**。将信号强度直接等同于未来的盈利能力。**正确理解**:信号强度仅代表当前技术形态符合多项指标的看多/看空标准,是一种概率优势的体现,而非确定性预测。任何交易信号都必须结合严格的[风险管理](../../wiki/名词解释/风险管理.md)和仓位控制。 3. **误区:忽略大周期趋势**。只关注当前执行周期(如 15m)的信号,而忽略了更高时间框架(如 4h/日线)的宏观趋势。**正确理解**:“顺势而为”是交易的基本原则。大周期趋势过滤功能是系统的核心优势之一,在趋势性行情中,顺应大方向的信号胜率和盈亏比通常更高。 4. **误区:参数一成不变**。找到一组“万能”参数后,在所有市场和时间周期上都使用它。**正确理解**:不同市场(如加密货币、黄金、股票)的波动性和趋势特性差异巨大,不同时间周期也反映了不同的交易节奏。必须针对具体交易对和策略周期对参数进行回测和优化。 5. **误区:只看信号,不看价格行为**。完全依赖引擎输出的 `BUY`/`SELL` 信号,而忽略了K线形态、支撑阻力位等经典[价格行为](../../wiki/名词解释/价格行为.md)分析。**正确理解**:信号系统应作为决策辅助工具,而非完全替代交易员的分析。将信号与关键价格位置(如前期高低点、重要均线)结合判断,可以有效过滤掉许多位置不佳的信号,提升交易质量。