WaveTrend Oscillator

By | 2026-02-22

波浪趨勢震盪指標 (WaveTrend Oscillator, WT) 是近年在 TradingView 等新世代社群中被奉為「抓轉折神器」的指標,最初由開發者 LazyBear 發表後迅速爆紅。

WT 完美解決了傳統 KD(隨機指標)與 RSI 最讓散戶痛苦的問題:鋸齒狀的劇烈跳動與頻繁的假交叉。

以下為您深度拆解 WT 的數學意義、實戰應用,以及 XScript 腳本。

1. 核心數學意義與邏輯:極致平滑的 CCI 變體

WT 的底層邏輯其實是源自於商品通道指數 (Commodity Channel Index, CCI),但它加上了非常精巧的雙重指數平滑 (Double EMA Smoothing) 機制,硬生生將原本暴躁的數據,馴化成如海浪般起伏的平滑曲線。

運算步驟拆解:

  1. 典型價格 (Typical Price): 不單看收盤價,而是取 (最高價 + 最低價 + 收盤價) / 3,這能更真實地反映當日多空交戰的平均成本。
  2. 計算絕對偏差的 EMA: 先算出典型價格的指數移動平均 (EMA),再計算價格偏離這條均線的「絕對距離」,並對這個距離再做一次 EMA。這等於量化了「波動的厚度」。
  3. 常態化 (Normalization): 將價格的偏離程度除以「波動厚度 x 0.015」(這是源自 CCI 的經典常數,能將 70% 到 80% 的數值收斂在 +100 到 -100 之間)。
  4. 終極平滑: 對上述算出的數值再做一次長週期的 EMA 得到主線 WT1,接著對 WT1 做 4 週期的簡單均線得到訊號線 WT2

 

// 指標名稱:WaveTrend Oscillator (WT 波浪趨勢指標)
// 理論基礎:LazyBear
// -----------------------------------------------------------
Input:
ChannelLen(10, "通道計算週期(n1)"),
AverageLen(21, "平滑計算週期(n2)");

Variable:
ap(0), esa(0), d(0), ci(0),
wt1(0), wt2(0);

// 1. 計算典型價格 (Typical Price)
ap = (High + Low + Close) / 3;

// 2. 計算典型價格的指數移動平均 (EMA)
esa = XAverage(ap, ChannelLen);

// 3. 計算絕對偏差的 EMA (量化波動厚度)
d = XAverage(AbsValue(ap - esa), ChannelLen);

// 4. 計算通道指數 (常規化處理)
// 乘以 0.015 是為了將絕大多數數值壓縮到 -100 ~ +100 之間
if d > 0 then
ci = (ap - esa) / (0.015 * d)
else
ci = 0;

// 5. 計算 WT1 (主線) 與 WT2 (訊號線)
wt1 = XAverage(ci, AverageLen);
wt2 = Average(wt1, 4); // 訊號線通常固定取 4 週期 SMA

// 6. 繪圖輸出
Plot1(wt1, "WT1 (主線)");
Plot2(wt2, "WT2 (訊號線)");

// 繪製極值參考線
Plot3(60, "超買線");
Plot4(53, "警戒天花板"); // 輔助觀察線
Plot5(-60, "超賣線");
Plot6(-53, "警戒地板"); // 輔助觀察線
Plot7(0, "多空分水嶺");

 

 

2. 實戰應用指南 (PM 產品視角)

WT 的曲線異常圓滑,這在產品設計與使用者體驗(UX)上有著極大的優勢。用戶不會再因為盤中的小波動而感到焦慮。

  • 精準的深水區交叉 (極值反轉):
    WT 的超買超賣線通常設定在 +60-60(更極端為 +80/-80)。

    • 買進: 當 WT1 與 WT2 雙雙跌破 -60,隨後 WT1 在深水區由下往上穿過 WT2(黃金交叉),這通常是極佳的波段起漲點。
    • 賣出: 當兩線進入 +60 以上的高空區,並發生死亡交叉,代表波段推升力道耗盡。
  • 視覺化頂底背離 (Divergence):
    這是 WT 最強大的功能。因為曲線沒有雜訊,用戶可以非常輕易地用肉眼看出:股價創了新低,但 WT 的交叉點卻比上一次的交叉點還要高(底背離)。