導航:首頁 > 全球股市 > 時間序列預測股票趨勢

時間序列預測股票趨勢

發布時間: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模型應用於金融等時間序列問題的研究和預測方面,為決策者提供決策指導和幫助。當然,由於金融時間序列的復雜性,很好的模擬還需要更進一步的研究和探討。在後期,將繼續在這方面做出自己的摸索。

    ❾ 對股票收盤價進行時間序列分析,預測其下一個交易日的收盤價,並與實際收盤價格進行對比

    股票投資的分析這么復雜啊,先問問老師有依據這個買股票沒,再回答。

    閱讀全文

    與時間序列預測股票趨勢相關的資料

    熱點內容
    手機上下載什麼股票軟體好用 瀏覽:995
    金洲慈航的股票市值最新排名 瀏覽:471
    st股票質押65折 瀏覽:261
    有股票賬戶怎樣查資金賬戶 瀏覽:769
    雨虹科技股票 瀏覽:720
    科森科技股票價值分析 瀏覽:956
    股票各周期k線區別 瀏覽:593
    如何查詢個人已開的股票賬戶 瀏覽:936
    智能裝備企業股票行情 瀏覽:386
    股票賬戶的銀行卡怎麼解除綁定銀行卡嗎 瀏覽:641
    股票大宗交易賺錢技巧 瀏覽:651
    601005股票每股凈資產 瀏覽:196
    視覺中國的股票行情 瀏覽:933
    健康元股票個股資金流向查詢 瀏覽:925
    浙商證券股票代碼多少 瀏覽:283
    聯行科技股票漲停 瀏覽:310
    股票開戶支持銀行卡嗎 瀏覽:666
    2016股票基金業績排名 瀏覽:720
    中登聯網查股票賬戶 瀏覽:762
    股票st三維 瀏覽:559