/* Example Code */
data dowj;
format day date7.;
informat day date7.;
input day $ dj @@;
label dj='DJIA Closing Price for Day';
/* Exponential Smoothing Weight */
w=.75;
retain ewma1 ewma2 ewma3;
/* Starting Value in Series */
if _n_ = 1 then ewma1=dj;
/* Single Exponential Smoothing */
else ewma1=w*dj+(1-w)*ewma1;
/* Double Exponential Smoothing */
if _n_ le 2 then ewma2=ewma1;
else ewma2=w*ewma1+(1-w)*ewma2;
/* Triple Exponential Smoothing */
if _n_ le 3 then ewma3=ewma2;
else ewma3=w*ewma2+(1-w)*ewma3;
cards;
03JAN94 3756.60 04JAN94 3783.90 05JAN94 3798.82 06JAN94 3803.88
07JAN94 3820.77 10JAN94 3865.51 11JAN94 3850.31 12JAN94 3848.63
13JAN94 3842.43 14JAN94 3867.20 17JAN94 3870.29 18JAN94 3870.29
19JAN94 3884.37 20JAN94 3891.96 21JAN94 3914.48
;
proc print data=dowj;
var day dj ewma1 ewma2 ewma3;
title 'Dow Jones Index Closing Price';
title2 'Exponentially Weighted Moving Averages';
run;