全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6158 7
2011-09-24
悬赏 30 个论坛币 已解决
收益率=(卖出价格-买入价格)/买入价格
      累计成功率=收益率大于0的次数/(收益率大于0的次数+收益率小于或等于0的次数)
以均线指标为例,要求当5日均线向上穿过10日均线时,即判断为买入信号;当5日均线向下穿过10均线时,即判断为卖出信号,以此进行累计收益率和累计成功率测试。   
    最后,计算出所有股票的累计收益率和累计成功率,并将它们输出到同一个表中。
如何批量导入同一文件夹下的txt文件数据?后面的关于累计收益率和累计成功率的编程应该怎么实现,可以只给思路。(上传了3个txt文件,实际有700多个相同格式的txt数据文件)。麻烦大牛看下,本人新手,学习中~~~

SH600005.TXT

大小:91.65 KB

 马上下载

SH600004.TXT

大小:90.71 KB

 马上下载

SH600000.TXT

大小:92.46 KB

 马上下载

最佳答案

双修阁主の 查看完整内容

这个问题简单啊,站内信,我跟你说。
二维码

扫码加我 拉你入群

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

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

全部回复
2011-9-24 17:29:06
这个问题简单啊,站内信,我跟你说。
二维码

扫码加我 拉你入群

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

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

2011-9-24 17:55:35
复制代码
二维码

扫码加我 拉你入群

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

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

2011-9-24 18:17:41
楼主:收益率的解释不大会...比如连续买进和卖出的情况...怎么求收益率,也就是说,怎么算交易一次...从而算一次收益率
二维码

扫码加我 拉你入群

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

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

2011-9-25 15:53:58
批量读取TXT文件,可以使用 unamed pipe 来获取变量名(见代码),然后使用 infile 语句的 filevar= 选项来读取并合并txt文件;或者用宏循环来实现文件的批量读取。
复制代码
二维码

扫码加我 拉你入群

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

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

2011-9-25 20:38:51
shenliang_111 发表于 2011-9-24 18:17
楼主:收益率的解释不大会...比如连续买进和卖出的情况...怎么求收益率,也就是说,怎么算交易一次...从而算 ...
我是通过求5日均线和10日均线:
proc import
  datafile='H:\DayData\SH600000.TXT'
  out=sasuser.sh60000
  dbms=csv
  replace;
  datarow=3;
  label var1='date' var2='open' var3='high' var4='low' var5='close' var6='volume' var7='turnover';
run;

/*计算移动平均的宏*/
%macro ma(x); /*计算x天的移动平均线,例如x=5,就是计算5天的移动平均线*/
ma&x=0;        /*初始变量ma5=0*/
array l&x.ags(&x); /*申明一个数组,数组名字为l5ags*/
l&x.ags(1)=var5;
ma&x=ma&x+l&x.ags(1);
do i&x=2 to &x;
l&x.ags(i&x)=lag(l&x.ags(i&x-1));
ma&x=ma&x+l&x.ags(i&x);
end;
ma&x=ma&x/&x;
drop i&x l&x.ags1-l&x.ags&x; /*将不必要的变量舍去*/
%mend;

data sh6_2;
set sasuser.sh60000;
%ma(5);
%ma(10);
run;

现在有个问题,就是如何把算法编程成代码,算法思路大概这样:
当5日均线值max5(i)>max10(i)且max5(i+1)<max10(i+1)时,判断为卖出;
当5日均线值max5(i)<max10(i)且max5(i+1)>max10(i+1)时,判断为买入;
i 其实就是时间,但具体怎么转化,遇到问题了,目的就是求出两个if语句各自的 i (时间)的各个取值
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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