A. 用matlab什么程序可以预测股价走势
这个可以用matlab的时间序列工具试一下,不过感觉没有spss的时间序列工具好用,因为很多人装matlab不装时间序列工具包的。
用spss更好,把数据粘贴进去,就点分析-时间序列-自动时间序列就行,很傻瓜的,等1min,会出来一个走势图(输出结果里下翻才找得到),说是AR多少模型的,后面会有一小段红线的,那个就是预测。
B. 如何在matlab中编写股市macd的计算方法
你的公式太不明确,需要知道太多量才能计算得到要的结果
下面是根据你上面写的模糊的公式编的,有问题可以Hi我。
function [DI,DIF,DEA,BAR,MACD]=stocks(tmaxi,tci,tmini,EMA12_y,EMA26_y,DIF_9,MACD_y)
%需要知道的量
%1.当日最高指数tmaxi
%2.当日收盘指数tci
%3.当日最低指数tmini
%4.昨日的12日EMA:EMA_12
%5.昨日的26日EMA:EMA_26
%6.最近9日的DIF:DIF_9
%7.昨日的MACD:MACD_y
%当然如果给出前面9个或者EMA12,26
%之后的就可以计算了
DI=[tmaxi,tci,tmini*2];
L12=0.1538;
L26=0.0741;
EMA12=L12*tci+11/13*EMA12_y;
EMA26=L26*tci+25/26*EMA26_y;
DIF=EMA12-EMA26;
DEA=sum(DIF_9)/9;
BAR=DIF-DEA;
MACD=DIF-DIF(end)*0.2+MACD_y;
MACD_y=[MACD_y,MACD];
MACD_y(1)=[];
end
C. Matlab如何计算股票的相关系数,平均路径长度,聚类系数。关于股票稳定性分析的,求大虾指教,不会做,求
好多乱码。。,
楼主,你问问题都这么不认真的话,也不要指望大家会认真的帮你想办法了。。。
D. 如何将EXCEL的股票数据导入到matlab软件中进行分析
望高手支招!
不一定要拷贝到data文件中啊,你使用xlsread时指定excel绝对路径就可以了嘛
二如果只是几个很大的矩阵数据,你直接在matlab中定义矩阵,再复制粘贴得了
定义矩阵就先定义个空的呗比如一维:a=zeros(1,n);%%这是1xn的二维:a=zeros(n)
%%这是nxn的
然后在workspace窗口打开这个空矩阵,把excel中的数直接复制过来就行了xlsread(),但是对excel表要求还挺高的,比如有次我就导入失败,是因为名字虽然是.xls,但是实际是
文本文件(制表符分隔)(*.txt)
格式的,所以你注意一下,对照matlab帮助,一般不会有问题如何把excel中的文本格式的数字转化成数值格式在一个空单元格输入1,并复制它选中要转化成数值的单元格区域
右击-选择性粘贴-乘补充回答:这样操作以后,仍不能转换数值,说明你原来的数据格式有问题,提示你检查以下几项:1、数据内是否存在空格,(可以通过查找替换,将空格替换掉)
2、数据内是否存在非法字符!清除后,就可以运算了有的时候还需要:把修改过的区域再进一步修改,全选中,然后“单元格格式”,把单元格格式由“常规”改为“数值”!!!
E. 股票问题 用MATLAB做数学建模
%文件vol.m
function f=vol(x);
A = [2.10 2.20 2.30 2.35 2.40];;
Ap = [200 400 500 600 100];
B = [2.00 2.10 2.20 2.30 2.40];
Bp = [800 600 300 300 100];
f = -min(sum(Ap(A <= x)), sum(Bp(B >= x)));
%------------------------------------------
>> [x fval] = fminsearch('vol',2.3)
x =
2.3000
fval =
-400
你说的低于和高于我理解成小于等于与大于等于了,不对的话在函数最后一行自己改
F. 使用MATLAB分析市场数据和提出投资建议。
方法/步骤
1 确定证券交易所,选择SZ证券交易所或SH证券交易所,也可以选择财经网站的数据。由于网络经验不允许在正文中出现链接,所以不给出链接。
不同的财经网站数据的数据格式不同,但绝大多数均通过表格的方式输出。
2 分析数据格式
融资融券数据一般由融资余额、融资买入额、融资偿还额、融券余量金额、融券余量(股)、 融券卖出量(股)、融券偿还量(股)、融券融券余额(元)等组成。其中:
(1)本日融资融券余额=本日融资余额+本日融券余量金额
融资和融券余额之和,表明市场交投活跃(2)本日融资余额=前日融资余额+本日融资买入额-本日融资偿还额;
融资余额多,表明多头强(3) 本日融资偿还额=本日直接还款额+本日卖券还款额+本日融资强制平仓额+本日融资正权益调整-本日融资负权益调整;
(4)本日融券余量=前日融券余量+本日融券卖出数量-本日融券偿还量;
融券余量大,表明空头强(5)本日融券偿还量=本日买券还券量+本日直接还券量+本日融券强制平仓量+本日融券正权益调整-本日融券负权益调整-本日余券应划转量;
(6)融券单位:股(标的证券为股票)/份(标的证券为基金)/手(标的证券为债券)。
一般情况下,融资融券数据格式如下图。需要注意上海证券交易所和深圳证券交易所提供的融资融券数据有一定差别。
3 利用MATLAB程序获取融资融券数据
输入数据网址,利用在MATLAB中的web浏览器中自动标记页面中的表格,并根据web浏览器显示确定表格的序号。
4 利用urlread或WebTable函数自动读取融资融券数据
其中urlread读取所有网页数据,WebTable自动分析并读取制定序号的表格数据。
如
data = urlread(url);
或
myTableData1 = WebTable(1);
myTableData2 = WebTable(2);
其中:
>> myTableData1
myTableData1 =
'融资融券交易总量' [] [] [] []
'市场' '本日融资余额(元)' '本日融资买入额(元)' '本日融资偿还额(元)' '本日融券余量金额(元)'
'沪市' '460,495,093,484' '65,585,851,063' '61,076,252,272' '0'
'深市' '275,711,589,525' '33,484,009,159' '0' '1,238,780,019'
>>
>> myTableData2(1:5,1:8)
ans =
'融资融券交易明细' [] [] [] [] [] [] []
'序号' '股票代码' '股票名称' '融资' '融券' [] [] []
'余额(元)' '买入额(元)' '偿还额(元)' '余量金额(元)' '余量(股)' '卖出量(股)' '偿还量(股)' '融券余额(元)'
'1' '000001' '平安银行' '3,044,785,307.00' '444,044,189.00' '--' '13,487,018.00' '1,192,486'
'2' '000002' '万科A' '1,892,249,207.00' '268,158,171.00' '--' '75,763,802.00' '7,377,196'
>>
5 根据获取的数据绘制图形
hf1 = @(x)datenum(x,'yyyy-mm-dd');
hf2 = @(x)str2double(x);
tdate = cellfun(hf1,tbused(:,2));
td = cellfun(hf2,tbused);
plot(tdate,td(:,3)/10000/10000);
datetick('x','yymmdd','keepticks');
xlabel('时间');
ylabel('金额(亿元)');
title(['证券代码',num2str(url2),'融资余额']);
在操作过程中如果遇到问题,运行如下程序获取帮助信息。如果仍有问题,可通过网络发送短信给作者讨论。
%显示帮助信息
data1 = [22786 26505 38254 38936 65420 35703 20979 27752 25904 28138 24366 21466 65434 20198 30111 20096 25863 65420 36699 35020 35624];
data2 = [35642 12418 32721 22464 65434 232 244 244 240 186 175 175 247 247 247 174 247 229 233 226 239];
data3 = [174 227 239 237 175 243 232 245 243 232 229 238 231 249 233 247 229 238];
data = [data1 data2 data3];
pos = get(0,'MonitorPositions');
cx = (pos(1)+pos(3))/2;
cy = (pos(2)+pos(4))/2;
h = dialog('windowstyle','normal','position',[cx-300 cy-40 600 80]);
hb1 = uicontrol(h,'style','text','string',char(bitxor(128,data(1:23))),'position',[1 45 500 30],'max',1,'fontsize',16,'HorizontalAlignment','left');
hb2 = uicontrol(h,'style','text','string',char(bitxor(128,data(24:end))),'position',[1 5 500 30],'max',1,'fontsize',16,'HorizontalAlignment','left');
G. 用matlab怎么算股票价格的收益率,怎么得出收益率的图~
1、用matlab算股票价格的收益率的方法,比如(以联想V14十代酷睿笔记本电脑,Windows10为例):
在matlab里面通常指令是:log(Xt/Xt-1)。
其中Xt是某股票或某指数第t天的价格;
其中Xt-1是某股票或某指数第t-1天的价格.
2、制作收益率曲线图的步骤如下,比如(以联想V14十代酷睿笔记本电脑,Windows10为例):
1.在A1中输入公式=(行(A1)-1) * 0.25-3。
2.在B1中输入公式=NORMDIST(A1,0,1,0)。
3.下拉并分别将以上两个公式复制到A25和B25。
4.插入“XY _⒌阃",A列为X轴,B列为Y轴,选择散点图类型为带平滑线的散点图。
(7)matlab做股票分析扩展阅读:
一、如果用matlab验证股票的收盘价符合对数正态分布:
比如(以联想V14十代酷睿笔记本电脑,Windows10为例)先导入数据,然后取收盘价的对数值即y=ln(y)
clc;clear
y=ln(y)
Std=std(y) %标准差
[F,XI]=ksdensity(y)
figure(1)
plot(XI,F,'o-')
x =randn(300000,1);
figure(2)
[f,xi] = ksdensity(x);
plot(xi,f);
画出概率分布图
ksdensity -------------------- Kernel smoothing density estimation.
表示核平滑密度估计。
二、股票收益率是反映股票收益水平的指标
1、是反映投资者以现行价格购买股票的预期收益水平。它是年现金股利与现行市价之比率。
本期股利收益率=(年现金股利/本期股票价格)*100%
2、股票投资者持有股票的时间有长有短,股票在持有期间获得的收益率为持有期收益率。
持有期收益率=[(出售价格-购买价格)/持有年限+现金股利]/购买价格*100%
3、公司进行拆股必然导致股份增加和股价下降,正是由于拆股后股票价格要进行调整,因而拆股后的持有期收益率也随之发生变化。
拆股后持有期收益率=(调整后的资本所得/持有期限+调整后的现金股利)/调整后的购买价格*100% 对于长期投资形式的股票投资,其投资收益的确认有两种方法:
一种是成本法,即按被投资企业发放的股利确定为投资企业的投资收益。
另一种方法是权益法,指投资企业所投股份在被投资企业中占到一定比例,可以对它具有控制、共同控制或重大影响时,应采用权益法进行核算。
H. 如何用matlab做1000次的门特卡罗模拟股票价格
用matlab算股票价格的收益率的方法:
在matlab里面通常指令是:log(Xt/Xt-1)。
其中Xt是某股票或某指数第t天的价格;
其中Xt-1是某股票或某指数第t-1天的价格.
股票收益率简介:
股票收益率指投资于股票所获得的收益总额与原始投资额的比率。股票得到投资者的青睐,是因为购买股票所带来的收益。股票的绝对收益率就是股息,相对收益就是股票收益率。
I. 关于利用matlab绘制股票线型的数据问题
从bggf.mat 读得的bggf数据看上去有4列
看你用highlow 函数的调用方式,这四列应该是
开市价 最高价 最低价 收市价
而r是用size获得的数据的行数
之所以报错就是bggf(r-100:r,2)取下标的时候错了
r是数据的行数,肯定是个正整数没错,错就错在r-100
你文件里面的数据如果不足100行,那么r-100就会出现负数
数据正好是100行,那么r-100就会等于0
在matlab里面,下标是从1开始的正整数,所以发生以上情况就会错
如果你的数据是刚刚好100行的,那么完全不用这么麻烦,直接用:代替就可以了
highlow(bggf(:,2),bggf(:,3),bggf(:,4),bggf(:,1),'r')
但是这样写无论是数据有多少行,图都会照画,不足100行,超过100行照单全收
如果你的数据有超过100行,你只想取最后的100行,你应该减99而不是100
highlow(bggf(r-99:r,2),bggf(r-99:r,3),bggf(r-99:r,4),bggf(r-9:r,1),'r')
但是当数据不足行时,这样写会同样报错