function [X1,X2,X3,X4,X5,X6,X7,data] = func_Technical_Indicators(data0);
%SMA
N = 8;
M = 3;
data = data0(:,4);
for i = 1:length(data);
if i == 1
X1(i) = data(i);
else
X1(i) = M*data(i)/(N+1)+(N-1)/(N+1)*X1(i-1);
end
end
%EMA
N = 8;
data = data0(:,4);
for i = 1:length(data);
if i == 1
X2(i) = data(i);
else
X2(i) = 2*data(i)/(N+1)+(N-1)/(N+1)*X2(i-1);
end
end
%MACD
data = data0(:,4);
X3 = [macd(data)]';
%MFI
% R = [Price_max',Price_min',Price_open',Price_close',Volume'];
TYP = (data0(:,1) + data0(:,2) + data0(:,4))/3;
N = 8;
for i = 1:length(data)
if i == 1
tmp1(i) = TYP(i) * data0(i,5);
tmp2(i) = TYP(i) * data0(i,5);
else
if TYP(i) > TYP(i-1)
tmp1(i) = TYP(i) * data0(i,5);
else
tmp1(i) = 0;
end
if TYP(i) < TYP(i-1)
tmp2(i) = TYP(i) * data0(i,5);
else
tmp2(i) = 0;
end
end
end
for i = 1:length(data)
if i <= N
V1(i) = sum(tmp1(1:i))/sum(tmp2(1:i));
else
V1(i) = sum(tmp1(i-N+1:i))/sum(tmp2(i-N+1:i));
end
end
X4 = V1;
%AI
N = 8;
data = data0(:,4);
for i = 1:length(data);
if i <= N
X5(i) = data(i)/sum(data(1:i));
else
X5(i) = data(i)/sum(data(i-N:i));
end
end
%RSI
data = data0(:,4);
for i = 1:length(data);
if i == 1
tmps0(i) = 1;
else
if data(i) >= data(i-1)
tmps0(i) = 1;
else
tmps0(i) = -1;
end
end
end
tmps0=tmps0';
tmps = zeros(14,length(data));
for i = 1:length(data);
if i <= 14
tmps(:,i) = [zeros(14-i,1);tmps0(1:i).*data(1:i)];
else
tmps(:,i) = [tmps0(i-13:i).*data(i-13:i)];
end
end
for i = 1:length(tmps);
A=0;
B=0;
for j = 1:14
if tmps(j,i) >=0
A = A+tmps(j,i);
else
B = B-tmps(j,i);
end
end
X6(i) = 100*A/(A+B);
end
%CCI
TYP = (data0(:,1) + data0(:,2) + data0(:,4))/3;
N = 14;
for i = 1:length(data)
if i <= 14
tm1(i) = mean(data(1:i));
else
tm1(i) = mean(data(i-N+1:i));
end
if i <= 14
tm2(i) = data(i)-mean(data(1:i));
else
tm2(i) = data(i)-mean(data(i-N+1:i));
end
CCI(i) = (TYP(i) - tm1(i))/(0.015*tm2(i));
end
X7 = CCI;
ide1 = find(isnan(X1)==1);
X1(ide1) = 0;
ide2 = find(isnan(X2)==1);
X2(ide2) = 0;
ide3 = find(isnan(X3)==1);
X3(ide3) = 0;
ide4 = find(isnan(X4)==1);
X4(ide4) = 0;
ide5 = find(isnan(X5)==1);
X5(ide5) = 0;
ide6 = find(isnan(X6)==1);
X6(ide6) = 0;
ide7 = find(isnan(X7)==1);
X7(ide7) = 0;
ide1 = find(abs(X1)>=1000000);
X1(ide1) = 100;
ide2 = find(abs(X2)>=1000000);
X2(ide2) = 100;
ide3 = find(abs(X3)>=1000000);
X3(ide3) = 100;
ide4 = find(abs(X4)>=1000000);
X4(ide4) = 100;
ide5 = find(abs(X5)>=1000000);
X5(ide5) = 100;
ide6 = find(abs(X6)>=1000000);
X6(ide6) = 100;
ide7 = find(abs(X7)>=1000000);
X7(ide7) = 100;
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
通过逐步回归分析(SRA)、自适应模糊神经网络(ANFIS)资本资产定价模型(CAPM)对金融时间序列进行预测的MATLAB仿真。介绍了国内外关于证券组合投资的理论研究成果,并分析了各种方法的优缺点。然后分别介绍了逐步回归分析理论(Stepwise regression analysis,SRA)、自适应模糊神经网络理论(adaptive neural-fuzzy inference system,ANFIS)、资本资产定价模型(Capital asset pricing model,CAPM)三种方法。通过SRA方法来提高预测模型的性能,通过ANFIS模型获得更高精度预测模型,最后将SRA和ANFIS和CAPM资产资本定价模型进行结合,提出了一种适合国内证券市场的混合组合投资算法。并通过MATLAB仿真工具对该组合投资算法进行了性能验证,通过仿真结论可知,本文所提出的算法在国内证券市场可以获得较高的投资回报,因此具有一定的应用价值。
资源推荐
资源详情
资源评论
收起资源包目录
通过逐步回归分析理论(SRA)、自适应模糊神经网络理论(ANFIS)一级资本资产定价模型(CAPM)对金融时间序列进行预测分析的MATLAB仿真.rar (24个子文件)
hybrid_SRA_ANFIS_CAPM
STEP2.mat 751KB
STEP2.m 2KB
STEP4.m 2KB
func
func_Rr.m 823B
func_buy_hold.m 561B
func_get_stock.m 428B
func_cal_beta.m 449B
func_Technical_Indicators.m 3KB
func_SH50.m 1KB
func_cal_beta2.m 779B
func_hybird.m 397B
func_average.m 283B
parseXML.m 2KB
get_stock_hist.m 1KB
func_anfis.m 237B
kline_data_htm.xml 77KB
STEP3.m 1KB
STEP4.mat 102KB
anfis_file.fis 2KB
STEP1.mat 189KB
STEP5.m 759B
STEP1.m 2KB
STEP3.mat 38KB
papers.docx 531KB
共 24 条
- 1
资源评论
- qq_26086942832022-05-01用户下载后在一定时间内未进行评价,系统默认好评。
- coee_7723402023-03-20资源内容详细全面,与描述一致,对我很有用,有一定的使用价值。
fpga和matlab
- 粉丝: 17w+
- 资源: 2627
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功