全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2458 2
2011-10-19
最近在做股票的程序化交易,遇到一个交易策略:当5日均线上穿10日均线时买入,当5日均线下穿10日均线时卖出。
导入数据、数据整理、移动均线等程序我已做出,而且在5日均线上穿10日均线时标记sign1=1,当5日均线下穿10日均线时标记为sign1=-1,并且给出了一些交易变量,求高手能完成下去。


proc import datafile="D:\5日上穿10日均线交易策略(上证指数).xls" out=szzs_final1 dbms=EXCEL2000 replace;
getnames=yes;
run;
data szzs_final1(rename=(_col0=time _col1=clpr));
set szzs_final1;
run;
%macro ma();
data szzs_final2;
set szzs_final1;
lag1_clpr=lag(clpr);
%do i=2 %to 10;
lag&i._clpr=lag(lag%eval(&i.-1)_clpr);
%end;
ma5=(clpr+lag1_clpr+lag2_clpr+lag3_clpr+lag4_clpr)/5;
ma10=(clpr+lag1_clpr+lag2_clpr+lag3_clpr+lag4_clpr+lag5_clpr+lag6_clpr+lag7_clpr+lag8_clpr+lag9_clpr)/10;
keep time clpr ma5 ma10;
run;
%mend ma;
%ma;
data szzs_final3;
set szzs_final2;
n=_n_;
if n>10 then do;
ma5_ma10=ma5-ma10;
    if ma5_ma10>0 then do;
    sign1=1;
    end;
    if ma5_ma10<0 then do;
    sign1=-1;
end;
end;
startmoney=1000000;
each_hands=0;
each_trade_money=0;
each_trade_lastmoney=startmoney-each_trade_money;
profit=0;
profit_rate=0;
each_trade_complete=startmoney;
label startmoney="初始资金" each_trade_lastmoney="每次买入剩余金额"  each_hands="每次交易手数"
      each_trade_money="每次买入金额"  each_trade_complete="每次交易完成总金额" profit="盈利" profit_rate="盈利百分比";
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-10-19 11:34:24
lz的计算MA的宏还可以更加完善
不要用%do循环了,费时间
用array的方法就好
你搜本版的贴子就好
有人问过的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-19 13:19:03
我搜过了,已经解决的没给看,其他的都是未解决的,可以详细给出吗?非常感谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群