可以同时预测3支股票
(1)根据评价指标集, 确定BP 网络中输入节点的个数, 即为指标个数
(2)确定BP 网络的层数, 一般段茄采用具有一个输入层, 一个隐含层和一个输出层的三层网络模型结构明确评价结果, 输出层的节点数为1
(3)对指标值进行标准化处握薯察理, 然后作为训练样本和检验样本
(4)网络状态初始化, 对连接权值wij 和阈值θj赋予( 0, 1)之间的随机数
(5)输入样本, 从前往后计算各层神经元输出yj
(6)对输出层计算权值误差E
(7)从后往前计算各隐层的权值误差δ'j =f '(netj)·l !δlvlj
(8)计算并保存各权值修正4量Δwij(n)=- ηδjxi+αΔwij(n- 1)
(9)修正权值wij(n+1)=wij(n)+Δwij(n)
(10)输入另外一样本, 转到步骤⑤ , 直到网络收敛且输出误差小于允许值。
二、具体原理应用
(1) 网络层数和ANN 输入结点的确定
通常,我们取三层网络模型。输入层起缓冲存储器的作用,它接受外部的输入数据, 因此节点数取决于输入矢量的维数。股价走势呈波浪形式展开, 具有周期性。技术分析中, 分析周期的选择是否恰当, 对预测结果有直接影响。由于时间、任务量及便于选择等原因, 这里选择为1日, 即date=1。
(2) 数据的预处理
数据预处理是将从股市得到的数据转化为能被ANN 识别的输入数据。设ANN 从n日开始预测股价涨跌, 股票最近已成交的原始数据序列{x' (t)},{x(t)}为处理后输入ANN 的数据序列, 作如下处理
x' =date- 1i = 0 !x' (n- 1)date, x(t)= x' (t)- x'x'+0.5。
(3)隐层的节点数
一般认为, 隐层节点数与求解问题的要求\ 输入输出单元数多少都有直接的关系。对于BP 网络, 参照前人经验, 可以参照以下公式进行设计:n="ni +n0 +a。
式中n 为隐层节点数ni 为输入节点数n0 为输出节点数手盯a 为1- 10 之间的常数。
(4) 输出结点定义
人工神经网络输出结点数为1, 取股价变化趋势的阈值a=0 选的一段时间涨跌的平均值预测步长k=1。输出结点Y(t)
定义如下: Y(t)=0 时, 预测股价在t+1 开始的单日涨幅或跌幅不超过a, 即预计处于下跌趋势Y(t)=1 时预计股价在t+1 开始的单日内处于上涨趋势, 上升幅度累计超过a。
(5) 网络的其它参数确定
隐层结点数为6, 结点作用函数为S 函数, 即f(s)= 11+e- s学习系数为0.7。学习时要求输出误差d≤0.1。预测时输出层的输出大于0.5 判为1小于或等于0.5 判为0。
三、程序解析
1、进入窗口程序窗口看
(1)“点击进入”按钮
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObjecthandle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handlesstructure with handles and user data (see GUIDATA)
yucexianchang
set(gupiaoyuce,'Visible','off')
(2)“退出”按钮
% --- Executes on button press in exit_pushbutton.
function exit_pushbutton_Callback(hObject, eventdata, handles)
% hObjecthandle to exit_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handlesstructure with handles and user data (see GUIDATA)
Close
2、股票预测窗口
模拟功能:
模拟
绘图
(1)“模拟”按钮CallBack函数
% --- Executes on button press in moni_pushbutton.
function moni_pushbutton_Callback(hObject, eventdata, handles)
% hObject handle to moni_pushbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global PD ED PW EW%全局变量
danwei=get(handles.danwei_popupmenu,'Value')
xiangmu=get(handles.xiangmu_popupmenu,'Value')
danweishu=str2num(get(handles.danweishu_edit,'String'))
jingdu=str2num(get(handles.jingdu_edit,'String'))
[PD,ED]=yuce_day(danweishu,jingdu)%调用yuce_day.m函数进行预测
[PW,EW]=yuce_week(danweishu,jingdu)%调用yuce_week.m函数进行预测
(2)股票预测核心函数(yuce_day.m)
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轴,选择散点图类型为带平滑线的散点图。
扩展资料:
一、如果用matlab验证股票的收盘价符合对数正态分布:
比如(以联想V14十代酷睿笔记本电脑,Windows10为例)先导入数据,然后取收盘价的对数值即y=ln(y)
clcclear
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% 对于长期投资形式的股票投资,其投资收益的确认有两种方法:
一种是成本法,即按被投资企业发放的股利确定为投资企业的投资收益。
另一种方法是权益法,指投资企业所投股份在被投资企业中占到一定比例,可以对它具有控制、共同控制或重大影响时,应采用权益法进行核算。
这样:
x=[1 3 5 6 8 9 10 11 12 14 15 17 19 21 23 25]
y=[10 20 42 60 73 79 80 78 73 64 56 71 51 42 41 40]
plot(x,y,'ro')
p=polyfit(x,y,4)%于是拟合碰液高出的曲线就是p(1)x^4+p(2)x^3+p(3)x^2+p(4)x+p(5),想拟合成其它次数的多项式只需将4改为相应的次数即可
f=poly2sym(p)
xinterp=[2 4 7 13 16 18 20 22 24]
yinterp=subs(f,xinterp)
hold on
plot(xinterp,yinterp,'o')
ezplot(f,[0,30])
扩展资料:注意事项埋岩
函数命令为:
a=polyfit(x,y,m) % x,y为对应的自变量,m为需要拟合的最高次幂
y=polyval(a,x) %根据拟合的函数得出x对应的因变量的值
函数表达形式为:f(x)=a1*x^m+...+am*x+a_m+1
polyfit(x,y,n)其中:x, y为已知数据点笑尺向量, 分别表示横、纵坐标,n为拟合多项式的次数, 结果返回m次拟合多项式系数, 从高次到低次存放在向量p中.参数p为拟合多项式 y=a1x^n+...+anx+a,共n+1个系数。
示例:
%多项式拟合
x = (0: 0.1: 7)'
y = sin(x)
p = polyfit(x,y,3) %p为拟合后的多项式系数
z=polyval(p,x)
plot(x,y,'r',x,z,'b')
其中p为拟合后的多项式系数,运行结果为:
p =0.0736 -0.7095 1.5250 -0.0296
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)