本發(fā)明涉及股票數(shù)據(jù)挖掘技術領域,尤其是涉及一種基于自相關排序的股票趨勢分析與選股方法。
背景技術:
股票價格的預測一直備受關注,股票市場的高額回報也促使了股票市場預測的發(fā)展,投資者們時刻在關心股市、分析股市、試圖預測股市的發(fā)展趨勢。
股票市場是一個復雜的非線性系統(tǒng),市場受到來自政治、社會、經(jīng)濟、心理等各方面的影響,因而對其運動行為很難建模。但是,正如技術分析所假設的“市場是有趨勢可循的;市場價格反映了一切;歷史往往會重演”,這也就說明盡管復雜,但市場還是隱含著某些規(guī)律性。
股價的歷史軌跡形態(tài)對未來價格趨勢特別是短期趨勢有著重要的預測價值。傳統(tǒng)形態(tài)分析理論往往比較機械,所有股票套用一些相同的形態(tài)模式,或者在識別股價序列形態(tài)往往有一定困難,常常出現(xiàn)因人而異的現(xiàn)象,種種問題都影響了投資的效果。
常用的技術分析方法除了傳統(tǒng)的K線理論、波浪理論、移動平均線理論和技術指標分析等,還有數(shù)據(jù)挖掘和人工智能的方法,如時間序列分析、多元回歸模型、人工神經(jīng)網(wǎng)絡、遺傳算法等。
技術實現(xiàn)要素:
本發(fā)明公開了一種基于自相關排序的股票趨勢分析與選股方法。方法的主要思想是每只股票以近期一段時間的走勢在自身的歷史趨勢線中尋找最相似的走勢,以獲得最佳匹配點和匹配值;在對所有股票進行類似的操作后,對所有的匹配值進行排序比較,得到強自相關股票列表;之后基于此列表,結合股票對應的匹配點之后走勢,形成股票的候選趨勢池;最后基于強自相關股票進行趨勢分析與選股。方法是一種準確率優(yōu)先的選股方法,選股時需要在準確性與漲幅之間進行一個折中。
每只股票有其自身的股性,在自身的歷史數(shù)據(jù)中進行匹配尋找相似的走勢段,所獲得趨勢的股性也是和該股票一致的,股票自相關日期之后的走勢可以很好的作為考察該股票后期走勢的一種參考。
本發(fā)明方法是一種準確性優(yōu)先的股票選股及趨勢分析方法,可為用戶短線操作的選股提供決策支持。
假設股票列表為S,S=[S1, S2,…,Si,…,Sn],n為股票池中股票的數(shù)量,如中國上市股票的數(shù)量或美國上市股票的數(shù)量。本發(fā)明方法的步驟如下:
(1)加載股票數(shù)據(jù)并進行預處理;
(2)對待預測股票進行數(shù)據(jù)分段;
(3)對匹配段區(qū)間格式化并進行動態(tài)時間規(guī)整匹配;
(4)對股票池中的所有股票進行相似處理,獲取每只股票的最佳匹配點和匹配值;
(5)獲取強自相關股票列表,并預先加載構建候選趨勢池;
(6)對股票進行綜合分析并選股。
其中,步驟(1)的加載股票數(shù)據(jù)并進行預處理,具體為:對于每只股票Sm,m=1,…,n ,以某個時間點作為起點,如2005-01-01,截取自該時間點以來到現(xiàn)今的數(shù)據(jù)。令起始時間點的收盤價以1為基準,其后續(xù)時間點的收盤價根據(jù)漲跌幅進行變換得到,如第二天的漲跌幅為Change2,則第二天的基準收盤價為:1*(1+Change2/100); 第三天的漲跌幅為Change3,則第三天的基準收盤價為:1*(1+Change2/100) (1+Change3/100);以此類推。最后形成一個基準收盤價數(shù)組MyClose。
其中,步驟(2)的對待預測股票進行數(shù)據(jù)分段,具體為:將基準收盤價數(shù)組MyClose分成兩段,一段為待預測現(xiàn)狀數(shù)據(jù),另一段為待匹配歷史數(shù)據(jù)。待預測現(xiàn)狀數(shù)據(jù)為數(shù)組MyClose中近L個交易日的基準收盤價數(shù)據(jù),形成一個數(shù)組,記為A,A=[a1,a2,…,ai,…aL];待匹配歷史數(shù)據(jù)為除去近L個交易日的數(shù)據(jù)后的部分,形成另一個數(shù)組,記為B, B=[b1,b2,…,bj,…bk]。同時記錄bj的交易日期,記為另一數(shù)組C, C=[c1,c2,…,cj,…ck]。
其中,步驟(3)的對匹配段區(qū)間格式化并進行動態(tài)時間規(guī)整匹配,具體為:對數(shù)組A和B進行匹配,A的長度為L, B的長度為K, K>=L。匹配過程先對A進行[0-1]區(qū)間的格式化,即ai= (ai-Min(A))/(Max(A)-Min(A)),i=1…L,變換后結果記為A’;而后以步長為1,循環(huán)從B中獲取長度L的數(shù)據(jù),并也進行[0-1]區(qū)間的格式化,每段結果記為B’;然后A’與B’以動態(tài)時間規(guī)整(DTW)的方法進行匹配,匹配的窗口大小設置為2,得到一個匹配值;最后對每個步長獲得的匹配值進行比較,獲取最小匹配值對應的匹配日期,即B’最后一個元素所對應的交易日期,作為自身歷史最相關時間點。
其中,步驟(4)的對股票池中的所有股票進行相似處理,獲取每只股票的最佳匹配點和匹配值,具體為:對股票池中的所有其它股票進行步驟(1)~(3)的類似處理,最終形成最佳匹配二維數(shù)組G,G=[Gi],i=1…n;其中, Gi= [Si股票代碼,自相關日期,匹配值],代表每只股票在自身歷史數(shù)據(jù)環(huán)境下的最佳匹配點,即自相關時間點。
其中,步驟(5)的獲取強自相關股票列表,并預先加載構建候選趨勢池,具體為:對二維數(shù)組G中的匹配值MatchValue從小到大排序,排完序后獲取最小的前N只股票,這些股票即構成強自相關列表H?;趶娮韵嚓P股票列表H,對于H中的每一條記錄Hj,
Hj=[ Sj股票代碼,自相關日期,匹配值],j=[1…N]
獲取股票代碼和自相關日期,而后查詢數(shù)據(jù)庫,直接獲取自相關日期之后30天的走勢數(shù)據(jù),包括每日的漲跌幅、開盤價,收盤價、最高價、最低價和成交量,并將這些數(shù)據(jù)輸出為k線圖圖表。所有的這些走勢圖表形成候選趨勢池。
其中,步驟(6)的對股票進行綜合分析并選股,具體為:按匹配值從小到大順序考察強自相關股票列表,即時展示或提供相應的自相關日期之后的后期走勢,同時提供換手率,成交量,流通值等基本行情信息供用戶參考,用戶根據(jù)查看的股票后期走勢的可能漲跌情況及在強自相關股票列表中的位置綜合考慮選股。
附圖說明
圖1 是本發(fā)明基于自相關排序的股票趨勢分析與選股方法的流程圖。
圖2 是基于本發(fā)明方法輸出的強自相關股票列表結果。具體為2016年11月1日基于本發(fā)明方法輸出的強自相關股票列表?;诒玖斜?,以第一條記錄為例,股票盛洋科技(603703)的自相關日期為2015年6月5日,也就是說,將當前交易日2016年11月1日與自相關日期2015年6月5日進行配準,兩個時間之前20~30交易日的走勢比較相近,而2015年6月5日之后的走勢可以作為2016年11月1日接下來未來交易日的預測。
具體實施方式
下面結合附圖和實例,對本發(fā)明進行詳細的描述。
每只股票有其自身的股性,在自身的歷史數(shù)據(jù)中進行匹配尋找相似的走勢段,所獲得趨勢的股性也是和該股票一致的,股票自相關日期之后的走勢可以很好的作為考察該股票后期走勢的一種參考。
本發(fā)明方法是一種準確性優(yōu)先的股票選股及趨勢分析方法,可為用戶短線操作的選股提供決策支持。
假設股票列表為S,S=[S1, S2,…,Si,…,Sn],n為股票池中股票的數(shù)量,如中國上市股票的數(shù)量或美國上市股票的數(shù)量。本發(fā)明方法的具體步驟如下。
一、加載股票數(shù)據(jù)并進行預處理。
對于每只股票Sm,m=1,…,n ,以某個時間點作為起點,如2005-01-01,截取自該時間點以來到現(xiàn)今的數(shù)據(jù)。令起始時間點的收盤價以1為基準,其后續(xù)時間點的收盤價根據(jù)漲跌幅進行變換得到,如第二天的漲跌幅為Change2,則第二天的基準收盤價為:1*(1+Change2/100); 第三天的漲跌幅為Change3,則第三天的基準收盤價為:1*(1+Change2/100) (1+Change3/100);以此類推。最后形成一個基準收盤價數(shù)組MyClose。
二、對待預測股票進行數(shù)據(jù)分段。
將上述步驟得到的新基準數(shù)據(jù)分成兩段,一段為待預測現(xiàn)狀數(shù)據(jù),另一段為待匹配歷史數(shù)據(jù)。
2.1待預測現(xiàn)狀數(shù)據(jù)的獲取過程為:獲取數(shù)組MyClose中近L個交易日的基準收盤價數(shù)據(jù),形成一個數(shù)組,記為A,A=[a1,a2,…,ai,…aL],其中,ai代表近L-i的交易日的基準收盤價。a0代表當前交易日的基準收盤價。L的取值不宜太小,一般為20或30。
2.2 待匹配歷史數(shù)據(jù)的獲取過程為:對MyClose中的剩余數(shù)據(jù)部分,即除去近L個交易日的數(shù)據(jù)后的部分作為待匹配歷史數(shù)據(jù),形成另一個數(shù)組,記為B, B=[b1,b2,…,bj,…bk],其中,bj代表j位置對應交易日的基準收盤價。同時記錄bj的交易日期,記為另一數(shù)組C, C=[c1,c2,…,cj,…ck],其中,cj代表股票的j位置對應的交易日期。
三、對匹配段區(qū)間格式化并進行動態(tài)時間規(guī)整匹配。
該步驟主要完成待預測現(xiàn)狀數(shù)據(jù)與待匹配歷史數(shù)據(jù)之間的匹配過程,并獲取自身歷史的最相關時間點。匹配過程在A和B展開,A的長度為L, B的長度為K, K>=L,具體匹配過程如下。
3.1設置匹配值MatchValue=正無窮,匹配時間點MatchDate=起點時間點;
3.2 對A進行[0-1]區(qū)間的格式化,ai= (ai-Min(A))/(Max(A)-Min(A)),i=1…L,變換后結果記為A’;
3.3 以步長為1,循環(huán)從B中獲取長度L的數(shù)據(jù),記為Btemp;
3.4 對Btemp進行[0,1]區(qū)間的格式化,結果記為B’;
3.5 A’與B’采用動態(tài)時間歸整(DTW)方法進行匹配,窗口大小設置為2。得到的匹配值記為TempValue;
3.6 將TempValue與MatchValue進行比較,如果TempValue<MatchValue, 則MatchValue = TempValue;同時將MatchDate置為Btemp最后一個元素所對應的匹配日期;
3.7 反復執(zhí)行3.3~3.6步驟,最后得到的匹配日期MatchDate即為歷史最相關時間點;
3.8記錄股票Sm的自相關結果Gm, Gm=[ Sm股票代碼, 自相關日期,匹配值],其中,Gm為一維數(shù)組,自相關日期即上步驟中的MatchDate, 匹配值為MatchValue,自相關日期即為最小匹配值所對應的匹配日期。
四、對股票池中的所有股票進行相似處理,獲取每只股票的最佳匹配點和匹配值。
對股票池中的所有其它股票進行步驟(1)~(3)的類似處理,最終形成最佳匹配二維數(shù)組G,G=[Gi],i=1…n;其中, Gi= [Si股票代碼,自相關日期,匹配值],代表每只股票在自身歷史數(shù)據(jù)環(huán)境下的最佳匹配點,即自相關時間點。
五、獲取強自相關股票列表并預先加載構建候選趨勢池。
5.1 自相關是指股票當前近期的走勢與自身的歷史時間序列片段具有較好的匹配度,也就是走勢形態(tài)比較相似。對二維數(shù)組G中的匹配值MatchValue從小到大排序,排完序后獲取最小的前N只股票,這些股票即構成強自相關列表H。
5.2獲取強匹配股票列表中每只股票的自相關日期之后的后期走勢,并截圖輸出。具體為:基于強自相關股票列表H,對于H中的每一條記錄Hj,
Hj=[ Sj股票代碼,自相關日期,匹配值],j=[1…N],
獲取股票代碼和自相關日期,而后查詢數(shù)據(jù)庫,直接獲取自相關日期之后30天的走勢數(shù)據(jù),包括每日的漲跌幅、開盤價,收盤價、最高價、最低價和成交量,并將這些數(shù)據(jù)輸出為k線圖圖表。所有的這些走勢圖表形成候選趨勢池。
六、對股票進行綜合分析并選股。
該步驟的綜合分析和選股過程由人工參與完成。由于強自相關股票列表中的股票匹配度很好,也就是說,自相關日期之后的走勢都具有較高的準確性,具體進行綜合分析并選股的過程為:按匹配值從小到大順序考察強自相關股票列表,即時展示或提供相應的自相關日期之后的后期走勢,同時提供換手率,成交量,流通值等基本行情信息供用戶參考,用戶根據(jù)查看的股票后期走勢的可能漲跌情況及在強自相關股票列表中的位置綜合考慮選股。在強自相關股票列表中的位置實際上是一種準確性的體現(xiàn),因此需要在后期漲幅與準確性之間進行一個折中,挑選優(yōu)質的股票。
綜上所述,本發(fā)明公開了一種基于自相關排序的股票趨勢分析與選股方法。方法在自身股票的歷史趨勢中進行匹配,獲取最小匹配值和自身歷史最相關的時間點;之后在所有股票中對匹配值進行排序比較,獲取自相關度最高,即準確性好的相似段的后期走勢,基于強自相關列表及其后期走勢進行綜合分析選股。方法是一種準確率優(yōu)先的選股方法,選股時需要在準確性與漲幅之間進行一個折中。
本發(fā)明方法同樣可應用于證券類具有時間序列特征的數(shù)據(jù),如基金、期貨等。因此,盡管為說明目的公開了本發(fā)明的具體實施例和附圖,其目的在于幫助理解本發(fā)明的內容并據(jù)以實施,但是本領域的技術人員可以理解:在不脫離本發(fā)明及所附的權利要求的精神和范圍內,各種替換、變化和修改都是不可能的。因此,本發(fā)明不應局限于最佳實施例和附圖所公開的內容。當前公開的實施例在所有方面應被理解為說明性的而非對其請求保護的范圍的限制。