導航:首頁 > 源碼編譯 > 基於時序的股票預測演算法

基於時序的股票預測演算法

發布時間:2023-02-06 16:38:57

1. 股票估值演算法具體公式

估值是結合幾個指標估算的,具體操作比較復雜可以往下詳細了解~

開始正文前,這里有一波福利--機構精選的牛股榜單新鮮出爐,走過路過可別錯過【絕密】機構推薦的牛股名單泄露,限時速領!!!

一、估值是什麼

估值就是大概測算一下公司股票所擁有的價值,好比商人在進貨的時候必須計算貨物成本,他們才能算出需要賣多少錢,賣多久才能回本。這和買股票是相同的,用市面上的價格去買這支股票,得多長時間才能真的做到回本賺錢等等。不過股市裡的股票是非常繁雜的,堪比大型超市的東西,根本不知道哪個是便宜的,哪個是好的。但想估算它們的目前價格值不值得買、會不會帶來收益也不是沒有辦法的。

二、怎麼給公司做估值

需要通過很多數據才能判斷估值,在這里為大家寫出三個較為重要的指標:

1、市盈率

公式:市盈率 = 每股價格 / 每股收益 ,在具體分析的時候最好參考一下公司所在行業的平均市盈率。

2、PEG

公式:PEG =PE/(凈利潤增長率*100),當PEG不大於1或更小時,則表示當前股價正常或者說被低估,若是大於1的話則被高估。

3、市凈率

公式:市凈率 = 每股市價 / 每股凈資產,這種估值方式適合大型或者比較穩定的公司。通常市凈率越低,投資價值肯定會更加的高。可若是市凈率跌破1了,說明該公司股價已經跌破凈資產,投資者應當注意,不要被騙。

舉個現實中的例子給大家:福耀玻璃

正如大家都知道的那樣,現在福耀玻璃作為汽車玻璃行業的一家大型龍頭企業,基本上它家生產的玻璃都會為各大汽車品牌所用。目前來說,只有汽車行業能對它的收益造成最大影響,相對來說非常穩定。那麼就從剛剛說的三個標准去估值這家公司究竟怎麼樣!

①市盈率:目前它的股價為47.6元,預測2021年全年每股收益為1.5742元,市盈率=47.6元 / 1.5742元=約30.24。在20~30為正常,明顯如今的股價高了點,但還要看其公司的規模和覆蓋率來評判會更好。



三、估值高低的評判要基於多方面

總是套公式計算,明顯是錯誤選擇!炒股等同於說炒公司的未來收益,盡管公司目前被高估,但是以後也可能會有爆發式的增長,這也是基金經理們更喜歡白馬股的理由。其次,上市公司的所處的行業成長空間和市值成長空間也很重要。當用上方所述當方法來看,很多大銀行絕對被嚴重的小看,但為什麼股價一直上不來呢?最主要是因為它們的成長和市值空間已經接近飽和。更多行業優質分析報告,可以點擊下方鏈接獲取:最新行業研報免費分享,除掉行業還有以下幾點,想知道的就瞧瞧:1、至少要清楚市場的佔有率和競爭率;2、懂得將來的規劃,公司的發展能達到什麼程度。這是我的一些心得體會,希望對大家有益,謝謝!如果實在沒有時間研究得這么深入,可以直接點擊這個鏈接,輸入你看中的股票獲取診股報告!【免費】測一測你的股票當前估值位置?

應答時間:2021-08-24,最新業務變化以文中鏈接內展示的數據為准,請點擊查看

2. 非平穩時間序列可以預測股票走勢嗎

一般把非平穩時間序列轉化為平穩時間序列的方法是取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階的話可以依次類推一下。

3. 求股票估值演算法具體公式

讓人難受的不僅是買錯股票,還有買錯價位的股票,就算再好的公司股票價格都有被高估時候。買到低估的價格除了能到手分紅外,能夠獲取到股票的差價,但是入手到高估的則只能無可奈何當「股東」。巴菲特買股票也經常去估算一家公司股票的價值,避免花高價錢購買。這次說的比較多,那麼公司股票的價值到底是怎麼估算的呢?接下來我就列出幾個重點來好好說一說。正式給大家講之前,先給你們准備了一波福利--機構精選的牛股榜單新鮮出爐,走過路過可別錯過【絕密】機構推薦的牛股名單泄露,限時速領!!!
一、估值是什麼
估值就是對股票的價值進行預估,就像商人在進貨的時候需要計算貨物成本,他們才能算出賣的價錢為多少,需要賣多長時間才可以回本。這等同於我們買股票,用市面上的價格去買這支股票,我要多久才能回本賺錢等等。但股市裡的股票跟大型超市東西一樣琳琅滿目,很難分得清股票好壞以及價格高低。但想估算它們的目前價格值不值得買、會不會帶來收益也不是沒有辦法的。
二、怎麼給公司做估值
判斷估值需要結合很多數據,在這里為大家說說三個較為重要的指標:
1、市盈率
公式:市盈率 = 每股價格 / 每股收益 ,在具體分析的時候最好參照一下公司所在行業的平均市盈率。
2、PEG
公式:PEG =PE/(凈利潤增長率*100),當PEG少於1或越少時,則當前股價正常或被低估,倘若大於1則被高估。
3、市凈率
公式:市凈率 = 每股市價 / 每股凈資產,這種估值方式對於大型或者比較穩定的公司而言是很合適的。一般來說市凈率越低,投資價值就會更高。但假設市凈率跌破1了,也就表示該公司股價已經跌破凈資產,投資者應該對這個十分當心。
給大家舉個現實中的例子:福耀玻璃
每個人都清楚地知道,目前福耀玻璃是汽車玻璃行業巨大的龍頭公司,各大汽車品牌都會用到它家的玻璃。目前來說,會對它的收益造成最大影響還得是汽車行業,從各方面來說比較穩定。那麼,就從剛剛說的三個標准入手來估值這家公司到底如何!
①市盈率:目前它的股價為47.6元,預測2021年全年每股收益為1.5742元,市盈率=47.6元 / 1.5742元=約30.24。在20~30為正常,很顯然,當前股價稍微高了點,但是還要用其公司的規模和覆蓋率來評判會好一些。

三、估值高低的評判要基於多方面
一味套公式計算,明顯是錯誤的選擇!炒股主要是炒公司的未來收益,就算公司當今被高估,也就是可能以後會有爆發式的增長,這也是基金經理們對白馬股更感興趣的理由。其次,上市公司所處的行業成長空間和市值成長空間也起著重要的作用。當用上方所述當方法來看,很多大銀行絕對被嚴重的小看,然而為什麼股價都沒法上升?最主要是由它們的成長和市值空間已經接近飽和導致的。更多行業優質分析報告,可以點擊下方鏈接獲取:最新行業研報免費分享,除去行業還有以下幾個方面,有興趣可以看看:
1、對市場的佔有率和競爭率數值有個大概了解;2、明白將來的長期規劃,公司發展上限如何。這是我的一些心得體會,希望大家能夠從中得到幫助,謝謝!如果實在沒有時間研究得這么深入,可以直接點擊這個鏈接,輸入你看中的股票獲取診股報告!【免費】測一測你的股票當前估值位置?

應答時間:2021-08-26,最新業務變化以文中鏈接內展示的數據為准,請點擊查看

4. 時間序列在股市有哪些應用

時間序列分析在股票市場中的應用
摘要
在現代金融浪潮的推動下,越來越多的人加入到股市,進行投資行為,以期得到豐厚的回報,這極大促進了股票市場的繁榮。而在這種投資行為的背後,越來越多的投資者逐漸意識到股市預測的重要性。
所謂股票預測是指:根據股票現在行情的發展情況地對未來股市發展方向以及漲跌程度的預測行為。這種預測行為只是基於假定的因素為既定的前提條件為基礎的。但是在股票市場中,行情的變化與國家的宏觀經濟發展、法律法規的制定、公司的運營、股民的信心等等都有關聯,因此所謂的預測難於准確預計。
時間序列分析是經濟預測領域研究的重要工具之一,它描述歷史數據隨時間變化的規律,並用於預測經濟數據。在股票市場上,時間序列預測法常用於對股票價格趨勢進行預測,為投資者和股票市場管理管理方提供決策依據。

5. 時間序列分析方法

時間序列是指一組在連續時間上測得的數據,其在數學上的定義是一組向量x(t), t=0,1,2,3,...,其中t表示數據所在的時間點,x(t)是一組按時間順序(測得)排列的隨機變數。包含單個變數的時間序列稱為單變數時間序列,而包含多個變數的時間序列則稱為多變數。

時間序列在很多方面多有涉及到,如天氣預報,每天每個小時的氣溫,股票走勢等等,在商業方面有諸多應用,如:

下面我們將通過一個航班數據來說明如何使用已有的工具來進行時間序列數據預測。常用來處理時間序列的包有三個:

對於基於AR、MA的方法一般需要數據預處理,因此本文分為三部分:

通過簡單的初步處理以及可視化可以幫助我們有效快速的了解數據的分布(以及時間序列的趨勢)。

觀察數據的頻率直方圖以及密度分布圖以洞察數據結構,從下圖可以看出:

使用 statsmodels 對該時間序列進行分解,以了解該時間序列數據的各個部分,每個部分都代表著一種模式類別。借用 statsmodels 序列分解我們可以看到數據的主要趨勢成分、季節成分和殘差成分,這與我們上面的推測相符合。

如果一個時間序列的均值和方差隨著時間變化保持穩定,則可以說這個時間序列是穩定的。

大多數時間序列模型都是在平穩序列的前提下進行建模的。造成這種情況的主要原因是序列可以有許多種(復雜的)非平穩的方式,而平穩性只有一種,更加的易於分析,易於建模。

在直覺上,如果一段時間序列在某一段時間序列內具有特定的行為,那麼將來很可能具有相同的行為。譬如已連續觀察一個星期都是六點出太陽,那麼可以推測明天也是六點出太陽,誤差非常小。

而且,與非平穩序列相比,平穩序列相關的理論更加成熟且易於實現。

一般可以通過以下幾種方式來檢驗序列的平穩性:

如果時間序列是平穩性的,那麼在ACF/PACF中觀測點數據與之前數據點的相關性會急劇下降。

下圖中的圓錐形陰影是置信區間,區間外的數據點說明其與觀測數據本身具有強烈的相關性,這種相關性並非來自於統計波動。

PACF在計算X(t)和X(t-h)的相關性的時候,挖空在(t-h,t)上所有數據點對X(t)的影響,反應的是X(t)和X(t-h)之間真實的相關性(直接相關性)。

從下圖可以看出,數據點的相關性並沒有急劇下降,因此該序列是非平穩的。

如果序列是平穩的,那麼其滑動均值/方差會隨著時間的變化保持穩定。

但是從下圖我們可以看到,隨著時間的推移,均值呈現明顯的上升趨勢,而方差也呈現出波動式上升的趨勢,因此該序列是非平穩的。

一般來講p值小於0.05我們便認為其是顯著性的,可以拒絕零假設。但是這里的p值為0.99明顯是非顯著性的,因此接受零假設,該序列是非平穩的。

從上面的平穩性檢驗我們可以知道該時間序列為非平穩序列。此外,通過上面1.3部分的序列分解我們也可以看到,該序列可分解為3部分:

我們可以使用數據轉換來對那些較大的數據施加更大的懲罰,如取對數、開平方根、立方根、差分等,以達到序列平穩的目的。

滑動平均後數據失去了其原來的特點(波動式上升),這樣損失的信息過多,肯定是無法作為後續模型的輸入的。

差分是常用的將非平穩序列轉換平穩序列的方法。ARIMA中的 'I' 便是指的差分,因此ARIMA是可以對非平穩序列進行處理的,其相當於先將非平穩序列通過差分轉換為平穩序列再來使用ARMA進行建模。

一般差分是用某時刻數值減去上一時刻數值來得到新序列。但這里有一點區別,我們是使用當前時刻數值來減去其對應時刻的滑動均值。

我們來看看剛剛差分的結果怎麼樣。

讓我們稍微總結下我們剛剛的步驟:

通過上面的3步我們成功的將一個非平穩序列轉換成了一個平穩序列。上面使用的是最簡單的滑動均值,下面我們試試指數滑動平均怎麼樣。

上面是最常用的指數滑動平均的定義,但是pandas實現的指數滑動平均好像與這個有一點區別,詳細區別還得去查pandas文檔。

指數滑動均值的效果看起來也很差。我們使用差分+指數滑動平均再來試試吧。

在上面我們通過 取log+(指數)滑動平均+差分 已經成功將非平穩序列轉換為了平穩序列。

下面我們看看,轉換後的平穩序列的各個成分是什麼樣的。不過這里我們使用的是最簡單的差分,當前時刻的值等於原始序列當前時刻的值減去原始序列中上一時刻的值,即: x'(t) = x(t) - x(t-1)。

看起來挺不錯,是個平穩序列的樣子。不過,還是檢驗一下吧。

可以看到,趨勢(Trend)部分已基本被去除,但是季節性(seasonal)部分還是很明顯,而ARIMA是無法對含有seasonal的序列進行建模分析的。

在一開始我們提到了3個包均可以對時間序列進行建模。

為了簡便,這里 pmdarima 和 statsmodels.tsa 直接使用最好的建模方法即SARIMA,該方法在ARIMA的基礎上添加了額外功能,可以擬合seasonal部分以及額外添加的數據。

在使用ARIMA(Autoregressive Integrated Moving Average)模型前,我們先簡單了解下這個模型。這個模型其實可以包括三部分,分別對應著三個參數(p, d, q):

因此ARIMA模型就是將AR和MA模型結合起來然後加上差分,克服了不能處理非平穩序列的問題。但是,需要注意的是,其仍然無法對seasonal進行擬合。

下面開始使用ARIMA來擬合數據。

(1) 先分訓練集和驗證集。需要注意的是這里使用的原始數據來進行建模而非轉換後的數據。

(2)ARIMA一階差分建模並預測

(3)對差分結果進行還原

先手動選擇幾組參數,然後參數搜索找到最佳值。需要注意的是,為了避免過擬合,這里的階數一般不太建議取太大。

可視化看看結果怎麼樣吧。

(6)最後,我們還能對擬合好的模型進行診斷看看結果怎麼樣。

我們主要關心的是確保模型的殘差(resial)部分互不相關,並且呈零均值正態分布。若季節性ARIMA(SARIMA)不滿足這些屬性,則表明它可以進一步改善。模型診斷根據下面的幾個方面來判斷殘差是否符合正態分布:

同樣的,為了方便,我們這里使用 pmdarima 中一個可以自動搜索最佳參數的方法 auto_arima 來進行建模。

一般來說,在實際生活和生產環節中,除了季節項,趨勢項,剩餘項之外,通常還有節假日的效應。所以,在prophet演算法裡面,作者同時考慮了以上四項,即:

上式中,

更多詳細Prophet演算法內容可以參考 Facebook 時間序列預測演算法 Prophet 的研究 。

Prophet演算法就是通過擬合這幾項,然後把它們累加起來得到時間序列的預測值。

Prophet提供了直觀且易於調整的參數:

Prophet對輸入數據有要求:

關於 Prophet 的使用例子可以參考 Prophet example notebooks

下面使用 Prophet 來進行處理數據。

參考:
Facebook 時間序列預測演算法 Prophet 的研究
Prophet example notebooks
auto_arima documentation for selecting best model
數據分析技術:時間序列分析的AR/MA/ARMA/ARIMA模型體系
https://github.com/advaitsave/Introction-to-Time-Series-forecasting-Python
時間序列分析
My First Time Series Comp (Added Prophet)
Prophet官方文檔: https://facebookincubator.github.io

6. 股票未來年度的每股收益怎麼預測有沒有公式的啊

股票未來每股收益是很難預測的,說實在公司里的人也不能預測到下一年收益,只能根據市場總體情況來判斷。

7. 如何在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網路的結構搭建,至於如何把數據處理規范化成網路所需的結構以及把模型預測結果與實際值比較統計的可視化,就需要根據實際情況做調整了。

    8. 怎麼用機器學習模型做時間序列預測

    SVM理論是在統計學習理論的基礎上發展起來的,由於統計學習理論和SVM方法對有限樣本情況下模式識別中的一些根本性的問題進行了系統的理論研究,很大程度上解決了以往的機器學習中模型的選擇與過學習問題、非線性和維數災難、局部極小點問題等。應用SVM進行回歸預測的步驟具體如下:
    1)實驗規模的選取,決定訓練集的數量、測試集的數量,以及兩者的比例;2)預測參數的選取;3)對實驗數據進行規范化處理;4)核函數的確定;5)核函數參數的確定。其中參數的選擇對SVM的性能來說是十分重要的,對於本文的核函數使用RBF核函數,對於RBF核函數,SVM參數包括折衷參數C、核寬度C和不敏感參數E。目前SVM方法的參數、核函數的參數選擇,在國際上都還沒有形成統一的模式,也就是說最優SVM演算法參數選擇還只能是憑借經驗、實驗對比、大范圍的搜尋和交叉檢驗等進行尋優。實際應用中經常為了方便,主觀設定一個較小的正數作為E的取值,本文首先在C和C的一定范圍內取多個值來訓練,定下各個參數取值的大概范圍,然後利用留一法來具體選定參數值
    股價時間序列的SVM模型最高階確定
    股價數據是一個時間序列,從時間序列的特徵分析得知,股價具有時滯、後效性,當天的股價不僅還與當天各種特徵有關,還與前幾天的股價及特徵相關,所以有必要把前幾天的股價和特徵作為自變數來考慮。最高階確定基本原理是從低階開始對系統建模,然後逐步增加模型的階數,並用F檢驗對這些模型進行判別來確定最高階n,這樣才能更客觀反映股票價格的時滯特性。具體操作步驟如下:假定一多輸入單輸出回歸模型有N個樣本、一個因變數(股價)、m- 1個自變數(特徵),由低階到高階遞推地採用SVM模型去擬合系統(這兒的拓階就是把昨天股價當做自變數,對特徵同時拓階),並依次對相鄰兩個SVM模型採用F檢驗的方法判斷模型階次增加是否合適[ 7]。對相鄰兩模型SVM ( n)和SVM ( n+ 1)而言,有統計量Fi為:Fi=QSVR (n)- QSVR( n+1)QSVR (n)1N - m n - (m -1)mi =1,2,,, n(1)它服從自由度分別為m和(N - m n - (m -1) )的F分布,其中QSVR (n)和QSVR( n+1)分別為SVR ( n)和QSVR( n+1)的剩餘離差平方和,若Fi< F(?,m, N-m n- (m-1) ),則SVM (n )模型是合適的;反之,繼續拓展階數。
    前向浮動特徵篩選
    經過上述模型最高階數的確定後,雖然確定了階數為n的SVM模型,即n個特徵,但其中某些特徵對模型的預測精度有不利影響,本文採用基於SVM和留一法的前向浮動特徵特徵篩選演算法選擇對提高預測精度有利影響的特徵。令B= {xj: j=1,2,,, k}表示特徵全集, Am表示由B中的m個特徵組成的特徵子集,評價函數MSE (Am)和MSE (Ai) i =1,2,,, m -1的值都已知。本文採用的前向浮動特徵篩選演算法如下[9]:1)設置m =0, A0為空集,利用前向特徵篩選方法尋找兩個特徵組成特徵子集Am(m =2);2)使用前向特徵篩選方法從未選擇的特徵子集(B -Am)中選擇特徵xm +1,得到子集Am+1;3)如果迭代次數達到預設值則退出,否則執行4);4)選擇特徵子集Am+1中最不重要的特徵。如果xm+1是最不重要的特徵即對任意jXm +1, J (Am +1- xm+1)FJ(Am +1- xj)成立,那麼令m = m +1,返回2) (由於xm+1是最不重要的特徵,所以無需從Am中排除原有的特徵);如果最不重要的特徵是xr( r =1,2,,, m )且MSE (Am+1- xr) < MSE (Am)成立,排除xr,令A'm= Am+1- xr;如果m =2,設置Am= A'm,J (Am) = J (A'm), ,返回2),否則轉向步驟5);5)在特徵子集A'm中尋找最不重要的特徵xs,如果MSE (A'm- xs)EM SE (Am-1),那麼設置Am= A'm, MSE (Am)= MSE (A'm),返回2);如果M SE (A'm- xs) < M SE (Am -1),那麼A'm從中排除xs,得到A'm-1= Am- xs,令m = m -1;如果m =2,設置Am= A'm, MSE (Am) = MSE (A'm)返回2),否則轉向5)。最後選擇的特徵用於後續建模預測。
    預測評價指標及參比模型
    訓練結果評估階段是對訓練得出的模型推廣能力進行驗證,所謂推廣能力是指經訓練後的模型對未在訓練集中出現的樣本做出正確反應的能力。為了評價本文模型的優劣,選擇BPANN、多變數自回歸時間序列模型( CAR)和沒有進行拓階和特徵篩選的SVM作為參比模型。採用均方誤差(mean squared error, MSE)和平均絕對誤差百分率(mean ab-solute percentage error, MAPE)作為評價指標。MSE和MAP定義如下:M SE=E(yi- y^i)2n( 2)MAPE=E| yi- y^i| /yin( 3)其中yi為真值, y^i為預測值, n為預測樣本數。如果得出M SE, MAPE結果較小,則說明該評估模型的推廣能力強,或泛化能力強,否則就說明其推廣能力較差

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

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

    10. 預測股票的方法有幾種

    1、股票價格的預測要綜合考慮多種因素,比如公司的基本面、日K線、周K線、月K線、成交量、各種技術指標等等。股票買了就漲是許多人夢寐以求的事情,其實,盤中判斷股價會不會拉升並不是「可『想』不可求」的事情,是通過長期看盤、操盤實踐可以達到或者部分達到的境界。其中一個重要方法是「結合技術形態研判量能變化」,尤其是研判有無增量資金。
    2、股票預測公式和方法是:
    如果當天量能盤中預測結果明顯大於上一天的量能,增量達到一倍以上,出現增量資金的可能性較大。股票預測首先要預測全天可能出現的成交量。公式是(240分鍾÷前市9:30分到看盤時為止的分鍾數)×已有成交量(成交股數)。使用這個公式時要注意:
    (1)往往時間越是靠前,離開9:30分越近,越是偏大於當天的實際成交量。
    (2)一般採用前15分鍾、30分鍾、45分鍾等三個時段的成交量來預測全天的成交量。過早則失真,因為開盤不久成交偏大偏密集;過晚則失去了預測的意義。

    閱讀全文

    與基於時序的股票預測演算法相關的資料

    熱點內容
    進程序員公司能穿涼鞋嗎 瀏覽:245
    PDF框大小 瀏覽:84
    單片機產生鋸齒波 瀏覽:225
    如何修改ie代理伺服器 瀏覽:417
    折紙手工解壓玩具不用a4紙 瀏覽:485
    怎麼雙向傳輸伺服器 瀏覽:286
    電腦如何實現跨網段訪問伺服器 瀏覽:549
    模塊化網頁源碼位元組跳動 瀏覽:485
    梯度下降演算法中遇到的問題 瀏覽:605
    伺服器連接電視怎麼接 瀏覽:323
    phploop語句 瀏覽:502
    交叉編譯工具鏈里的庫在哪 瀏覽:781
    安卓手q換號怎麼改綁 瀏覽:399
    nba球星加密貨幣 瀏覽:789
    命令看網速 瀏覽:124
    java堆分配 瀏覽:161
    linuxbuiltin 瀏覽:560
    cstpdf 瀏覽:941
    texstudio編譯在哪 瀏覽:353
    國家反詐中心app注冊登記表怎麼注冊 瀏覽:972