1. 引言
近年来,随着政府对股票市场的大力支持和推动,股票市场的管理机制逐渐完善。与此同时,随着机构、私募以及广大散户投资者的参与逐渐增加,对于股票价格走势的分析与预测变得十分重要。文献 [1] [2] [3] [4] 分别从收盘价、成交量、收益率、股票综合指数等方面对股票价格进行分析与预测。Markov过程是一类重要的随机过程,它的最主要特性是无记忆性,而股票价格的波动具有Markov性,所以可以通过建立股票价格的Markov过程的数学模型,来分析和预测股票价格走势的波动情况。具体做法是:首先收集一段时间的某只股票的收盘数据,用Matlab软件或其它数学软件对收集的股票数据进行适当处理和筛选,计算一步状态转移概率矩阵,在检验该过程具有Markov性的基础上,借助C-K方程,建立Markov预测法的数学模型,对股票价格走势进行预测。同时,利用Markov过程的平稳分布和周期性等方法,对股票的价格周期进行分析预测,将预测结果与真实数据进行对比,检验预测结果与真实市场价格走势的吻合程度。这两种手段对于解决大型周期性的波段操作比较实用有效,适合投资者进行中期和长期的投资使用,为投资者在实际操作中买卖该股票提供一个实际参考。
2. Markov过程的基本概念
2.1. Markov过程定义
定义1 [5]:随机过程
称为Markov链,若它只取有限或可列个值,对任意的
及状态
,有
它表示系统未来所处的状态只与系统现在所处的状态有关,与过去的状态无关,这个性质称为Markov性或无后效性。
2.2. 转移概率
定义2 [5]:条件概率
为Markov链
的一步转移概率,简称转移概率,记
,我们可以将
排列成一个矩阵的形式
称P为转移概率矩阵,一般简称转移矩阵。
有性质
1)
;
2)
。
2.3. n步转移概率C-K方程
定义3 [5]:(n步转移概率) 称条件概率
为Markov链的n步转移概率,相应的称
为n步转移矩阵。
定理1 [5]:(C-K方程)对一切
有
1)
;
2)
。
2.4. 随机变量的马氏性检验方法
要应用马尔可夫链模型分析和解决实际问题,必须检验随机变量序列是否具有“马氏性”。目前绝大多数科技工作者应用各种马尔可夫链预测方法去解决实际问题时忽视了检验“马氏性”这一步骤这是不科学的也是不严谨的。下面给出马氏性检验定理。
定理2 [6]:设所讨论的指标值序列包含m个可能的状态,
用表示指标值序列
中从状态i经过一步转移到达状态j的频数,
。将转移频数矩阵的第j列之和除以各行各列的总和所得的值称为“边际概率”记为
。则统计量
以自由度为
的
分布为极限分布。其中
。且给定显著性水平
,若
则认为
符合马氏性,否则该序列不可作为马尔可夫链来处理。
3. 建立数学模型
3.1. 股价预测
设
是某股票在第
天的收盘价格,其变化只与前一天的股票收盘价格有关,
。在
插入
个分点
,分别记
和
为
,规定
时出现状态i。记
为股票价格从状态i经过一个时间间隔转移到状态j的频数,记
为股票价格从状态
i经过一个时间间隔转移到状态j的概率,
,
表示从状态i经过n步转移到状态j的概率。
得到转移频数和转移概率分别为
股票的价格是随时间变化而变化的随机变量,其变化过程是一个随机过程,股票价格在时刻t下一刻所处的状态只与时刻t所处的状态有关,与时刻t之前所处的状态无关,即具有马氏性。为保证研究数据的严谨,接下来对股价随机变量序列是否具有马氏性做检验,将转移频数矩阵的第j列之和除以各行各列的总和所得的值称为“边际概率”记为
,即
。则统计量
以自由度为
的
分布为极限分布。且给定显著性水平
,查
分布临界值表,若
则认为股票价格符合马氏性,否则不能用Markov过程对股票价格进行预测。
若股票价格符合马氏性,根据C-K方程可知
,P描述了股价从一个状态向另一个状态转移的概率分布状况,故我们可以通过计算
预测n个交易日后的股价。即通过比较
中第i (i为当前股价所处状态)行各值的大小就可以判断n个时间间隔后股价的运行趋势。
3.2. 股价的平稳分布
设
是系统位于状态i的平稳概率,
为系统的平稳分布,若已知一步转移概率矩阵,则
解方程组就可以求出Markov链的平稳分布。
3.3. 股价的运行周期
记
为股票价格由状态i转移到状态j所需的时间,则可推导出公式
,再通过软件求解方程组得到相应的
,进而求得股价的运行周期为
。
4. 应用实例
本文收集上证A股“浦发银行(SH600000)”从2019年4月1日到2019年8月30日共105个交易日的收盘价,将股票划分为5个状态区间,即:
状态1:(11.00, 11.24];2:(11.24, 11.48];3:(11.48, 11.72];4:(11.72, 11.96];5:(11.96, 12.20]。
整理数据得出一步转移频数(表1)。
Table 1. One-step transfer frequency table
表1. 一步转移频数表
则
进一步求出一步转移概率矩阵:
由
可求得边际概率见表2。
计算极限分布
见表3。
Table 3. Calculation table of limit distribution
表3. 极限分布计算表
给定显著水平
,查
分布临界值表,得
,由于
,根据定理可知股票价格序列满足马氏性。
根据公式
可以计算出各状态的平稳分布
股价预测:根据一步转移概率矩阵和C-K方程在我们可以选取9月某一天的股价预测后面的股价,例如,选取9月16日的股价11.93预测后面5天的股价(表4)。
讨论股价从状态i首次到达状态j所需的平均交易时间
,由
计算可得
,
,
,
,
同理可得
,
,
,
,
由上述结果,可推断浦发银行在这104个交易日时间内,状态1到状态5需要39.9个交易日,状态5到状态1需要17.6交易日,即大跌到大涨需要39.9个交易日,大涨到大跌需要17.6个交易日,股价完成一个运行周期平均需要
个工作日。
5. 结论
研究股票价格走势的方法有很多,比如主成分分析法、时间序列法、逐步回归法、神经网络法等等。本文利用马尔科夫链,在对股票收盘价格作连续观察的基础上,建立了动态数学模型,在检验该过程具有Markov性的基础上,对股票价格走势及股价运行周期进行了分析和预测,并将部分预测结果和实际收盘价格进行了对比,与实际结果吻合度较好,为投资者选择股票买卖点提供了选择依据。在股票市场受外界因素影响较小的情况下,该模型还是相当有效的。本文的预测方法最方便的一点就是对于初始状态矢量和状态概率转移矩阵的确定,他们在分析预测的过程中保持稳定不变,要注意的是,进行多次或者长期的预测,可能会产生一定误差,如果想解决这个问题,需要依据市场变化及时的调整状态概率转移矩阵,这样才能提高预测结果的可信度。另外,股票价格有时还受到一些外界随机因素的影响,所以模型的结果也只能作为投资者选择的一种参考,股市有风险,投资需谨慎!
基金项目
安徽省教学研究项目资助(2016jyxm0136)。
附录1
股票价格表
分布临界值表:
附录2
1) 状态转移
function [z] = shaixuan(a)
for i=1:105
if a(i)>11&&a(i)<=11.24
x(i)=1;
elseif a(i)>11.24&&a(i)<=11.48
x(i)=2;
elseif a(i)>11.48&&a(i)<=11.72
x(i)=3;
elseif a(i)>11.72&&a(i)<=11.96
x(i)=4;
elseif (i)>11.96&&a(i)<=12.2
x(i)=5;
end;
end;
for i=2:105
z(i)=x(i-1)*10+x(i);
end;
2) 平稳分布
syms x1 x2 x3 x4 x5%定义符号变量,以便后续计算
p=[7/15 8/15 0 0 0;
7/39 22/39 8/39 1/39 1/39;
1/31 9/31 19/31 2/31 0;
0 0 2/14 10/14 2/14;
0 0 2/5 1/5 2/5];
eq1=x1-[x1,x2,x3,x4,x5]*p(:,1);
eq2=x2-[x1,x2,x3,x4,x5]*p(:,2);
eq3=x3-[x1,x2,x3,x4,x5]*p(:,3);
eq4=x4-[x1,x2,x3,x4,x5]*p(:,4);
eq5=x5-[x1,x2,x3,x4,x5]*p(:,5);
eq6=x1+x2+x3+x4+x5-1;
3) 求极限分布
p=[7/15 8/15 0 0 0;
7/39 22/39 8/39 1/39 1/39;
1/31 9/31 19/31 2/31 0;
0 0 2/14 10/14 2/14;
0 0 2/5 1/5 2/5];
f=[7 8 0 0 0;
7 22 8 1 1;
1 9 19 2 0;
0 0 2 10 2;
0 0 2 1 2];
p2=[15/104 39/104 31/104 14/104 5/104];
for i=1:5
for j=1:5
t(i,j)=f(i,j)*log(p(i,j)/p2(j));
end
end
4) 平均转移时间
syms x1 x2 x3 x4 x5%定义符号变量,以便后续计算
p=[7/15 8/15 0 0 0;
7/39 22/39 8/39 1/39 1/39;
1/31 9/31 19/31 2/31 0;
0 0 2/14 10/14 2/14;
0 0 2/5 1/5 2/5];
m=5;
for i=1:5
p(i,m)=0;
end;
eq1=x1-1-[x1,x2,x3,x4,x5]*p(1,:)';
eq2=x2-1-[x1,x2,x3,x4,x5]*p(2,:)';
eq3=x3-1-[x1,x2,x3,x4,x5]*p(3,:)';
eq4=x4-1-[x1,x2,x3,x4,x5]*p(4,:)';
eq5=x5-1-[x1,x2,x3,x4,x5]*p(5,:)';
NOTES
*通讯作者。