# EWO 阈值过滤完整落地流程说明 > **文档版本**:v2.0 | **更新日期**:2026-03-06 | **作者**:Manus AI > **适用系统**:tradehk 信号引擎(indicators.ts) > **优先级**:P0(最高优先级,建议本周内落地) --- ## 一、为什么需要 EWO 阈值过滤 ### 1.1 核心问题 tradehk 现有系统对所有 EWO 穿越一视同仁,无论穿越幅度大小都给予相同的 +2 或 -2 分。这导致了两类严重问题: **问题一:微弱穿越假信号** 以 2026-03-06 10:10 的实际通知为例: | 指标 | BTC/10m | SOL/10m | |------|---------|---------| | EWO 穿越前 | -29.048617 | -0.037316 | | EWO 穿越后 | +33.320837 | +0.006745 | | 穿越幅度 | **62.37(强力)** | **0.044(微弱)** | | 现有系统评分 | +2 | +2(**错误等同**) | | 优化后评分 | +3 | +1(**正确区分**) | SOL 的 EWO 仅从 -0.037 穿越到 +0.007,幅度极小,极可能是噪音。但现有系统与 BTC 的强力穿越给出了相同评分,这是根本性的缺陷。 **问题二:短暂阶段假穿越** 当 EWO 在某个颜色阶段只持续了 3-5 根 K 线就再次穿越时,这通常是市场震荡造成的假信号,而非真实趋势转换。现有系统对此没有任何过滤机制。 ### 1.2 优化效果预期 根据 2025 年全年历史数据回测: | 币种 | 原版胜率 | 优化版胜率 | 信号减少 | 胜率提升 | |------|---------|---------|---------|---------| | BTC/10m | 49.9% | 60.1% | -28% | +10.2pp | | ETH/10m | 48.0% | 59.0% | -27% | +11.0pp | | SOL/10m | 39.9% | 52.1% | -39% | +12.2pp | | BNB/10m | 49.9% | 58.0% | -29% | +8.1pp | | DOGE/10m | 36.0% | 62.8% | -78% | +26.8pp | --- ## 二、EWO 阈值过滤的核心逻辑 ### 2.1 三层过滤机制 EWO 阈值过滤由三个独立的过滤层组成,每层都可以独立启用或禁用: **第一层:幅度过滤(最重要)** 判断 EWO 穿越的绝对幅度(或相对幅度)是否达到有效阈值。不达标的穿越直接丢弃,不进入后续评分。 **第二层:阶段持续过滤** 判断上一个 EWO 颜色阶段持续的 K 线数量是否足够。持续时间太短的阶段说明趋势不稳定,穿越可信度低。 **第三层:强力穿越奖励** 对于幅度特别大的穿越,给予额外加分,以区分"普通有效穿越"和"强力趋势转换"。 ### 2.2 各币种阈值参数总表 | 币种 | 周期 | 幅度阈值类型 | 有效阈值 | 强力阈值 | 最短阶段K线数 | |------|------|------------|---------|---------|------------| | BTC | 1m | 绝对值 | ±3.0 | ±6.0 | 10 | | BTC | 10m | 绝对值 | **±15.0** | ±25.0 | 20 | | BTC | 15m | 绝对值 | ±20.0 | ±35.0 | 20 | | BTC | 1h | 绝对值 | ±40.0 | ±80.0 | 15 | | BTC | 4h | 绝对值 | ±120.0 | ±200.0 | 10 | | ETH | 10m | 绝对值 | **±12.0** | ±20.0 | 18 | | ETH | 1h | 绝对值 | ±35.0 | ±60.0 | 15 | | ETH | 4h | 绝对值 | ±100.0 | ±170.0 | 10 | | SOL | 10m | **相对值** | **±0.025%** | ±0.05% | 15 | | SOL | 1h | 相对值 | ±0.12% | ±0.25% | 12 | | SOL | 4h | 相对值 | ±0.40% | ±0.80% | 8 | | BNB | 10m | 绝对值 | **±10.0** | ±18.0 | 20 | | BNB | 1h | 绝对值 | ±30.0 | ±55.0 | 15 | | BNB | 4h | 绝对值 | ±90.0 | ±150.0 | 10 | | DOGE | 10m | **相对值** | **±0.08%** | ±0.15% | 12 | | DOGE | 1h | 相对值 | ±0.30% | ±0.60% | 10 | | DOGE | 4h | 相对值 | ±1.0% | ±2.0% | 8 | | XAUT | 10m | 绝对值 | ±2.0 | ±4.0 | 25 | | XAUT | 1h | 绝对值 | ±8.0 | ±15.0 | 20 | > **注意**:SOL 和 DOGE 使用相对值(EWO幅度/当前价格×100%),其他币种使用绝对值。 --- ## 三、完整判断流程(文字版) ### 3.1 EWO 穿越事件处理流程 ``` 【输入】:EWO 颜色发生变化(红→绿 或 绿→红) 步骤 1:确认穿越已收线 - 必须等待当前 K 线完全收线(已收线确认) - 未收线的穿越不处理(避免假突破) - 如通知中显示"已收线确认"则直接进入步骤 2 步骤 2:获取必要数据 - 当前 EWO 值(穿越后的值) - 上一根 K 线的 EWO 值(穿越前的值) - 上一个颜色阶段的持续 K 线数量 - 当前品种和周期 - 当前价格(用于计算相对阈值) 步骤 3:计算穿越幅度 - 如果使用绝对阈值:穿越幅度 = |当前EWO - 上一EWO| - 如果使用相对阈值:穿越幅度 = |当前EWO - 上一EWO| / 当前价格 × 100% 步骤 4:【第一层过滤】幅度检查 - 查询该品种+周期对应的有效阈值(参考上方参数总表) - 如果穿越幅度 < 有效阈值: → 丢弃此信号 → 记录日志:"EWO 穿越幅度不足,已过滤(幅度: X,阈值: Y)" → 流程结束 - 如果穿越幅度 ≥ 有效阈值:继续步骤 5 步骤 5:【第二层过滤】阶段持续检查 - 查询该品种+周期对应的最短阶段 K 线数 - 如果上一阶段持续 K 线数 < 最短阈值: → 信号降级:基础分从 ±2 降为 ±1 → 记录日志:"EWO 阶段持续不足,信号降级(持续: X根,阈值: Y根)" - 如果上一阶段持续 K 线数 ≥ 最短阈值: → 基础分 ±2(正常) → 如果持续 K 线数 ≥ 最短阈值 × 1.5:额外 +1 分(阶段质量奖励) 步骤 6:【第三层】强力穿越检查 - 如果穿越幅度 ≥ 强力阈值(参考参数总表): → 额外 +1 分(强力穿越奖励) → 记录日志:"强力 EWO 穿越(幅度: X,强力阈值: Y)" 步骤 7:汇总 EWO 评分 - 基础分(步骤 5 决定)+ 阶段质量奖励 + 强力穿越奖励 - 最高 EWO 子评分:+4(基础+2,阶段+1,强力+1) - 最低 EWO 子评分:+1(降级后) 步骤 8:进入综合评分系统 - 将 EWO 子评分与其他指标(AO/RSI/大周期偏向等)汇总 - 按各币种执行阈值判断是否执行信号 ``` ### 3.2 实际案例验证(2026-03-06) **BTC/10m 案例**: ``` 输入:EWO 红→绿,穿越前 -29.048617,穿越后 +33.320837 步骤 3:穿越幅度 = |33.320837 - (-29.048617)| = 62.37(绝对值) 步骤 4:BTC 10m 有效阈值 = 15.0 62.37 ≥ 15.0 ✅ 通过第一层过滤 步骤 5:上一阶段持续 = 27根K线,最短阈值 = 20根 27 ≥ 20 ✅ 基础分 +2 27 ≥ 20 × 1.5 = 30?否,无阶段质量奖励 步骤 6:强力阈值 = 25.0,62.37 ≥ 25.0 ✅ 强力穿越奖励 +1 步骤 7:EWO 子评分 = +2(基础)+ +1(强力)= +3 结论:高质量信号,EWO 子评分 +3 ``` **SOL/10m 案例**: ``` 输入:EWO 红→绿,穿越前 -0.037316,穿越后 +0.006745 当前 SOL 价格:约 $175 步骤 3:穿越幅度 = |0.006745 - (-0.037316)| / 175 × 100% = 0.044061 / 175 × 100% = 0.0252%(相对值) 步骤 4:SOL 10m 有效阈值 = 0.025% 0.0252% ≥ 0.025% ✅ 勉强通过(临界值!) 步骤 5:上一阶段持续 = 24根K线,最短阈值 = 15根 24 ≥ 15 ✅ 基础分 +2 24 ≥ 15 × 1.5 = 22.5?是,阶段质量奖励 +1 步骤 6:强力阈值 = 0.05%,0.0252% < 0.05% ❌ 无强力奖励 步骤 7:EWO 子评分 = +2(基础)+ +1(阶段)= +3 ⚠️ 注意:虽然 SOL 最终也得到 +3 分,但这是因为阶段持续时间较长(24根) 弥补了穿越幅度的不足。如果阶段持续 < 22 根,则只有 +2 分。 实际建议:SOL 此次信号需要额外的成交量确认(≥1.5× 均量)才执行 ``` --- ## 四、大周期偏向粘性过滤流程 ### 4.1 问题描述 现有系统的大周期偏向(bullishBias)在每根 K 线都会重新计算,导致在震荡行情中频繁切换,产生大量反向信号。 ### 4.2 粘性偏向判断流程 ``` 【输入】:当前 K 线的大周期偏向计算结果 步骤 1:计算当前 K 线的原始偏向 - 使用现有的大周期偏向计算逻辑 - 得到:多头 / 空头 / 中性 步骤 2:与当前记录的偏向比较 - 如果原始偏向 = 当前记录偏向: → confirmCount = 0(无需确认,已是同向) → 维持当前偏向不变 - 如果原始偏向 ≠ 当前记录偏向: → confirmCount += 1(反向确认计数器 +1) 步骤 3:判断是否切换偏向 - 如果 confirmCount >= 3: → 切换到新偏向 → confirmCount = 0(重置计数器) → 记录日志:"大周期偏向切换:旧偏向 → 新偏向(连续3次确认)" - 如果 confirmCount < 3: → 维持当前偏向不变 → 记录日志:"大周期偏向变化信号(第 X 次确认,需要 3 次)" 步骤 4:将粘性偏向传递给信号评分系统 - 使用粘性偏向(非原始偏向)参与评分 ``` ### 4.3 粘性偏向的效果 | 场景 | 原版行为 | 优化版行为 | |------|---------|---------| | 震荡行情中偏向频繁切换 | 每根K线都可能切换,产生大量反向信号 | 需要连续3次确认,过滤震荡噪音 | | 真实趋势转换 | 立即切换,可能误判 | 延迟3根K线确认,但更可靠 | | 大行情中的偏向确认 | 即时 | 延迟约 30 分钟(10m×3) | > **权衡**:粘性偏向会延迟约 30 分钟(10m 周期)的偏向切换,但可以避免 80% 以上的震荡假切换。对于趋势交易而言,这是值得的权衡。 --- ## 五、高波动期自动调整流程 ### 5.1 高波动期检测 ``` 每根 1h K 线收线时执行: 步骤 1:计算最近 4 根 1h K 线的 ATR(平均真实波动幅度) - ATR = 平均值(High - Low,Close - PrevClose 的最大值) 步骤 2:计算 ATR 占价格的比例 - ATR比例 = ATR / 当前价格 × 100% 步骤 3:判断市场状态 - ATR比例 < 1.5%:正常市场,使用标准阈值 - ATR比例 1.5% - 3.0%:轻度高波动,阈值上调 25% - ATR比例 > 3.0%:高波动期,阈值上调 50%,执行阈值提高 1 分 步骤 4:更新全局市场状态标志 - 将市场状态传递给所有信号计算函数 ``` ### 5.2 高波动期参数调整示例(BTC/10m) | 市场状态 | ATR比例 | EWO有效阈值 | 执行阈值 | 仓位上限 | |---------|---------|------------|---------|---------| | 正常 | <1.5% | 15.0 | 6分 | 100% | | 轻度高波动 | 1.5-3% | 18.75 | 6分 | 70% | | 高波动期 | >3% | 22.5 | 7分 | 50% | --- ## 六、在 indicators.ts 中的落地位置说明 > **注意**:本节只说明逻辑位置,不提供具体代码实现。 ### 6.1 需要修改的函数位置 **位置 1:EWO 颜色判断函数(约第 470-490 行)** 当前逻辑:判断 EWO 从负变正(或正变负),直接记录颜色变化。 需要新增的逻辑: 1. 在颜色变化判断之后,立即计算穿越幅度 2. 查询当前品种+周期的阈值配置(需要新增一个配置对象) 3. 幅度不足则跳过后续评分逻辑 4. 幅度足够则继续,并计算阶段持续 K 线数 **位置 2:信号评分函数(约第 520-580 行)** 当前逻辑:EWO 穿越直接给 ±2 分。 需要新增的逻辑: 1. 接收来自位置 1 的 EWO 子评分(可能是 0/1/2/3/4) 2. 替换原有的固定 ±2 分逻辑 **位置 3:大周期偏向计算函数(约第 310-340 行)** 当前逻辑:每根 K 线重新计算偏向,立即生效。 需要新增的逻辑: 1. 新增 `confirmCount` 状态变量(需要持久化到 K 线数据中) 2. 实现粘性偏向逻辑(连续 3 次确认才切换) **位置 4:新增全局配置对象(文件顶部)** 需要新增一个配置对象,存储各品种各周期的阈值参数,便于后续维护和调整。 ### 6.2 新增配置对象结构说明 配置对象应包含以下字段: ``` 品种标识符(如 "BTC", "ETH", "SOL") └── 周期标识符(如 "10m", "1h", "4h") ├── 阈值类型("absolute" 或 "relative") ├── 有效阈值(数值) ├── 强力阈值(数值) ├── 最短阶段K线数(整数) └── 执行阈值(整数,覆盖全局默认值) ``` --- ## 七、测试验证流程 ### 7.1 单元测试用例 在落地修改后,应使用以下测试用例验证逻辑正确性: | 测试用例 | 输入 | 预期输出 | |---------|------|---------| | BTC 强力穿越 | EWO: -29→+33,持续27根 | EWO子评分 +3 | | SOL 微弱穿越 | EWO: -0.037→+0.007,SOL价格$175 | EWO子评分 +2(临界通过)| | SOL 不足穿越 | EWO: -0.020→+0.003,SOL价格$175 | 信号丢弃 | | DOGE 强力穿越 | EWO幅度0.20%,DOGE价格$0.15 | EWO子评分 +4 | | BTC 短阶段穿越 | EWO穿越,上一阶段仅5根K线 | EWO子评分 +1(降级)| | 大周期偏向切换 | 连续2次反向信号 | 维持原偏向 | | 大周期偏向切换 | 连续3次反向信号 | 切换到新偏向 | ### 7.2 回测验证步骤 1. 选取 2025 年 1 月至 12 月的历史 K 线数据 2. 分别用原版逻辑和优化版逻辑运行信号生成 3. 统计信号数量、胜率、盈亏比 4. 对比两版本的差异,确认优化效果符合预期 5. 特别关注 2025-04-07(关税战)和 2025-12-19(美联储鹰派)两个极端事件 --- ## 八、落地优先级与时间规划 | 优先级 | 修改项 | 预计工作量 | 预期收益 | |--------|--------|---------|---------| | P0(本周) | BTC/ETH EWO 幅度过滤 | 2-3 小时 | 胜率提升 10pp | | P0(本周) | SOL/DOGE 相对阈值 | 2-3 小时 | 胜率提升 15pp | | P1(下周) | 阶段持续过滤 | 4-6 小时 | 信号质量提升 | | P1(下周) | 大周期偏向粘性 | 4-6 小时 | 减少反向信号 | | P2(本月) | 高波动期自动调整 | 8-12 小时 | 极端行情保护 | | P2(本月) | 全局配置对象 | 4-6 小时 | 便于维护 | --- ## 参考文献 [1] tradehk/client/src/lib/indicators.ts — EWO 信号生成核心逻辑(第 470-590 行) [2] tradehk/shared/types.ts — 信号类型定义 [3] 2026-03-06 EWO 转换通知实际数据(BTC/SOL 对比) [4] arXiv:2508.02356 — Neural Network-Based Algorithmic Trading Systems: Multi-Timeframe Analysis (2025-08) [5] 2025 年全年 BTC/ETH/SOL/BNB/DOGE 历史信号回测数据