a)下载Libsvm软件,在matlab中实现与Libsvm的完全对接,此时在matlab中就可以随时使用Libsvm中的函数了。
b)在matlab中计算出股票的所有MACD买点和卖点。
c)把股票的前一段时间的买点和卖点作为参照量,选取其不同时间的收益率、均线和成交量作为特征值,收益率为正的目标值设为+1,为负的设为-1,运用SVM分类方法对后面的买卖点就行分类。
d)运用SVM分类后,在收益率为+1的买点买入股票,在下一个卖点卖出,计算最后的收益率。
2 收益率反转效应的研究
2.1 运用matlab来实现反转交易的算法
2.1.1 matlab对于数据的读取
这个课题最大的工作量就是对于所有股票数据的行业分类、年份分类以及程序的设计,首先把所有的股票按年份分为不同的文件夹,再把所有的股票按不同行业分在不同的文件夹,相同的行业相同年份的数据分在同一个文件M里面。文献综述
读取数据的简要程序如下:
data=’E:\Matlab安装包\新建文件夹\1.txt’;
data_{i}=’E:\Matlab安装包\新建文件夹\火力发电\i.txt’;
fid=fopen(data,'r');
for j= 1:661
for g = 1:7
cc{j,g}= fscanf(fid,'%s',1);
end
end
w=datenum(cc(:,1));
fclose(fid);
for i=1:1:k
fid_{i}=fopen(data_{i},'r');
for j= 1:661
for g = 1:7
cc{j,g}= fscanf(fid_{i},'%s',1);
end
end
x_{i}=load(data_{i});
w_{i}=datenum(cc(:,1));
fclose(fid_{i});
end
其中w用来存取上证指数的日期数据,w_{i}用来存取要计算的股票日期数据,x_{i}用来存取要计算股票的开盘、收盘、最高、最低等其他数据。
2.1.2 停盘和日期比较问题
因为选择的这些股票可能存在停盘问题,而上证指数的股票是不停盘的,所以本课题选择了上证指数作为参考,用其他股票的日期和上证指数进行比较。
在周收益反转中,用上证指数每周作为一个阶段,其他股票在日期上和上证指数进行比较,如果没有停盘情况,则一周的收益率为(第六天的收盘价-第一天的收盘价)/第一天的收盘价,在这里本文都是只考虑收盘价一个参数的。如果其他股票有停盘的情况,但这周至少有两天不停盘,则一周的收益率为(本周最后一天不停盘时的收盘价-本周第一天不停盘的收盘价)/本周第一天不停盘的收盘价。如果本周的不停盘时间小于两天,则本周的收益率为0。来.自/751·论|文-网·www.751com.cn/
对于月收益率,基本和周收益相同,但本课题处理的是如果一个月第一周或者最后一周都是停盘日期,则视其收益率为0,不做到下一个周期的选取中去。
Libsvm+MACD指标时空序列量化交易算法研究(4):http://www.751com.cn/zidonghua/lunwen_73241.html