Excel 中的指數移動平均線 (EMA) 是使用遞迴公式計算的,該公式會將每個新價格與前一個 EMA 混合,並以平滑因子 k = 2 ÷ (N + 1) 進行縮放。開頭的句子給出了公式;本文的其餘部分將說明如何在試算表中佈局、每個儲存格應包含什麼內容,以及如何使用指數計算機驗證底層的衰減權重。EMA 比簡單移動平均線反應更快,因為其權重呈幾何衰減,而不是在整個窗口中等量分佈。當天的價格權重為 k,前一天的權重為 k(1 − k),而 t 個週期前的價格權重為 k(1 − k)^t。該指數會隨著時間往回推算每一步而增加一,這正是指數計算機所擅長的計算。一旦理解了遞迴,Excel 的設定就是機械式的:錨定乘數儲存格、植入第一個 EMA,然後將單一公式向下拖曳。本指南的其餘部分將逐步說明欄位佈局、公式、常見陷阱,以及在週期變化時 Exponent Calculator 在抽樣檢查衰減權重方面所扮演的角色。

how to calculate exponential moving average in excel
how to calculate exponential moving average in excel

EMA 公式如何使用指數

指數加權移動平均線是遞迴的:每個新的 EMA 值都會將當天的價格與前一天的 EMA 混合,並以乘數 k 進行縮放。標準形式為:

EMA_today = (Close_today − EMA_yesterday) × k + EMA_yesterday

乘數 k(有時稱為平滑因子或加權係數)的計算公式為 k = 2 ÷ (N + 1),其中 N 是回顧週期。「指數」一詞源自於每個歷史權重如何呈幾何衰減。當天的價格權重為 k,前一天的權重為 k(1 − k),前一天的權重為 k(1 − k)²,依此類推。指數會隨著時間往回推算每一步而增加一,這正是指數計算機所產生的結果:將底數提升為某個冪次。

實際上,只要公式佈局正確,Excel 會自動處理這種遞迴,但底層的衰減權重、自訂 N 的乘數以及較舊觀察值的貢獻仍需偶爾進行檢查。指數計算機 會在您輸入時即時返回 base^exponent 的結果,因此 (1 − k)^t 變成單次查詢,而非手動連乘運算。它能妥善處理小數和倒數步驟,這正是 EMA 衰減因子驗證所需要的。

EMA 組成元件一覽

元件公式功能說明
EMA 值(Close − EMA_prev) × k + EMA_prev使用乘數將當日收盤價與前一日的 EMA 混合
乘數 k2 ÷ (N + 1)週期 N 的平滑因子(也稱為 α 或平滑常數)
種子 EMA第一個收盤價,或前 N 個收盤價的 SMA遞迴開始前的起始值
滯後 t 期的權重k × (1 − k)^tt 個週期前的觀察值仍具有的權重
Wilder 變體1 ÷ NRSI、ATR 及其他 Welles Wilder 指標中使用的替代乘數

右側兩欄是固定的關係式——這類內容適合編寫一次並重複使用。實際數字取決於所選的週期和資料中的價格;請從下一節的 Excel 公式中取得,或使用指數計算機進行抽樣檢查。

如何在 Excel 中計算 EMA

  1. 佈局收盤價。在 A1 輸入如「日期」的標頭,在 B1 輸入「收盤價」,並從 B2 開始向下輸入每日收盤價。如果資料包含多個標的,請為每個標的重複該欄位區塊,而不是混在一起。
  2. 選擇週期並儲存乘數。在固定儲存格(如 D1)中輸入週期(例如 10)。在 D2 中輸入 =2/($D$1+1)。美元符號會鎖定參照,這樣複製公式時才不會位移。
  3. 植入第一個 EMA 值。在 C2 中輸入種子——為了簡便可使用第一個收盤價 (=B2),或為了更乾淨的起點可使用前 N 個收盤價的簡單移動平均。在 C1 將標頭命名為「EMA」。
  4. 編寫遞迴 EMA 公式。在 C3 中輸入 =(B3-C2)*$D$2+C2。讀法為「今日收盤價減昨日的 EMA,乘以乘數,再加上昨日的 EMA」。Excel 會逐列運算,因此每個 C 儲存格僅依賴於其正上方的一列。
  5. 向下複製公式。選取 C3 並將填滿控點向下拖曳至最後一列資料。Excel 會為後續每一天遞迴重新計算 EMA。
  6. 設定格式與繪製圖表。套用例如兩位小數的數值格式,然後在折線圖上繪製收盤價與 EMA 序列,以視覺化相較於原始價格的平滑效果。

如果偏好單欄佈局,請在 C2 使用 =B2 作為種子,並從第 3 列使用上述公式開始遞迴。無論工作表有 50 列還是 50,000 列,結構都完全相同——Excel 只需要錨定乘數並定義一次遞迴即可。

使用指數計算機驗證衰減權重

EMA 乘數 k 很小(10 週期 EMA 約為 0.18),但衰減仍然重要。20 天前的觀察值會透過 (1 − k)^20 因子影響今日的 EMA。若要查看任何週期下該因子的實際數值,請將 1 − k 作為底數、滯後期作為指數代入指數計算機。它會顯示小整數指數的展開式,並能妥善處理小數和倒數,因此可以根據所選週期驗證較舊的觀察值是仍具實質貢獻,或是實質上可忽略不計。

舉例來說,對於 10 週期 EMA(k ≈ 0.1818),20 天前觀察值的衰減因子為 (1 − 0.1818)^20 = 0.8182^20。這個單次查詢即可回答「T-20 那天仍具備多少權重?」這個問題,而無需手動將 0.8182 自行相乘 20 次。相同的方法適用於任何自訂週期:計算 k,然後將 (1 − k) 提升至相關的滯後次方。關於相同指數工具在相同概念成長面的另一個應用,指數成長計算指南 介紹了如何以反向方式運用相同的計算進行百分比成長。

選擇平滑週期

週期 N 決定了反應速度與平滑度之間的取捨。短週期(5 到 10)緊貼近期價格,並在幾個 K 線內即產生反應,因此常被用於短期交易訊號。較長的週期(20 到 50)以落後於真實轉折點為代價來濾除雜訊,而像 100 或 200 這類非常長的週期則被用作慢速趨勢參考。

週期範圍乘數公式典型用途
5–102 ÷ (N + 1)短期進出場;在幾個 K 線內產生反應
20–302 ÷ (N + 1)中期趨勢,常見的波段交易預設值
50–2002 ÷ (N + 1)長期趨勢濾網與總體參考
Wilder 風格 (N)1 ÷ NRSI、ATR 及其他 Welles Wilder 指標

請根據所要回答的問題來選擇,而非依據其他地方流行什麼。若將 10 週期 EMA 強加於週線圖上,所產生的結果會比 20 週期 EMA 更為雜訊,且其關係純粹是算術上的:當 N 增大時,乘數 k 會縮小,EMA 的反應也會變慢。確切的乘數來自上述公式;若想了解特定歷史 K 線仍具備多少權重,請使用指數計算機將 (1 − k) 提升至該滯後次方。

Excel EMA 計算的常見陷阱

有三個錯誤造成了大多數毀損的 EMA 工作表:

  • 乘數未�定。如果乘數是以字面數字輸入,而非輸入為 =2/($D$1+1),那麼日後更改週期時將不會更新 EMA 欄。請務必參照單一儲存格,以便整欄都能對單一編輯做出反應。
  • 種子值不當。以 0 或不對應的日期作為種子,可能會在前 N 個週期內使 EMA 明顯偏離價格。短工作表請使用第一個收盤價,較長的工作表則使用前 N 個收盤價的 SMA,並記錄所選方法以便重現。
  • 查詢參照過時。如果使用 VLOOKUP、INDEX/MATCH 或 XLOOKUP 從 EMA 欄中不存在的日期提取 EMA 值,則該公式會傳回過時或缺失的值。請使用結構化表格參照或整欄範圍,以確保查詢始終能找到其所預期的列。

最後,請記住乘數是小數,而非百分比。如果輸入了 18.18 而非 0.1818,EMA 將在數個週期內暴增,因為每天的貢獻都會大於前一個 EMA,且 (Close − EMA_prev) 項會在每一後續列持續放大。圖表將會飛出螢幕,且底層數字將無法恢復,必須重建該欄。

延伸閱讀:如何在 Excel 中計算對數 (LN, LOG, LOG10)