如何利用python对股票的走势进行一个判断?
一、问题
当我们拿到沪深股票的所有股票的数据的时候,如何对所有股票的走势,做一个模糊的判断? 当然可以通过画出一个股票的走势图来进行判断。但是问题是,我们不可能画出所有的股票的走势图,然后一一查看。那又有没有方法可以做到我们的需求呢?就是通过某个算法,可以判定某只股票的走势,比如上涨,下跌,或者横盘?
现在只有一个思路,在这里记录一下,具体的代码实现方式,留给后面去做(最近有些忙)。
二、问题转化
在数学中,这个问题其实就是通过历史数据,预测未来数据。因此这个过程的前提是,当前数据是平稳的,也就是我们用来预测的序列是平稳得,即序列的基本特性不发生大的改变。如果历史序列是纯随机过程,也就是特殊的平稳序列,预测也无法进行。因此我们需要分析的数据需要是,平稳的、非随机的序列。我们做的过程就是抽象出历史模型,然后对未来进行预测。具体的方法有一下几类:
1.移动平均(MA)
简单说就是讲某一点前的n期的平均值,作为未来的预测。这里还有加权平均等预测方式。
2.自回归模型(AR)
将时间序列变量当期的实现值作为被解释变数,过去期的历史资料当做解释变数,因此被称为自回归模型。
3.ARMA模型
ARMA模型,将MA模型和AR模型结合起来。
三、ARMA模型的建模过程
我们需要的对象是平稳非白噪声的序列。构建模型大概3个步骤:
1.序列识别。
1)判断是否为平稳序列,如果不是平稳序列,则需要对序列进行变形,使其变为平稳序列。
2)判断是否为白噪声序列,如果是,则结束,白噪声序列无法构建ARMA模型;如果不是白噪声序列,进行下一步。
2.模型识别和估计:通过p和q的值,选出相对最优的模型结构。通过时间序列的自相关函数ACF和偏自相关函数PACF大致决定。
3.模型诊断:对模型残差进行检验,确保其为服从正态分布的白噪声序列。当模型的残差为白噪声是,说明序列的信息,充分提取到模型中。