學習指南

EMA 比 SMA 快,但沒有看見未來

由平滑係數開始手算 EMA,說明首值種子、暖機、資料順序和盤中更新;再把均線交叉還原成兩條歷史平滑線的關係。

教學示意圖 — 只是教育說明,不是市場訊號或績效圖。

只供教育用途;不是財務建議,也不是交易訊號。

讀者最常問的問題

  • EMA 的平滑係數怎樣由週期計算?
  • 第一個 EMA 值應用 SMA 還是第一筆價格?
  • 不同平臺為何在早期區段不同?
  • 短 EMA 上穿長 EMA能否直接視為買入訊號?
  • 未完成 K 線如何改變當前 EMA?

這一頁想讓你弄懂的事

  • 手算平滑係數和遞推更新。
  • 辨識種子與暖機長度造成的偏差。
  • 比較 EMA 與 SMA 的權重和滯後。
  • 將交叉描述與風險決策分開。

重點段落

EMA 對較新資料給較高權重

常見 n 期 EMA 使用 α=2/(n+1)。新值等於 α 乘本期價格,加上 1-α 乘前一期 EMA。只要 0<α≤1,較舊價格的影響會按幾何比例逐步衰減,但不會在第 n 期突然歸零。

這與 n 期 SMA 每筆權重相同、超過窗口後完全移除不同。EMA 反應通常較快,代價是對短暫波動也更敏感。

第一個值沒有唯一自然答案

遞推公式需要前一期 EMA,因此必須選種子。常見做法包括用前 n 期 SMA 作首值、用第一筆價格作首值,或先載入更長歷史讓差異衰減。

同一串近期價格若資料起點不同,早期 EMA 可以不同。比較平臺時應先取得足夠暖機資料,再看差距是否逐步縮小。

週期是權重設定,不是預測期限

n=20 並不表示只使用二十筆,也不表示預測未來二十期。它透過 α 控制衰減速度;n 越小,α 越大,新價格影響越高。

把週期改短會增加折返與交叉,改長會增加平滑和滯後。這是公式結果,不能反推出哪個週期對所有市場最好。

延伸說明

用三步數字看遞推

若 n=3,α=0.5,前一期 EMA 為 ₹100,本期價格 ₹104,新 EMA=0.5×104+0.5×100=₹102。下一期價格 ₹98,EMA=0.5×98+0.5×102=₹100。

價格先升後跌回 ₹98,EMA 仍為 ₹100,清楚顯示平滑造成的滯後。小例子可用來核對欄位順序與四捨五入。

資料排序錯誤會產生合理外觀的錯線

EMA 必須由舊到新計算。若 API 回傳由新到舊卻直接遞推,權重方向會反轉,但輸出仍是一條平滑線,很難單靠肉眼發現。

計算前要按時間戳升序、去除重複並確認間隔。缺值不能默認填零;刪除或前值填補都會改變後續整條序列。

盤中 EMA 會隨最新價格跳動

未完成 K 線的 close 是即時價格,本期 EMA 會在每次更新時重算。盤中交叉可能在收盤前消失,並非歷史重畫,而是輸入尚未固定。

歷史教學應標明只用收盤值;研究盤中交叉則需保存當時快照,不能用最終收盤資料代替當時可見資訊。

價格來源與時區同樣重要

EMA 可套在 close、open、hl2、hlc3 或其他序列。不同交易所成交資料、日界線與異常值處理會形成不同輸入,因此即使週期相同也不必完全重合。

重現時至少記錄交易所、商品、時間框架、時區、來源欄位、週期、種子、暖機長度和精度。只說「20 EMA」資訊不足。

均線交叉是滯後序列的相對位置

短 EMA 上穿長 EMA,表示按各自權重平滑後,短序列當時高於長序列。交叉必然依賴已發生價格,而且兩條線都會在震盪時反覆穿越。

若要研究交叉,需預先定義收盤確認、重複事件、觀察窗口與費用。單次交叉沒有倉位、退出和最大損失資訊。

長期權重尾巴容易被忽略

EMA 對舊資料權重逐期變小但理論上不立即歸零。以有限資料啟動時,種子等於把更早歷史壓縮成一個值;暖機越短,這個假設影響越大。

平臺為效能可能只載入有限根 K 線。若差異集中在圖表左側,不應急著判定公式錯誤,先比較載入長度與種子。

與 SMA 比較要用同一輸入

把同一價格序列、同一長度的 SMA 與 EMA 並排,才能看到權重差異。若一條使用收盤、另一條使用典型價,或暖機起點不同,差距不再只由平均方法造成。

EMA 較快不代表較準,SMA 較慢也不代表較可靠;「準確」需要先定義要衡量的歷史特徵,不能用未來結果倒選。

一份可審核的 EMA 記錄

保留原始時間與價格、α、種子欄、每期未四捨五入 EMA 和顯示值。用全平、單調上升、單調下降及含缺值序列測試邊界。

最後另列費用、成交和部位風險。EMA 只處理輸入序列,不知道帳戶餘額、流動性或清算規則。

企業行動與合約切換會改寫輸入

股票拆分、股利調整、期貨換月與指數成分變更都可能令歷史價格序列出現不連續。使用未調整或調整後資料會得到不同 EMA;公式本身無法知道跳變是市場交易還是資料處理。

研究應選定資料口徑並保存供應商與版本。若中途更換口徑,必須從一致的完整序列重算,不能把兩段 EMA 直接拼接。

偏移顯示不等於提前預測

有些圖表允許把 EMA 向左或向右偏移。向左移動只是在畫面上改變線的位置,計算時仍使用原來的歷史資料;若拿偏移後線值與當時價格比較,會把未來計算結果錯放到過去。

任何偏移參數都要設為零或明確記錄。研究事件應使用原始計算時間,而不是螢幕上被平移後的座標。

數值精度應只在顯示層取捨

遞推過程若每期先四捨五入,再用取整後結果計算下一期,微小誤差會一路傳遞。較穩妥做法是保留完整浮點精度,只在畫面最後一步格式化。

跨工具比對時應取得未格式化數值;只看兩位小數可能掩蓋差異,也可能把相近數字誤判為完全一致。

平台數值對不上時,按計算鏈逐項排查

先確認輸入欄位是不是 close;有些圖表可選 open、hl2 或 hlc3,同一週期仍會得到不同 EMA。再確認 K 線時區、交易所交易對、是否納入當前未完成 K 線。最後才比較 length 與 seed。只盯着末位小數,很容易把資料源差異誤認成公式錯誤。

重算時保存至少 length 數倍的歷史資料,分別測試以第一個值作 seed 和以首段 SMA 作 seed。兩條序列通常隨時間靠近,但在資料缺口、上市初期或很長週期下可能維持可見差異。每一步先保留高精度,顯示層再四捨五入,避免把捨入後的值回填下一步。

EMA 更靠近近期價格不等於預測下一根。價格急變後它會追隨,價格轉回時又會以同一遞推方式調整。交叉、斜率和價格相對位置都是由既有輸入轉換而來;若要研究某個規則,必須另寫進出條件、費用、滑價和失效情境,不能把指標線本身包裝成訊號。

資料缺口不是普通的零變動

若某個週期沒有 K 線,直接補上一個零價格會破壞 EMA;用前收盤補值則等同假設該段價格不變。全天候市場也可能因資料源維護而缺 bar。重現時要標出缺口,說明是跳過、前值填補或重新取數。

不同處理會改變之後多個 EMA 值。對帳時先比較原始 timestamp 集合,再比較計算,否則公式完全相同也會被誤判。

₹ 計算示例

情境
三期 EMA,α=2/(3+1)=0.5,前值 ₹100,本期價格 ₹104。
計算過程
新 EMA=0.5×₹104+0.5×₹100=₹102。
怎麼解讀
EMA 只向新價格移動一部分,所以反應較快但仍滯後。

常見的誤會

把「短 EMA 上穿長 EMA」寫成必然上漲,忽略交叉由已完成價格派生,也可能在橫盤中連續失效。

自我檢查清單

  • 固定商品、交易所、時間框架與來源欄位。
  • 記錄週期、α、種子與暖機長度。
  • 確認資料由舊到新且沒有重複。
  • 分開盤中值和收盤值。
  • 保留未四捨五入中間值。
  • 以多種邊界序列測試。
  • 不把均線交叉當作完整交易計畫。

這一頁的限制

  • EMA 使用歷史輸入並必然滯後。
  • 種子、資料起點與缺值處理會影響結果。
  • 盤中 EMA 可在收盤前反覆改變。
  • 交叉不包含成交、費用、倉位或收益保證。
  • 顯示位數與內部計算精度不同,截圖小數不可代替原始值。

風險提示

EMA 是歷史價格的加權平滑,必然滯後且依賴資料起點、種子、來源欄位與未完成 K 線;交叉不提供方向或收益保證。

資料來源