本發(fā)明涉及股票數(shù)據(jù)挖掘技術(shù)領(lǐng)域,尤其是涉及一種基于預(yù)定義模式匹配的股票推薦選股方法。
背景技術(shù):
隨著數(shù)據(jù)庫技術(shù)的成熟與信息技術(shù)的普及,相關(guān)行業(yè)的數(shù)據(jù)規(guī)模急劇膨脹。專家系統(tǒng)、人工智能和機(jī)器學(xué)習(xí)等知識發(fā)現(xiàn)技術(shù)的發(fā)展,使得“從海量數(shù)據(jù)中提取或識別有效的、新穎的、潛在有用的并最終可理解的模式”成為可能。
近年來,在數(shù)據(jù)極為豐富的金融領(lǐng)域,一些分析方法隨著股市的產(chǎn)生和發(fā)展逐步完善起來,如:道氏分析法、K線圖分析法、點(diǎn)數(shù)圖分析法、移動平均法、還有形態(tài)分析法、趨勢分析法、角度分析法、神秘級數(shù)與黃金分割比螺旋歷法、四度空間法等。然而,這些方法僅僅是分析手段,還不能直接預(yù)測股市的動態(tài)。
隨著時(shí)間的推移及存儲技術(shù)的發(fā)展,越來越多的股票交易數(shù)據(jù)被存儲下來。在海量的股票交易數(shù)據(jù)中往往隱藏了許多有用的信息,由此促進(jìn)了數(shù)據(jù)挖掘技術(shù)在股票分析領(lǐng)域中的應(yīng)用。股票數(shù)據(jù)挖掘的方法,如神經(jīng)網(wǎng)絡(luò)、進(jìn)化算法、模糊邏輯、粗糙集、支持向量機(jī)等,正在得到越來越廣泛的研究與應(yīng)用。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明公開了一種基于預(yù)定義模式匹配的股票推薦選股方法。方法的基本思想是首先預(yù)先定義模式,如反L型、大V型的股票走勢模式,然后將定義的模式與所有股票的近期走勢進(jìn)行匹配搜索;為了更好的匹配走勢而非具體漲跌幅,方法需要對所有股票數(shù)據(jù)進(jìn)行基準(zhǔn)收盤價(jià)的計(jì)算預(yù)處理,同時(shí)匹配時(shí)需要將參與匹配的基準(zhǔn)收盤價(jià)規(guī)范到[0,1]區(qū)間,之后使用動態(tài)時(shí)間規(guī)整方法進(jìn)行非對稱的動態(tài)匹配;將匹配結(jié)果值進(jìn)行從小到大排序后,獲取數(shù)值最小的前T個(gè)股票作為推薦的候選股票。
本發(fā)明方法是一種選股方法,可根據(jù)用戶的偏好模式給予推薦最相似走勢的股票,從而為用戶選股提供決策支持。
本發(fā)明方法的步驟如下:
(1)對每只股票的漲跌幅數(shù)據(jù)預(yù)處理為以某個(gè)時(shí)間點(diǎn)為基準(zhǔn)的基準(zhǔn)收盤價(jià);
(2)預(yù)定義待匹配的模式;
(3)獲取每只股票近期一段時(shí)間的基準(zhǔn)收盤價(jià)數(shù)據(jù);
(4)對近期基準(zhǔn)收盤價(jià)數(shù)據(jù)進(jìn)行規(guī)范化處理;
(5)將待匹配模式與每只股票的近期走勢應(yīng)用動態(tài)時(shí)間規(guī)整方法進(jìn)行非對稱的動態(tài)匹配,得到匹配距離;
(6)在所有的匹配中,獲取模式的強(qiáng)匹配股票列表,作為推薦股票列表。
其中,步驟(1)中對于每只股票,以某個(gè)時(shí)間點(diǎn)作為起點(diǎn),如2005-01-01,截取自該時(shí)間點(diǎn)以來到現(xiàn)今的漲跌幅數(shù)據(jù);然后令起始時(shí)間點(diǎn)的收盤價(jià)以1為基準(zhǔn),后續(xù)時(shí)間點(diǎn)的收盤價(jià)根據(jù)漲跌幅進(jìn)行變換得到,如第二天的漲跌幅為Change2,則第二天的基準(zhǔn)收盤價(jià)為:1*(1+Change2/100); 第三天的的漲跌幅為Change3,則第三天的基準(zhǔn)收盤價(jià)為:1*(1+Change2/100) (1+Change3/100);以此類推,形成該只股票的基準(zhǔn)收盤價(jià)數(shù)組。
其中,步驟(2) 預(yù)定義待匹配的模式,如反L型、大V型等模式。反L型模式是指股票先經(jīng)過一段時(shí)間的低位調(diào)整,而后在近幾天股價(jià)開始急速拉升的走勢形態(tài)。大V型模式是指股票經(jīng)過一段時(shí)間的急速下跌,而后在近幾天股價(jià)突然急速拉起的走勢形態(tài)。如反L型和大V型模式可以定義為:
M反L=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1]
M大V=[1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1]。
其中,步驟(3)中,對于每只股票,從其基準(zhǔn)收盤價(jià)數(shù)組中,獲取近期與預(yù)定義模式等長的L個(gè)交易日的數(shù)據(jù)。
其中,步驟(4)中對每只股票的近期基準(zhǔn)收盤價(jià)數(shù)據(jù)進(jìn)行規(guī)范化處理,這里使用[0,1]區(qū)間的格式化方式。具體為:假設(shè)一個(gè)數(shù)組A,A=[at],t=1,…,L,L為數(shù)組長度,對其[0,1]區(qū)間格式化的過程為:對A數(shù)組中的每個(gè)at進(jìn)行變換,at = (at-Min(A))/(Max(A)-Min(A)),t=1…L。
其中,步驟(5)中將待匹配模式與每只股票的近期走勢進(jìn)行匹配。匹配使用動態(tài)時(shí)間規(guī)整方法,規(guī)整匹配的時(shí)間窗口設(shè)置為2,也就是說進(jìn)行允許有2個(gè)位置偏差的非對稱動態(tài)匹配,通過計(jì)算最短規(guī)整距離后,得到兩個(gè)模式的匹配距離。
其中,步驟(6)是在待匹配模式與所有股票的近期走勢匹配后,對匹配距離進(jìn)行排序,獲取距離最小的T個(gè)值對應(yīng)的股票,構(gòu)成強(qiáng)匹配股票列表,列表股票即為推薦股票。
附圖說明
圖1 是本發(fā)明基于預(yù)定義模式匹配的股票推薦選股方法的流程圖。
圖2 是預(yù)定義模式與股票的近期走勢進(jìn)行非對稱動態(tài)匹配的示意圖。
圖3 是基于本發(fā)明方法輸出的推薦股票列表。
這里預(yù)先定義了長度為30的反L型模式M,具體定義為:
M反L=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1],
然后T的取值為12,獲取得到前12個(gè)最小匹配值對應(yīng)的股票,構(gòu)成強(qiáng)匹配股票列表,輸出后如圖3所示。
圖4是某一股票近期的典型反L型走勢。圖4是在圖3獲得推薦股票列表的基礎(chǔ)上,查看某只推薦股票的近期走勢,如國旅聯(lián)合-600358,所獲得的走勢圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)例,對本發(fā)明進(jìn)行詳細(xì)的描述。
本發(fā)明方法通過預(yù)先定義的模式,在所有股票的近期走勢中進(jìn)行搜索,從而匹配得到相似走勢的股票。
假設(shè)股票列表為S,S=[S1, S2,…,Si,…,Sn],n為股票池中股票的數(shù)量,如中國上市股票的數(shù)量或美國上市股票的數(shù)量。
本發(fā)明方法的模式定義、模式匹配及股票推薦過程的具體步驟如下。
一、股票數(shù)據(jù)預(yù)處理。
對于每只股票,假設(shè)當(dāng)前股票為Si,i=1,…,n 具體預(yù)處理步驟如下。
1.1 對于股票時(shí)間序列Si,以某個(gè)時(shí)間點(diǎn)作為起點(diǎn),如2005-01-01,截取自該時(shí)間點(diǎn)以來到現(xiàn)今的數(shù)據(jù)。
1.2 對Si進(jìn)行如下的處理:令起始時(shí)間點(diǎn)的收盤價(jià)以1為基準(zhǔn),其后續(xù)時(shí)間點(diǎn)的收盤價(jià)根據(jù)漲跌幅進(jìn)行變換得到,如第二天的漲跌幅為Change2,則第二天的基準(zhǔn)收盤價(jià)為:1*(1+Change2/100); 第三天的的漲跌幅為Change3,則第三天的基準(zhǔn)收盤價(jià)為:1*(1+Change2/100) (1+Change3/100);以此類推,形成Si對應(yīng)的基準(zhǔn)收盤價(jià)數(shù)組MyClosei。
對所有股票進(jìn)行預(yù)處理后,最后形成基準(zhǔn)收盤價(jià)二維數(shù)組MyClose,
MyClose=[MyClosei], i=1,…,n。
二、股票模式定義。
該步驟預(yù)先定義模式,如反L型、大V型等模式。
反L型模式是指股票先經(jīng)過一段時(shí)間的低位調(diào)整,而后在近幾天股價(jià)開始急速拉升的走勢形態(tài)。
大V型模式是指股票經(jīng)過一段時(shí)間的急速下跌,而后在近幾天股價(jià)突然急速拉起的走勢形態(tài)。
對于一個(gè)長度為k的模式M,M定義為:M=[m0,…mj…mk],其中j=[0,k]。
為簡化人工設(shè)置模式的過程,模式里面元素mj的取值一般僅取0, 1二種情況,代表低位和高位。
如K=30,反L型和大V型模式可以定義為:
M反L=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1]
M大V=[1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1]
當(dāng)然也可以設(shè)置更為精細(xì)和復(fù)雜的模式,如模式元素mj取值為[0,1]區(qū)間的任意小數(shù)值。
三、待匹配近期股票數(shù)據(jù)的獲取。
根據(jù)預(yù)先定義的模式的長度,從股票基準(zhǔn)收盤價(jià)二維數(shù)組MyClose中獲取待匹配股票數(shù)據(jù)。假設(shè)定義了一個(gè)長度為k的模式M,則從股票列表從獲取近期k個(gè)交易日的數(shù)據(jù),具體為對于每個(gè)數(shù)組MyClosei,截取近期k個(gè)交易日的基準(zhǔn)收盤價(jià)數(shù)據(jù)。為描述方便,最后形成的二維數(shù)組仍記為MyClose=[MyClosei], i=1,…,n,不同的是MyClosei的長度僅為k,具體為:MyClosei= [C0,…Cj…Ck],其中j=[0,k]。
四、股票數(shù)據(jù)格式化。
本步驟進(jìn)一步對上一步驟中獲得的近期基準(zhǔn)收盤價(jià)數(shù)組MyClosei進(jìn)行格式化處理。這里使用[0,1]區(qū)間的格式化。
假設(shè)一個(gè)數(shù)組A,A=[at],t=1,…,L,L為數(shù)組長度,對其[0,1]區(qū)間格式化的過程為:對A數(shù)組中的每個(gè)at進(jìn)行變換,at = (at-Min(A))/(Max(A)-Min(A)),t=1…L
對MyClosei進(jìn)行格式化處理后,仍記為MyClosei。
五、股票模式匹配。
本步驟用預(yù)先定義的模式M與格式化后的股票二維數(shù)組MyClose進(jìn)行匹配,對于MyClose中的每一行元組MyClosei,與其長度同為k的模式M的匹配過程如下。
5.1將M記為X,MyClosei記為Y,其中X,Y長度相等,都為k。
5.2使用動態(tài)時(shí)間規(guī)整方法(Dynamic Time Warping,DTW)進(jìn)行X,Y距離計(jì)算。
由于k的取值一般不會太大,這里規(guī)整匹配的時(shí)間窗口設(shè)置為2,然后以動態(tài)規(guī)劃的方法求兩個(gè)時(shí)間序列X和Y的最短距離Dist(X,Y)。假設(shè)i是X的坐標(biāo),j是Y的坐標(biāo),這里需要尋找一個(gè)規(guī)整路徑W,W必須從W1=(1,1)開始,到WL=(k,k)結(jié)尾,并保證X和Y中的每個(gè)坐標(biāo)都在W中出現(xiàn),同時(shí)i和j必須是單調(diào)增加的。
規(guī)整路徑是距離最短的一個(gè)規(guī)整路徑:
D(i,j) = Distance(i,j)+min[D(i-1,j), D(i,j-1), D(i-1,j-1)]
Distance(i,j)為歐幾里得距離。
最后X和Y的最短規(guī)整距離為:Dist(X,Y) = D(L1,L2)
對股票二維數(shù)組MyClose中的所有元組都與M進(jìn)行匹配,得到與M的匹配距離一維數(shù)組DistM。數(shù)組中每個(gè)元素代表M與MyClosei的距離。
六、獲取模式的強(qiáng)匹配股票列表。
對數(shù)組DistM進(jìn)行從小到大排序,獲取數(shù)值最小的前T個(gè)對應(yīng)的股票,這些股票就構(gòu)成了預(yù)定義模式M的強(qiáng)匹配股票列表。所獲得的T只股票即為推薦的股票。
這里L(fēng)值的取得有以下幾種方法,
a.人為設(shè)定T值大小,如T=10;
b. 根據(jù)數(shù)組DistM的長度設(shè)置一個(gè)百分比值,從而得到T值大小
c. 根據(jù)數(shù)組DistM中距離值的分布,設(shè)置一個(gè)分布的概率,從而得到T值。
綜上所述,本發(fā)明提出了一種基于預(yù)定義模式匹配的股票推薦選股方法。方法通過預(yù)先定義的模式,在所有股票的歷史數(shù)據(jù)中,以非對稱匹配的動態(tài)時(shí)間規(guī)整方法搜索最相似的匹配模式,最后將獲得的強(qiáng)匹配列表作為推薦的股票列表。方法可以為用戶的選股提供決策支持。
本發(fā)明方法同樣可應(yīng)用于證券類具有時(shí)間序列特征的數(shù)據(jù),如基金、期貨等。因此,盡管為說明目的公開了本發(fā)明的具體實(shí)施例和附圖,其目的在于幫助理解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,但是本領(lǐng)域的技術(shù)人員可以理解:在不脫離本發(fā)明及所附的權(quán)力要求的精神和范圍內(nèi),各種替換、變化和修改都是不可能的。因此,本發(fā)明不應(yīng)局限于最佳實(shí)施例和附圖所公開的內(nèi)容。當(dāng)前公開的實(shí)施例在所有方面應(yīng)被理解為說明性的而非對其請求保護(hù)的范圍的限制。