學習指南
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 線;交叉不提供方向或收益保證。
資料來源
- www.tradingview.com核對於 2026-08-02
- www.tradingview.com核對於 2026-08-02
- www.fidelity.com核對於 2026-08-02
- chartschool.stockcharts.com核對於 2026-08-02
- www.cmegroup.com核對於 2026-08-02
- www.itl.nist.gov核對於 2026-08-02