楼主: wanwanle2
2457 2

[原创博文] SAS的程序化交易 [推广有奖]

  • 1关注
  • 22粉丝

已卖:153份资源

博士生

87%

还不是VIP/贵宾

-

威望
0
论坛币
310 个
通用积分
294.0629
学术水平
16 点
热心指数
18 点
信用等级
14 点
经验
287100 点
帖子
306
精华
0
在线时间
370 小时
注册时间
2011-4-13
最后登录
2024-10-23

楼主
wanwanle2 在职认证  发表于 2011-10-19 11:24:56 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最近在做股票的程序化交易,遇到一个交易策略:当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;
二维码

扫码加我 拉你入群

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

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

关键词:程序化交易 sas的 程序化 replace rename 上证指数 replace import 程序 而且

沙发
playmore 发表于 2011-10-19 11:34:24
lz的计算MA的宏还可以更加完善
不要用%do循环了,费时间
用array的方法就好
你搜本版的贴子就好
有人问过的
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

藤椅
wanwanle2 在职认证  发表于 2011-10-19 13:19:03
我搜过了,已经解决的没给看,其他的都是未解决的,可以详细给出吗?非常感谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 07:50