data temp;
set temp;
retain flag pre_flag 0;
pre_flag=flag;
if MA5>=MA10 then do;
if pre_flag=0 then total=-close; /*Buy*/
flag=1;
end;
else do;
if pre_flag=1 then total=close; /*Sell*/
flag=0;
end;
run;[/code:upqb2gtb]
其实楼主的逻辑没有写清楚,是否只要当MA5大于MA10就买入1个单位?卖出同样问题。还有很多需要澄清的疑问,请楼主参考程序,自行扩展完善逻辑。