导航:首页 > 全球股市 > 时间序列预测股票趋势

时间序列预测股票趋势

发布时间:2022-05-31 14:36:53

❶ 非平稳时间序列可以预测股票走势吗

一般把非平稳时间序列转化为平稳时间序列的方法是取n阶差分法。

比如举个例子,假设xt本身是不平稳的时间序列,如果xt~I(1) ,也就是说x的1阶差分是平稳序列。
那么 xt的1阶差分dxt=x(t)-x(t-1) 就是平稳的序列 这时dt=x(t-1)

如果xt~I(2),就是说xt的2阶差分是平稳序列的话
xt的1n阶差分dxt=x(t)-x(t-1) 这时xt的1阶差分依然不平稳,
那么 对xt的1阶差分再次差分后,
xt的2阶差分ddxt=dxt-dxt(t-1)便是平稳序列 这时dt=-x(t-1)-dxt(t-1)

n阶的话可以依次类推一下。

❷ 在用时间序列分析股票时,如果连续两天收盘价一样,为什么要剔除一天的数据

同一收盘价影响相同

❸ 怎么用excel对股票收盘价进行时间序列分析

最好附上内容

❹ 如何在Python中用LSTM网络进行时间序列预测

时间序列模型

时间序列预测分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征。这是一类相对比较复杂的预测建模问题,和回归分析模型的预测不同,时间序列模型是依赖于事件发生的先后顺序的,同样大小的值改变顺序后输入模型产生的结果是不同的。
举个栗子:根据过去两年某股票的每天的股价数据推测之后一周的股价变化;根据过去2年某店铺每周想消费人数预测下周来店消费的人数等等

RNN 和 LSTM 模型

时间序列模型最常用最强大的的工具就是递归神经网络(recurrent neural network, RNN)。相比与普通神经网络的各计算结果之间相互独立的特点,RNN的每一次隐含层的计算结果都与当前输入以及上一次的隐含层结果相关。通过这种方法,RNN的计算结果便具备了记忆之前几次结果的特点。

典型的RNN网路结构如下:

4. 模型训练和结果预测
将上述数据集按4:1的比例随机拆分为训练集和验证集,这是为了防止过度拟合。训练模型。然后将数据的X列作为参数导入模型便可得到预测值,与实际的Y值相比便可得到该模型的优劣。

实现代码

  • 时间间隔序列格式化成所需的训练集格式

  • import pandas as pdimport numpy as npdef create_interval_dataset(dataset, look_back):

  • """ :param dataset: input array of time intervals :param look_back: each training set feature length :return: convert an array of values into a dataset matrix. """

  • dataX, dataY = [], [] for i in range(len(dataset) - look_back):

  • dataX.append(dataset[i:i+look_back])

  • dataY.append(dataset[i+look_back]) return np.asarray(dataX), np.asarray(dataY)


  • df = pd.read_csv("path-to-your-time-interval-file")

  • dataset_init = np.asarray(df) # if only 1 columndataX, dataY = create_interval_dataset(dataset, lookback=3) # look back if the training set sequence length

  • 这里的输入数据来源是csv文件,如果输入数据是来自数据库的话可以参考这里

  • LSTM网络结构搭建

  • import pandas as pdimport numpy as npimport randomfrom keras.models import Sequential, model_from_jsonfrom keras.layers import Dense, LSTM, Dropoutclass NeuralNetwork():

  • def __init__(self, **kwargs):

  • """ :param **kwargs: output_dim=4: output dimension of LSTM layer; activation_lstm='tanh': activation function for LSTM layers; activation_dense='relu': activation function for Dense layer; activation_last='sigmoid': activation function for last layer; drop_out=0.2: fraction of input units to drop; np_epoch=10, the number of epoches to train the model. epoch is one forward pass and one backward pass of all the training examples; batch_size=32: number of samples per gradient update. The higher the batch size, the more memory space you'll need; loss='mean_square_error': loss function; optimizer='rmsprop' """

  • self.output_dim = kwargs.get('output_dim', 8) self.activation_lstm = kwargs.get('activation_lstm', 'relu') self.activation_dense = kwargs.get('activation_dense', 'relu') self.activation_last = kwargs.get('activation_last', 'softmax') # softmax for multiple output

  • self.dense_layer = kwargs.get('dense_layer', 2) # at least 2 layers

  • self.lstm_layer = kwargs.get('lstm_layer', 2) self.drop_out = kwargs.get('drop_out', 0.2) self.nb_epoch = kwargs.get('nb_epoch', 10) self.batch_size = kwargs.get('batch_size', 100) self.loss = kwargs.get('loss', 'categorical_crossentropy') self.optimizer = kwargs.get('optimizer', 'rmsprop') def NN_model(self, trainX, trainY, testX, testY):

  • """ :param trainX: training data set :param trainY: expect value of training data :param testX: test data set :param testY: epect value of test data :return: model after training """

  • print "Training model is LSTM network!"

  • input_dim = trainX[1].shape[1]

  • output_dim = trainY.shape[1] # one-hot label

  • # print predefined parameters of current model:

  • model = Sequential() # applying a LSTM layer with x dim output and y dim input. Use dropout parameter to avoid overfitting

  • model.add(LSTM(output_dim=self.output_dim,

  • input_dim=input_dim,

  • activation=self.activation_lstm,

  • dropout_U=self.drop_out,

  • return_sequences=True)) for i in range(self.lstm_layer-2):

  • model.add(LSTM(output_dim=self.output_dim,

  • input_dim=self.output_dim,

  • activation=self.activation_lstm,

  • dropout_U=self.drop_out,

  • return_sequences=True)) # argument return_sequences should be false in last lstm layer to avoid input dimension incompatibility with dense layer

  • model.add(LSTM(output_dim=self.output_dim,

  • input_dim=self.output_dim,

  • activation=self.activation_lstm,

  • dropout_U=self.drop_out)) for i in range(self.dense_layer-1):

  • model.add(Dense(output_dim=self.output_dim,

  • activation=self.activation_last))

  • model.add(Dense(output_dim=output_dim,

  • input_dim=self.output_dim,

  • activation=self.activation_last)) # configure the learning process

  • model.compile(loss=self.loss, optimizer=self.optimizer, metrics=['accuracy']) # train the model with fixed number of epoches

  • model.fit(x=trainX, y=trainY, nb_epoch=self.nb_epoch, batch_size=self.batch_size, validation_data=(testX, testY)) # store model to json file

  • model_json = model.to_json() with open(model_path, "w") as json_file:

  • json_file.write(model_json) # store model weights to hdf5 file

  • if model_weight_path: if os.path.exists(model_weight_path):

  • os.remove(model_weight_path)

  • model.save_weights(model_weight_path) # eg: model_weight.h5

  • return model

  • 这里写的只涉及LSTM网络的结构搭建,至于如何把数据处理规范化成网络所需的结构以及把模型预测结果与实际值比较统计的可视化,就需要根据实际情况做调整了。

    ❺ 请股票高手给我解释一下江恩时间序列的奥秘

    一、啥时买,啥时卖?
    A、什么时候买入股票
    1、大盘相对低点时买入股票。一般股民想在最低点买入股票,实际上这是办不到的(即使做到也是偶然的),能做到大盘相对低点,或者说是大盘处于低位,这时入市比较安全。
    2、个股价位处于低位时买入股票。
    3、证券营业部里投资者已稀稀拉拉时买入股票。
    B、买什么股票
    1、买有稳定业绩的绩优股。买股票一定要看准股票业绩。该买的股票业绩要稳定,千万不要买业绩大起大落的股票(业绩大起大落的股票适于炒作,不适于工薪阶层投资)避免股票业绩下降,股价下降,深度套牢,难以解放。
    2、买成长性好的高科技股。这个前提既是高科技又具有成长性,否则,干脆不要买。
    3、与左邻右舍相比较,属于价位相对低的股票。如有几个股票行业性质相同,业绩差不多,盘子基本相同,而其中一只价位偏低,市盈率低,那么这个股票可以介入。
    总之,买股票要再三考虑、分批建仓。当在大盘低迷时,某股票业绩稳定,价位低的股票就可开始分散分批建仓。
    C、什么时候卖出股票
    1、自己设定一个盈利点。如盈利20%出局,假如某一股票10元,该股票涨到12元多一点即可卖出。
    2、自己设定一个止损点。如亏损8-10%卖出。
    3、当大盘进入某一高位时,当证券市场里人头济济时,就应该卖出。
    4、卖出时要果断

    ❻ 时间序列在股市有哪些应用

    时间序列分析在股票市场中的应用
    摘要
    在现代金融浪潮的推动下,越来越多的人加入到股市,进行投资行为,以期得到丰厚的回报,这极大促进了股票市场的繁荣。而在这种投资行为的背后,越来越多的投资者逐渐意识到股市预测的重要性。
    所谓股票预测是指:根据股票现在行情的发展情况地对未来股市发展方向以及涨跌程度的预测行为。这种预测行为只是基于假定的因素为既定的前提条件为基础的。但是在股票市场中,行情的变化与国家的宏观经济发展、法律法规的制定、公司的运营、股民的信心等等都有关联,因此所谓的预测难于准确预计。
    时间序列分析是经济预测领域研究的重要工具之一,它描述历史数据随时间变化的规律,并用于预测经济数据。在股票市场上,时间序列预测法常用于对股票价格趋势进行预测,为投资者和股票市场管理管理方提供决策依据。

    ❼ 应用计量经济学时间序列分析在股票预测上有多大的作用

    作用没有想象中的大,你可以用股票的滞后变量来进行回归分析,滞后2~3期就够了,不过数据必须具体点,最好细分到每季度、每月的上证指数,还有时间上怎么也要十年左右吧!

    我以前在论文附录中做过分析,数据都是自己按季度整理的,挺麻烦的呢,如果需要的话就发给你~

    还有就是,我觉得写关于股票的预测方面的实际用处并不是很大,毕竟股票的影响因素太多,单单的凭借以前的走势而预期太不好了。。我自己也炒股票,就像那些macd、kdj之类的指标根本就起不到太大的作用,如果那个能预期的话,股市岂不就成了提款机了?现在你做的这个就像是那些指标一样,要知道,股市是活的,人是活的,而指标确实死的!说这么多的意思就是股市不是能简单预测的,你做的那个用处不大。。

    如果你想做的话,建议换个题目,我当时的写的是对弗里德曼的货币需求理论在中国市场的分析。你可以写写货币供应量对通货膨胀的时滞性,分析下在我国市场的滞后期大概是多少~数据在国家统计局和中国人民银行都可以找到的,样本空间一定要足够大,在对滞后变量分析时候主要考虑各自的T检验是否通过,一般从通过之后大概就是那个的滞后期!这个比较直接反而有些许用处~
    要是能分析出国家的一般性政策对实体市场的影响就更好了,更有用了~

    呵呵,以上只是自己的建议~有什么其他的问题就给我留言吧~

    ❽ 如何用Arma模型做股票估计

    时间序列分析是经济领域应用研究最广泛的工具之一,它用恰当的模型描述历史数据随时间变化的规律,并分析预测变量值。ARMA模型是一种最常见的重要时间序列模型,被广泛应用到经济领域预测中。给出ARMA模型的模式和实现方法,然后结合具体股票数据揭示股票变换的规律性,并运用ARMA模型对股票价格进行预测。
    选取长江证券股票具体数据进行实证分析
    1.数据选取。
    由于时间序列模型往往需要大样本,所以这里我选取长江证券从09/03/20到09/06/19日开盘价,前后约三个月,共计60个样本,基本满足ARMA建模要求。
    数据来源:大智慧股票分析软件导出的数据(股价趋势图如下)
    从上图可看出有一定的趋势走向,应为非平稳过程,对其取对数lnS,再观察其平稳性。
    2.数据平稳性分析。
    先用EVIEWS生成新序列lnS并用ADF检验其平稳性。
    (1)ADF平稳性检验,首先直接对数据平稳检验,没通过检验,即不平稳。
    可以看出lnS没有通过检验,也是一个非平稳过程,那么我们想到要对其进行差分。
    (2)一阶差分后平稳性检验,ADF检验结果如下,通过1%的显着检验,即数据一阶差分后平稳。
    可以看出差分后,明显看出ADF Test Statistic 为-5.978381绝对值是大于1%的显着水平下的临界值的,所以可以通过平稳性检验。
    3.确定适用模型,并定阶。可以先生成原始数据的一阶差分数据dls,并观测其相关系数AC和偏自相关系数PAC,以确定其是为AR,MA或者是ARMA模型。
    (1)先观测一阶差分数据dls的AC和PAC图。经检验可以看出AC和PAC皆没有明显的截尾性,尝试用ARMA模型,具体的滞后项p,q值还需用AIC和SC具体确定。
    (2)尝试不同模型,根据AIC和SC最小化的原理确定模型ARMA(p,q)。经多轮比较不同ARMA(p,q)模型,可以得出相对应AIC 和 SC的值。
    经过多次比较最终发现ARMA(1,1)过程的AIC和SC都是最小的。最终选取ARIMA(1,1,1)模型作为预测模型。并得出此模型的具体表达式为:
    DLS t = 0.9968020031 DLS (t-1)- 1.164830718 U (t-1) + U t
    4.ARMA模型的检验。选取ARIMA(1,1,1)模型,定阶和做参数估计后,还应对其残差序列进行检验,对其残差的AC和Q统计检验发现其残差自相关基本在0附近,且Q值基本通过检验,残差不明显存在相关,即可认为残差中没有包含太多信息,模型拟合基本符合。
    5.股价预测。利用以上得出的模型,然后对长江证券6月22日、23日、24日股价预测得出预测值并与实际值比较如下。
    有一定的误差,但相比前期的涨跌趋势基本吻合,这里出现第一个误差超出预想的是因为6月22日正好是礼拜一,波动较大,这里正验证了有研究文章用GARCH方法得出的礼拜一波动大的结果。除了礼拜一的误差大点,其他日期的误差皆在接受范围内。
    综上所述,ARMA模型较好的解决了非平稳时间序列的建模问题,可以在时间序列的预测方面有很好的表现。借助EViews软件,可以很方便地将ARMA模型应用于金融等时间序列问题的研究和预测方面,为决策者提供决策指导和帮助。当然,由于金融时间序列的复杂性,很好的模拟还需要更进一步的研究和探讨。在后期,将继续在这方面做出自己的摸索。

    ❾ 对股票收盘价进行时间序列分析,预测其下一个交易日的收盘价,并与实际收盘价格进行对比

    股票投资的分析这么复杂啊,先问问老师有依据这个买股票没,再回答。

    阅读全文

    与时间序列预测股票趋势相关的资料

    热点内容
    手机上下载什么股票软件好用 浏览:996
    金洲慈航的股票市值最新排名 浏览:471
    st股票质押65折 浏览:261
    有股票账户怎样查资金账户 浏览:769
    雨虹科技股票 浏览:721
    科森科技股票价值分析 浏览:957
    股票各周期k线区别 浏览:596
    如何查询个人已开的股票账户 浏览:937
    智能装备企业股票行情 浏览:388
    股票账户的银行卡怎么解除绑定银行卡吗 浏览:642
    股票大宗交易赚钱技巧 浏览:651
    601005股票每股净资产 浏览:197
    视觉中国的股票行情 浏览:933
    健康元股票个股资金流向查询 浏览:926
    浙商证券股票代码多少 浏览:284
    联行科技股票涨停 浏览:311
    股票开户支持银行卡吗 浏览:667
    2016股票基金业绩排名 浏览:721
    中登联网查股票账户 浏览:763
    股票st三维 浏览:559