指數移動平均(英語:exponential moving average,EMA或EXMA)是以指數式遞減加權的移動平均。各數值的加權影響力隨時間而指數式遞減,越近期的數據加權影響力越重,但較舊的數據也給予一定的加權值。
在XS中把這個移動平均寫成一個叫XAverage的函數,腳本如下
1SetBarMode(2); 2 3input:thePrice(numericseries); //"價格序列" 4input:Length(Numeric); //"計算期間" 5 6variable: Factor(0); 7 8if length + 1 = 0 then Factor = 1 else Factor = 2 / (Length + 1); 9 10if CurrentBar = 1 then 11 XAverage = thePrice 12else 13 XAverage = XAverage[1] + Factor * (thePrice - XAverage[1]);