To get the same results as the 1st answer and if you have SAS/ETS you can use PROC EXPAND:
proc expand data=z out=sum;
convert x=sum_X /method=none transformout=(movsum 5);
run;
If you want to skip blanks a bit more logic needs to be added to the 1st answer.
data z;
input x @@;
cards;
10 . . 10 20 10 30 30 . 60 40 60 50 100 30 150 . 170 . 170 10 170 20 160 30 150 40 130 . 130
;
run;
DATA z2;
SET z;
RETAIN val1 val2 val3 val4 val5 val6 val7 val8 val9 val10 ;
ARRAY val val1-val10;
DO i=10 TO 2 BY -1;
val{i}=val{i-1};
END;
val1=x;
if n(OF val1-val5)=5 then sum_x2=SUM(OF val1-val5); else
if n(OF val1-val6)=5 then sum_x2=SUM(OF val1-val6); else
if n(OF val1-val7)=5 then sum_x2=SUM(OF val1-val7); else
if n(OF val1-val8)=5 then sum_x2=SUM(OF val1-val8); else
if n(OF val1-val9)=5 then sum_x2=SUM(OF val1-val9); else
if n(OF val1-val10)=5 then sum_x2=SUM(OF val1-val10);
DROP val1 val2 val3 val4 val5 val6 val7 val8 val9 val10 ;
run;