文件
quantKonwledge/wiki/tradehk/EWO转换检测机制.md
Manus Quant Agent 790c0eaa0a feat: 全面优化迭代所有文档 - 增加数据说明+计算公式+名词解释+内部链接
变更统计:
- 70个文件变更 (39个新增 + 31个修改)
- 新增 6554 行内容

优化内容:
1. 30个核心文档增加附录(数据说明/计算公式/参数表/使用场景/常见误区)
   - 第一批: 量化基础/技术指标/策略/信号/品种/数据流/回测/风控/链上/EWO
   - 第二批: AI/案例复盘/多Agent/Hyperliquid/KOL/期权/RWA/券商/BTC/主流币
   - 第三批: ETH/SOL/BNB_DOGE/XAUT/代币化美股/信号优化/tradehk系统
2. 新增38个名词解释wiki条目(Delta对冲/Gamma/Theta/Vega/IV/VaR/CVaR等)
3. 更新全局术语表索引(79个术语/12大类/知识图谱/学习路径)
4. 新增内部链接体系(wiki式交叉引用)
2026-03-06 05:09:34 -05:00

252 行
11 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# tradehk EWO 转换检测机制
> 返回:[tradehk 文档中心](./README.md)
> 源函数:`evaluateEwoTurnForUser()` — `server/_core/marketEngine.ts` 第 611-700 行
## 概述
EWO 转换检测是 tradehk 最核心的通知功能。当 EWO 指标发生颜色转换(红→绿或绿→红)时,系统会自动检测并通过飞书 Webhook 推送通知。
## 触发条件
EWO 颜色定义:
- **绿色(多头)**EWO 值 >= 0
- **红色(空头)**EWO 值 < 0
转换方向:
- `red_to_green`EWO 由负转正(空头转多头)
- `green_to_red`EWO 由正转负(多头转空头)
## 检测流程(逐步说明)
### 第一步:获取已收线的 K 线
```
取最后两根已收线 K 线的索引:
- lastClosedIndex最新已收线 K 线
- prevClosedIndex倒数第二根已收线 K 线
"已收线"判断candle.time + intervalSeconds <= nowSeconds
```
**为什么只用已收线?**
未收线的 K 线 EWO 值会随价格变化而变化,使用未收线数据会导致大量假通知。tradehk 严格使用已收线确认,确保通知的可靠性。
### 第二步:计算 EWO 值
```
对截至 lastClosedIndex 的所有 K 线计算 EWO 序列
ewoPrev = ewoSeries[prevClosedIndex]
ewoNow = ewoSeries[lastClosedIndex]
```
### 第三步:判断颜色是否转换
```
prevColor = ewoPrev >= 0 ? "green" : "red"
nowColor = ewoNow >= 0 ? "green" : "red"
如果 prevColor === nowColor → 无转换,跳过
```
### 第四步:计算上一阶段持续时间
`prevClosedIndex` 向前遍历,找到上一阶段(同颜色)的起始点:
```
runStartIndex = prevClosedIndex
向前遍历:
if ewoSeries[i] 颜色 === prevColor → runStartIndex = i
else → 停止
runStartTs = candles[runStartIndex].time × 1000
runEndTs = candles[prevClosedIndex].time × 1000 + intervalMs
runCandles = prevClosedIndex - runStartIndex + 1
runDurationMs = max(intervalMs, runEndTs - runStartTs)
```
### 第五步:去重检查
```
dedupeKey = "ewo_turn:{symbol}:{interval}:{direction}:{transitionBucketTs}"
consumeSharedEwoTurnDedupeSlot(dedupeKey, transitionBucketTs)
→ 同一根K线的同方向转换只推送一次
```
**去重的必要性**引擎每30秒轮询一次,同一根K线可能被检测多次,去重确保每次转换只通知一次。
### 第六步:构建并推送通知
通知内容格式(以实际案例为例):
```
标题EWO转换提醒 BTC/10m EWO 红 -> 绿
内容:
触发规则: EWO 红 -> 绿
币对: BTC/10m
转换确认: 已收线确认
转换收线: 2026/03/06 10:10:00 (Asia/Shanghai)
EWO: -29.048617 -> 33.320837
上一阶段: 红(空头)
持续: 4小时30分钟 (27根10mK)
区间: 2026/03/06 05:30:00 ~ 2026/03/06 10:00:00
当前: 绿(多头)
```
## 通知字段说明
| 字段 | 说明 | 示例 |
|------|------|------|
| 触发规则 | 转换方向 | EWO 红 -> 绿 |
| 币对 | 交易对/周期 | BTC/10m |
| 转换确认 | 确认方式 | 已收线确认 |
| 转换收线 | 触发转换的K线收线时间 | 2026/03/06 10:10:00 |
| EWO | 前值 → 当前值 | -29.048617 -> 33.320837 |
| 上一阶段 | 转换前的颜色和含义 | 红(空头) |
| 持续 | 上一阶段持续时间和K线数 | 4小时30分钟 (27根10mK) |
| 区间 | 上一阶段的时间范围 | 05:30 ~ 10:00 |
| 当前 | 转换后的颜色和含义 | 绿(多头) |
## 默认监控规则
系统默认对以下 5 个币对的 10m 周期监控 `red_to_green` 方向:
```typescript
const DEFAULT_EWO_RULE_SYMBOLS = [
"BTCUSDT", "ETHUSDT", "BNBUSDT", "SOLUSDT", "DOGEUSDT"
]
```
用户可在设置中自定义规则(币对、周期、方向)。
## 规则配置结构
```typescript
interface EwoTurnAlertRule {
id: string;
enabled: boolean;
symbol: string; // 如 "BTCUSDT"
interval: TimeInterval; // 如 "10m"
direction: EwoTurnDirection; // "red_to_green" | "green_to_red"
}
```
## 与信号通知的区别
| 对比项 | EWO 转换通知 | 信号通知 |
|--------|-------------|---------|
| 触发条件 | EWO 颜色转换(已收线) | 多指标评分超过阈值 |
| 通知模式 | 始终推送larkWebhookEnabled=true | 需要 larkSignalNotifyMode="all_signals" |
| 频控 | 去重(同转换只推一次) | 频控同币同方向最短N分钟 |
| 信息量 | 包含持续时间、区间等上下文 | 包含评分原因列表 |
| 适用场景 | 趋势转换的早期预警 | 多指标共振的入场信号 |
## 已知问题与优化建议
### 问题:无法区分强弱穿越
当前系统对 BTCEWO 穿越幅度 62.37)和 SOL穿越幅度 0.044)发出完全相同格式的通知,没有质量评级。
**优化方案**:在通知中加入穿越强度评级(强/中/弱),或对微弱穿越添加警告标记。
详见:→ [EWO 阈值过滤完整流程](../../12_信号系统优化/EWO阈值过滤完整落地流程.md)
### 问题:通知无法区分市场环境
EWO 红→绿在大周期空头环境中可能是假反弹,但通知不包含大周期偏向信息。
**优化方案**:在通知中加入 4h 大周期 EWO 方向,帮助用户快速判断信号可靠性。
## 相关文档
- [飞书通知格式规范](./飞书通知格式规范.md) — 通知消息的完整格式
- [信号评分引擎](./信号评分引擎.md) — 信号生成机制
- [大周期偏向判定](./大周期偏向判定.md) — 趋势过滤
- [SOL 专项深化策略](../../12_信号系统优化/各币种专项/SOL专项深化策略.md) — SOL 微弱穿越问题
---
## 附录:数据说明与补充
本附录旨在对 EWO 转换检测机制中的关键概念、数据结构及实际应用进行详细阐述,以帮助用户更深入地理解并有效利用此功能。
### 一、核心指标详解
#### 1. EWO (Elliott Wave Oscillator)
EWO 是衡量市场动量的核心指标,其数值反映了短期趋势与中期趋势之间的关系,常用于辅助判断趋势的强度和潜在的转折点。
- **计算公式**EWO 的计算基于两个不同周期的简单移动平均线 (SMA) 的差值。具体公式如下:
```latex
EWO = SMA(Close, n_{short}) - SMA(Close, n_{long})
```
在常见的配置中,短周期 `n_short` 通常取 5,长周期 `n_long` 通常取 35。tradehk 系统同样遵循此经典设置。
- **数据范围**:理论上无上下界,其数值范围取决于具体币对的价格波动幅度。对于高价币对(如 BTC,EWO 绝对值可能达到数千甚至数万;对于低价币对,其绝对值可能很小。
- **单位**:与币对的计价货币单位相同,例如,对于 BTC/USDT,EWO 的单位是 USDT。
- **精度要求**:为捕捉微小变化,系统计算和展示 EWO 值时,通常保留 6-8 位小数。
- **数据来源**EWO 值是基于从交易所获取的 [K线](../../wiki/名词解释/K线.md) 收盘价 (`Close`) 计算得出的,属于衍生数据。
#### 2. K线 (Candlestick)
K线是承载市场价格信息的基础单元,EWO 的所有计算都源于 K线数据。
- **数据来源**:由中心化交易所(如 Binance, Bybit通过其 API 提供实时的或历史的 K 线数据。
- **数据格式规范**:系统内部处理 K 线数据时,通常采用 JSON 对象数组的形式。每个对象代表一根 K 线,其标准格式如下:
```json
{
"time": 1678096200, // K线开盘时间的 Unix 时间戳 (秒)
"open": 22350.1, // 开盘价 (Number)
"high": 22365.8, // 最高价 (Number)
"low": 22345.0, // 最低价 (Number)
"close": 22360.5, // 收盘价 (Number)
"volume": 150.75 // 成交量 (Number)
}
```
### 二、实际应用场景
EWO 转换信号在量化交易中具有多样化的应用,交易者应结合其他分析工具进行综合判断。
1. **趋势反转早期预警**:这是 EWO 转换最直接的应用。当一个币对在经历长期的下跌EWO 持续为负)后,首次出现 `red_to_green` 的转换,可能预示着下跌动能衰竭,[多头](../../wiki/名词解释/多头.md) 力量开始积聚。交易者可将此信号视为一个潜在的左侧或右侧入场观察点,并结合价格行为(如是否突破关键阻力位)来确认交易。
2. **动量增强与趋势确认**在已有的趋势判断基础上,EWO 转换可以作为强有力的确认信号。例如,某策略基于均线金叉产生了一个[多头](../../wiki/名词解释/多头.md)信号,但交易者希望等待市场动量配合。此时,若稍后出现 `red_to_green` 的 EWO 转换,则证明短期动量已与中期趋势方向一致,从而增强了原始信号的可靠性,可作为加仓或确认入场的依据。
3. **识别市场情绪转变**EWO 的正负状态可以被视为市场情绪的晴雨表。持续的绿色EWO > 0代表市场处于乐观或贪婪状态,而持续的红色EWO < 0则代表悲观或恐惧。EWO 的转换标志着市场主流情绪的根本性转变,有助于交易者调整其整体持仓偏向,例如从[空头](../../wiki/名词解释/空头.md)主导转向多头主导的策略集。
### 三、参数参考表
用户可在 tradehk 系统中自定义 EWO 转换的监控规则。以下是核心配置参数的说明与建议值。
| 参数 | 说明 | 推荐值 | 取值范围 |
| :--- | :--- | :--- | :--- |
| `symbol` | 监控的交易对 | `BTCUSDT`, `ETHUSDT` | 交易所支持的任何有效币对 |
| `interval` | K线的时间周期 | `10m`, `15m` | `1m`, `5m`, `10m`, `15m`, `30m`, `1h`, `4h`, `1d` 等标准周期 |
| `direction` | 监控的转换方向 | `red_to_green` | `red_to_green` (空转多), `green_to_red` (多转空) |
### 四、常见误区与正确理解
1. **误区EWO 转换是精确的买卖点**
**正确理解**EWO 转换是一个**动量信号**,而非精确的时机信号。它标志着动量方向的改变,但价格的最终反转可能滞后或提前。将它作为唯一的开仓依据风险极高,必须结合价格结构、支撑阻力位或其他指标进行综合判断。
2. **误区:所有 EWO 转换信号都值得关注**
**正确理解**信号的“质量”至关重要。在窄幅震荡行情中,EWO 可能频繁在 0 轴附近穿越,产生大量低质量的“毛刺”信号。有效的信号通常伴随着穿越 0 轴时 EWO 数值的显著变化,并且发生在关键的市场结构位置。
3. **误区:忽略大周期背景**
**正确理解**:小周期(如 10m的 EWO `red_to_green` 转换,如果发生在一个大的下跌趋势(如 4h 周期 EWO 仍为深度负值)中,极有可能是一次短暂的反弹而非趋势反转。因此,必须遵循“顺大势、逆小势”的原则,参考 [大周期偏向判定](./大周期偏向判定.md) 来过滤掉逆势的 EWO 转换信号。
4. **误区EWO 数值越大越好**
**正确理解**:极高的 EWO 数值(远离 0 轴通常表示趋势已经进入末期,市场处于超买或超卖状态。此时虽然动能强劲,但也预示着回调或反转的风险正在积聚。因此,EWO 的绝对值大小需要辩证看待,而非简单地认为越大越好。
5. **误区:只看 EWO,不看价格**
**正确理解**:技术分析的核心是价格行为,指标永远是辅助。一个常见的陷阱是出现“指标背离”时盲目交易。例如,价格创出新高而 [EWO](../../wiki/名词解释/EWO.md) 未能创出新高(顶背离),这仅是一个警示信号,不构成直接的做空理由。必须等待价格行为的确认,如跌破关键的上升趋势线或支撑位。