一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法和系統(tǒng),該方法在數(shù)據(jù)庫(kù)中為每一支股票建立一張表,存儲(chǔ)該支股票信息,從網(wǎng)上獲取股票數(shù)據(jù)并存入數(shù)據(jù)庫(kù);從數(shù)據(jù)庫(kù)獲取每支股票的收盤(pán)價(jià)存入數(shù)組,利用sin函數(shù)對(duì)數(shù)據(jù)進(jìn)行擬合;根據(jù)擬合得到的函數(shù)的極值點(diǎn)對(duì)數(shù)據(jù)進(jìn)行分類;通過(guò)馬爾科夫預(yù)測(cè)原理進(jìn)行股價(jià)走勢(shì)預(yù)測(cè)。該方法根據(jù)sin擬合算法,對(duì)離散數(shù)據(jù)進(jìn)行擬合,利用擬合出的函數(shù)的極值點(diǎn)和極值對(duì)數(shù)據(jù)進(jìn)行分類,在計(jì)算出各類之間的轉(zhuǎn)移概率之后,利用馬爾科夫預(yù)測(cè)原理進(jìn)行預(yù)測(cè),解決了股價(jià)走勢(shì)預(yù)測(cè)準(zhǔn)確度不高的問(wèn)題。
【專利說(shuō)明】
-種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法和系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法和系統(tǒng),屬于計(jì)算機(jī)應(yīng)用技術(shù) 領(lǐng)域。
【背景技術(shù)】
[0002] 根據(jù)歷史股票對(duì)未來(lái)股價(jià)發(fā)展方向W及漲跌程度的預(yù)測(cè)稱為是股價(jià)走勢(shì)預(yù)測(cè)。隨 著國(guó)內(nèi)證券分析技術(shù)和軟件技術(shù)的不斷提升,如今的股票軟件更加的實(shí)用化、功能化,從動(dòng) 態(tài)行情分析,實(shí)時(shí)新聞資訊,智能選股,委托交易等方面做了更深的研究,使得廣大的股民 在基本面分析、技術(shù)面分析,新聞資訊匯集、個(gè)性選股、自動(dòng)選股、自動(dòng)委托交易,止贏止損 等方面獲得更快更全更好的服務(wù),爭(zhēng)取最大程度的贏利。
[0003] 而股票軟件的實(shí)質(zhì)是通過(guò)對(duì)市場(chǎng)信息數(shù)據(jù)的統(tǒng)計(jì),按照一定的分析模型來(lái)給出數(shù) (報(bào)表)、形(指標(biāo)圖形)、文(資訊鏈接),用戶則依照一定的分析理論,來(lái)對(duì)運(yùn)些結(jié)論進(jìn)行解 釋。但是,對(duì)于一些新手來(lái)說(shuō),運(yùn)類軟件呈現(xiàn)的信息較多,較為復(fù)雜,不方便分析。因此需要 一種簡(jiǎn)單快捷的軟件,方便使用并能提供股票漲跌幅概率預(yù)測(cè)。在多種預(yù)測(cè)方法中馬爾科 夫預(yù)測(cè)是一個(gè)對(duì)新手來(lái)說(shuō)比較好的預(yù)測(cè)方法,對(duì)過(guò)程的狀態(tài)預(yù)測(cè)效果良好,馬爾科夫預(yù)測(cè) 原理具有平穩(wěn)性的特性,運(yùn)一特性能有效地保證預(yù)測(cè)結(jié)果的準(zhǔn)確性,適合用于與本發(fā)明類 似的W數(shù)據(jù)為主的股票預(yù)測(cè)。本發(fā)明能滿足上述需求并能解決上述問(wèn)題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明目的在于解決上述現(xiàn)有技術(shù)的不足,提供了一種股價(jià)走勢(shì)預(yù)測(cè)方法,該方 法根據(jù)Sin擬合算法,對(duì)離散數(shù)據(jù)進(jìn)行擬合,利用擬合出的函數(shù)的極值點(diǎn)和極值對(duì)數(shù)據(jù)進(jìn)行 分類,在計(jì)算出各類之間的轉(zhuǎn)移概率之后,利用馬爾科夫預(yù)測(cè)原理進(jìn)行預(yù)測(cè),解決了股價(jià)走 勢(shì)預(yù)測(cè)準(zhǔn)確度不高的問(wèn)題。
[0005] 本發(fā)明解決其技術(shù)問(wèn)題所采取的技術(shù)方案是:本發(fā)明在股價(jià)走勢(shì)預(yù)測(cè)方法上,采 用先擬合,再分類,后預(yù)測(cè)的設(shè)計(jì)思想,先將多個(gè)離散的股價(jià)進(jìn)行擬合,再根據(jù)擬合出的函 數(shù)極值點(diǎn)進(jìn)行數(shù)據(jù)的劃分,通過(guò)計(jì)算相鄰極值點(diǎn)和對(duì)應(yīng)極值差對(duì)該結(jié)果進(jìn)行分類,計(jì)算出 各個(gè)類之間的轉(zhuǎn)移概率,最后利用馬爾科夫預(yù)測(cè)原理進(jìn)行預(yù)測(cè),提高了股價(jià)走勢(shì)預(yù)測(cè)的準(zhǔn) 確度。
[0006] 方法流程:
[0007] 本發(fā)明提供了一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法,該方法在通過(guò)擬合某一支 股票所有的股價(jià)之后,根據(jù)極值點(diǎn)進(jìn)行劃分,再通過(guò)計(jì)算相鄰極值點(diǎn)的差和對(duì)應(yīng)的極值差, 對(duì)該結(jié)果進(jìn)行分類,最后根據(jù)馬爾可夫鏈進(jìn)行預(yù)測(cè),具體包括W下步驟:
[000引步驟1:建立數(shù)據(jù)庫(kù)用于存儲(chǔ)所有股票的數(shù)據(jù),在數(shù)據(jù)庫(kù)中為每一支股票建立一張 表,存儲(chǔ)該支股票信息,包括日期、收盤(pán)價(jià)、漲跌幅、前手價(jià)、開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、成交量 (單位:手)和成交額(單位:千元);
[0009]步驟2:通過(guò)HTML技術(shù)從網(wǎng)上獲取股票信息并存入數(shù)據(jù)庫(kù);
[0010] 步驟3:對(duì)于任一股票,從數(shù)據(jù)庫(kù)獲取該股票的收盤(pán)價(jià)存入數(shù)組stock,利用sin函 數(shù)對(duì)數(shù)據(jù)進(jìn)行擬合;
[0011] 步驟4:根據(jù)擬合得到的函數(shù)的極值點(diǎn)對(duì)數(shù)據(jù)進(jìn)行分類;
[0012] 步驟5:通過(guò)馬爾科夫預(yù)測(cè)原理進(jìn)行股價(jià)走勢(shì)預(yù)測(cè)。
[0013] 進(jìn)一步的,本發(fā)明所述的步驟2中,通過(guò)HTML技術(shù)從網(wǎng)絡(luò)獲取股票信息,最后用SQL 語(yǔ)句將股票信息存入數(shù)據(jù)庫(kù)。
[0014] 進(jìn)一步的,本發(fā)明所述的步驟3中對(duì)數(shù)據(jù)的擬合具體包括W下步驟:
[0015] 步驟3-1:數(shù)據(jù)預(yù)處理;
[0016] 將stock作為因變量,i + 1作為自變量。先通過(guò)循環(huán),找出stock數(shù)組的最大值 (max),最小值(min),再將獲取的收盤(pán)價(jià)做歸一化處理,存入數(shù)組nstock。
[0017] 歸一化公式如下:
[001引
纖
[0019] 步驟3-2:擬合股價(jià)的離散數(shù)據(jù);
[0020] 利用Sin函數(shù)對(duì)離散數(shù)據(jù)做擬合,通過(guò)確定Sin函數(shù)的系數(shù)將離散數(shù)據(jù)連續(xù)化。
[0021] 基于Sin函數(shù)公式對(duì)nstock中數(shù)據(jù)進(jìn)行擬合,得到股票收盤(pán)價(jià)的函數(shù)公式:
[0022]
Pl
[0023] X作為自變量,表示第X天,y作為因變量,表示收盤(pán)價(jià),例如X = 1,即表示第一天的 收盤(pán)價(jià)為7,曰1、61、^為函數(shù)表達(dá)式的系數(shù)。
[0024] 進(jìn)一步的,本發(fā)明所述的步驟4中對(duì)數(shù)據(jù)的分類具體包括W下步驟:
[0025] 步驟4-1:將擬合出的曲線分為多個(gè)階段;
[0026] 計(jì)算曲線的極值點(diǎn),將極值點(diǎn)存入extx數(shù)組,極值點(diǎn)將曲線分為若干段,利用極值 點(diǎn)計(jì)算極值。
[0027] 極值的計(jì)算:根據(jù)在第二步中求出的Sin函數(shù)表達(dá)式,將計(jì)算的極值點(diǎn)代入得到極 值,將極值存入extv數(shù)組。
[00%]步驟4-2:確定曲線上每個(gè)階段的類別;
[0029] 將曲線的走勢(shì)分為五種類別一一上升、下降、微升、微降、持平。計(jì)算相鄰兩個(gè)極值 點(diǎn)對(duì)應(yīng)直線的斜率存入extc數(shù)組,將extc數(shù)組中的每個(gè)元素與設(shè)定的五種類別的闊值比 較,確定各階段的類別。斜率的計(jì)算公式如下:
[0030] (3)
[0031] 日機(jī)¥1_1十1」仰糾1:¥1_1」刀'則巧;^4'日鄰兩個(gè)極值點(diǎn)對(duì)應(yīng)的函數(shù)值,糾1:義[1 + 1]和日又1:又
[i]分別表示相鄰兩個(gè)極值點(diǎn)的值,extc[i]表示相鄰兩個(gè)極值點(diǎn)確定的直線的斜率。
[0032] 本發(fā)明各個(gè)類別的闊值包括:
[0033] 上升:0.05 ~0.1
[0034] 下降:-〇. 1 ~-0.05
[0035] 微升:0.001 ~0.05
[0036] 微降:-0.05~0.001
[0037] 持平:-0.001 ~0.001
[0038] 進(jìn)一步的,本發(fā)明所述的步驟5中,股票走勢(shì)預(yù)測(cè)具體包括W下步驟:
[0039] 步驟5-1:確定上升、下降、持平、微升、微降兩兩之間的轉(zhuǎn)移概率;
[0040] 在股價(jià)分類步驟中已確定了每個(gè)階段的類別,利用所有階段的類別來(lái)得到類別和 類別之間的轉(zhuǎn)移概率,W上升到下降為例,其轉(zhuǎn)移概率計(jì)算公式如下:
[0041]
C 笨)
[0042] times占村將表不上升劍> 降的轉(zhuǎn)移次數(shù),tm_巧表示上升出現(xiàn)的總次數(shù),tp占村碑表 示上升到下降的轉(zhuǎn)移概率。
[0043] 利用該計(jì)算方法計(jì)算所有類別的轉(zhuǎn)移概率。可得到一個(gè)財(cái)5的轉(zhuǎn)移矩陣
[0044]
[0045] 每行和每列分別依次表示上升、下降、微升、微降、持平。
[0046] 將轉(zhuǎn)移矩陣中的數(shù)據(jù)存入ts數(shù)組中。
[0047] 步驟5-2:利用轉(zhuǎn)移概率通過(guò)馬爾科夫預(yù)測(cè)原理做股票預(yù)測(cè);
[004引馬爾科夫預(yù)測(cè)原理:在轉(zhuǎn)移矩陣中存儲(chǔ)了兩兩類別之間的轉(zhuǎn)移概率,通過(guò)第=步 確定當(dāng)前狀態(tài)。在轉(zhuǎn)移矩陣中找到該狀態(tài)所對(duì)應(yīng)的行,找出該行中最大的轉(zhuǎn)移概率,即可得 到下一階段最大可能的類別。
[0049] 本發(fā)明還提供了一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)的股票信息系統(tǒng),該系統(tǒng)包含 顯示股票信息模塊、股票預(yù)測(cè)模塊、更新歷史數(shù)據(jù)模塊和更新股票代碼模塊;
[0050] 顯示股票信息模塊分為顯示單只股票所有歷史數(shù)據(jù)的功能和顯示所有股票最新 數(shù)據(jù)的功能;使用顯示單只股票的所有歷史數(shù)據(jù)的功能時(shí),用戶可W通過(guò)在界面信息輸入 區(qū)域輸入股票代碼或股票名稱,進(jìn)行對(duì)單只股票代碼的所有數(shù)據(jù)的查詢;查詢結(jié)果會(huì)W表 格的形式進(jìn)行顯示;顯示所有股票的最新數(shù)據(jù)時(shí),用戶只要點(diǎn)擊相應(yīng)的按鈕即可,結(jié)果也是 W表格的形式呈現(xiàn);
[0051] 更新歷史數(shù)據(jù)模塊通過(guò)用戶點(diǎn)擊"獲取歷史數(shù)據(jù)"按鈕來(lái)使用,系統(tǒng)會(huì)在后臺(tái)進(jìn)行 歷史數(shù)據(jù)的抓取,抓取完成后,會(huì)有提示對(duì)話框;
[0052] 股票預(yù)測(cè)模塊通過(guò)用戶點(diǎn)擊界面上的"股票預(yù)測(cè)"按鈕來(lái)使用,系統(tǒng)會(huì)根據(jù)預(yù)測(cè)方 法對(duì)該只股票的漲跌幅進(jìn)行預(yù)測(cè),本系統(tǒng)將股票的漲跌情況分為五類,分別是大漲,小漲, 持平,小跌和大跌,股票預(yù)測(cè)功能會(huì)對(duì)運(yùn)五種情況發(fā)生的概率進(jìn)行預(yù)測(cè),并在界面上顯示各 個(gè)狀態(tài)發(fā)生的概率;
[0053] 更新股票代碼模塊通過(guò)用戶點(diǎn)擊界面上的"更新股票代碼"來(lái)實(shí)現(xiàn);用戶使用該功 能后,系統(tǒng)會(huì)根據(jù)網(wǎng)上的現(xiàn)有股票來(lái)更新系統(tǒng)內(nèi)已有的股票,運(yùn)樣在有新入市的股票時(shí),用 戶也會(huì)及時(shí)知曉。
[0化4]有益效果:
[0055] 1、本發(fā)明提出了關(guān)于股價(jià)走勢(shì)預(yù)測(cè)的方法,該方法先將離散股價(jià)進(jìn)行擬合,利用 擬合出的函數(shù)的極值點(diǎn)將所有的收盤(pán)價(jià)劃分為若干階段;再根據(jù)相鄰的極值點(diǎn)和對(duì)應(yīng)極值 的差進(jìn)行分類,運(yùn)樣可W更好地將在一段時(shí)間內(nèi)走勢(shì)相近的收盤(pán)價(jià)歸為一類,對(duì)后期走勢(shì) 預(yù)測(cè)的精度也有一定程度的提高;接著根據(jù)分類結(jié)果計(jì)算轉(zhuǎn)移概率矩陣,最后利用馬爾科 夫預(yù)測(cè)原理進(jìn)行預(yù)測(cè),運(yùn)樣可W提高預(yù)測(cè)的準(zhǔn)確性,并且使預(yù)測(cè)準(zhǔn)確性保持在穩(wěn)定的范圍 內(nèi)。
[0056] 2、本發(fā)明綜合考慮系統(tǒng)運(yùn)行時(shí)間,股價(jià)走勢(shì)預(yù)測(cè)準(zhǔn)確度等方面,利用Sin擬合算 法,對(duì)單支股票的所有收盤(pán)價(jià)進(jìn)行擬合,再根據(jù)擬合出的函數(shù)的極值點(diǎn)對(duì)所有收盤(pán)價(jià)進(jìn)行 劃分,接著根據(jù)極值點(diǎn)的差W及對(duì)應(yīng)極值的差將股價(jià)走勢(shì)分為五類,在計(jì)算出各類之間的 轉(zhuǎn)移概率之后,利用馬爾科夫預(yù)測(cè)原理進(jìn)行預(yù)測(cè)。該方法盡可能減小了系統(tǒng)運(yùn)行時(shí)間,提高 了股價(jià)預(yù)測(cè)的準(zhǔn)確度。
[0057] 3、本發(fā)明的數(shù)據(jù)均從網(wǎng)上獲取,應(yīng)用簡(jiǎn)單,數(shù)據(jù)完整,獲取數(shù)據(jù)較易,方便使用,占 用空間較小,對(duì)數(shù)據(jù)的分類較為精準(zhǔn)。
【附圖說(shuō)明】
[0058] 圖1為本發(fā)明的方法流程圖。
[0059] 圖2為本發(fā)明系統(tǒng)的架構(gòu)圖。
【具體實(shí)施方式】
[0060] 下面結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明創(chuàng)造作進(jìn)一步的詳細(xì)說(shuō)明。
[0061] 本發(fā)明設(shè)及到的相關(guān)標(biāo)記包括:
[0062] stock:存放股價(jià)的數(shù)組;
[0063] nstock:存放預(yù)處理之后股價(jià)的數(shù)組;
[0064] n: stock數(shù)組的長(zhǎng)度;
[0(?日]extx:存放極值點(diǎn)的數(shù)組;
[0066] extv:存放極值的數(shù)組;
[0067] extc:存放相鄰兩個(gè)極值點(diǎn)對(duì)應(yīng)的直線斜率的數(shù)組;
[0068] 1:31:〇。4、]131:〇。4、日別義、糾切、日別(3數(shù)組的下標(biāo),從0開(kāi)始,每次遞增1;
[0069] max: stock數(shù)組的最大元素;
[0070] min: stock數(shù)組的最小元素;
[0071] 化X~j: X到j(luò)的轉(zhuǎn)移概率;
[00巧 1:;[11163、叫:巧1^的轉(zhuǎn)移次數(shù);
[0073] tmx:x出現(xiàn)的總次數(shù);
[0074] ts : 5巧的數(shù)組,用來(lái)存放轉(zhuǎn)移概率;
[0075] 如圖1所示,本發(fā)明提供了一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法,該方法利用 MFC和SQL Server數(shù)據(jù)庫(kù)實(shí)現(xiàn)了股票收盤(pán)價(jià)的抓取和預(yù)測(cè)功能。具體來(lái)說(shuō)本發(fā)明的股價(jià)走 勢(shì)預(yù)測(cè)方法包括W下步驟:
[0076] 步驟1:建立數(shù)據(jù)庫(kù)用于存儲(chǔ)所有股票的數(shù)據(jù),在數(shù)據(jù)庫(kù)中為每一支股票建立一張 表,存儲(chǔ)該支股票信息,包括日期、收盤(pán)價(jià)、漲跌幅、前手價(jià)、開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、成交量 (單位:手)和成交額(單位:千元);
[0077] 步驟2:通過(guò)HTML技術(shù)從網(wǎng)上獲取股票信息并存入數(shù)據(jù)庫(kù);
[0078] 步驟3:對(duì)于任一股票,從數(shù)據(jù)庫(kù)獲取該股票的收盤(pán)價(jià)存入數(shù)組stock,利用Sin函 數(shù)對(duì)數(shù)據(jù)進(jìn)行擬合;其中對(duì)數(shù)據(jù)進(jìn)行擬合包括W下步驟:
[00巧]步驟3-1:數(shù)據(jù)預(yù)處理;
[0080]將stock作為因變量,i + 1作為自變量。先通過(guò)循環(huán),找出stock數(shù)組的最大值 (max),最小值(min),再將獲取的收盤(pán)價(jià)做歸一化處理,存入數(shù)組nstock。
[0081 ] 歸一化公立加下.
[00劇
纖
[0083] 步驟3-2:擬合股價(jià)的離散數(shù)據(jù);
[0084] 利用Sin函數(shù)對(duì)離散數(shù)據(jù)做擬合,通過(guò)確定Sin函數(shù)的系數(shù)將離散數(shù)據(jù)連續(xù)化。
[0085] 基于Sin函數(shù)公式對(duì)nstock中數(shù)據(jù)進(jìn)行擬合,得到股票收盤(pán)價(jià)的函數(shù)公式:
[0086]
鱗
[0087] X作為自變量,表示第X天,y作為因變量,表示收盤(pán)價(jià),例如X=I,即表示第一天的 收盤(pán)價(jià)為y,曰1、bi、Cl為函數(shù)表達(dá)式的系數(shù)。
[0088] 步驟4:根據(jù)擬合得到的函數(shù)的極值點(diǎn)對(duì)數(shù)據(jù)進(jìn)行分類;其中對(duì)數(shù)據(jù)進(jìn)行分類包括 W下步驟:
[0089] 步驟4-1:將擬合出的曲線分為多個(gè)階段;
[0090] 計(jì)算曲線的極值點(diǎn),將極值點(diǎn)存入extx數(shù)組,極值點(diǎn)將曲線分為若干段,利用極值 點(diǎn)計(jì)算極值。
[0091] 極值的計(jì)算:根據(jù)在第二步中求出的Sin函數(shù)表達(dá)式,將計(jì)算的極值點(diǎn)代入得到極 值,將極值存入extv數(shù)組。
[0092] 步驟4-2:確定曲線上每個(gè)階段的類別;
[0093] 將曲線的走勢(shì)分為五種類別一一上升、下降、微升、微降、持平。計(jì)算相鄰兩個(gè)極值 點(diǎn)對(duì)應(yīng)直線的斜率存入extc數(shù)組,將extc數(shù)組中的每個(gè)元素與設(shè)定的五種類別的闊值比 較,確定該階段的類別。斜率的計(jì)算公式如下:
[0094
(3)
[00M] 6義切[1 + 1]和6義1:¥[。分別表示相鄰兩個(gè)極值點(diǎn)對(duì)應(yīng)的函數(shù)值,糾1:義[1 + 1]和6又1:又
[i]分別表示相鄰兩個(gè)極值點(diǎn)的值,extc[i]表示相鄰兩個(gè)極值點(diǎn)確定的直線的斜率。
[0096] 本發(fā)明的各個(gè)類別的闊值包括:
[0097] 上升:0.05 ~0.1 [009引 下降1 ~-0.05
[0099] 微升:0.001 ~0.05
[0100] 微降:-0.05~0.001
[0101] 持平:-0.001 ~0.001
[0102] 步驟5:通過(guò)馬爾科夫預(yù)測(cè)原理進(jìn)行股價(jià)走勢(shì)預(yù)測(cè),其中股票走勢(shì)預(yù)測(cè)主要包括W 下步驟:
[0103] 步驟5-1:確定上升、下降、持平、微升、微降兩兩之間的轉(zhuǎn)移概率;
[0104] 在股價(jià)分類步驟中已確定了每個(gè)階段的類別,利用所有階段的類別來(lái)得到類別和 類別之間的轉(zhuǎn)移概率,W上升到下降的轉(zhuǎn)移概率為例,如下式;
[0105]
試
[0106] times上fK清表示上升到下降的轉(zhuǎn)移次數(shù),tm巧表示上升出現(xiàn)的總次數(shù),tpj51~!碑表 示上升到下降的轉(zhuǎn)移概率。
[0107] 利用該計(jì)算方法計(jì)算所有的轉(zhuǎn)移概率??傻玫揭粋€(gè)5巧的轉(zhuǎn)移矩陣 [010 引
[0109] 每行和每列分別依次表示上升、下降、微升、微降、持平。
[0110] 本發(fā)明將轉(zhuǎn)移矩陣中的數(shù)據(jù)存入ts數(shù)組中。
[0111] 步驟5-2:利用轉(zhuǎn)移概率通過(guò)馬爾科夫預(yù)測(cè)原理做股票預(yù)測(cè);
[0112] 馬爾科夫預(yù)測(cè)原理:在轉(zhuǎn)移矩陣中存儲(chǔ)了兩兩類別之間的轉(zhuǎn)移概率,通過(guò)第=步 確定當(dāng)前階段的狀態(tài)。在轉(zhuǎn)移矩陣中找到該狀態(tài)所對(duì)應(yīng)的行,找出該行中最大的轉(zhuǎn)移概率, 即可得到下一階段最大可能的類別。
[0113] 如圖2所示,本發(fā)明提供了一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)的股票信息系統(tǒng),該 系統(tǒng)包括顯示股票信息模塊、股票預(yù)測(cè)模塊,更新歷史數(shù)據(jù)模塊和更新股票代碼模塊。
[0114] 顯示股票信息模塊的功能分為顯示單只股票所有歷史數(shù)據(jù)的功能和顯示所有股 票最新數(shù)據(jù)的功能。使用顯示單只股票的所有歷史數(shù)據(jù)的功能時(shí),用戶可W通過(guò)在界面信 息輸入?yún)^(qū)域輸入股票代碼或股票名稱,進(jìn)行對(duì)單只股票代碼的所有數(shù)據(jù)的查詢。查詢結(jié)果 會(huì)W表格的形式進(jìn)行顯示。顯示所有股票的最新數(shù)據(jù)時(shí),用戶只要點(diǎn)擊相應(yīng)的按鈕即可,結(jié) 果也是W表格的形式呈現(xiàn)。
[0115] 更新歷史數(shù)據(jù)模塊的功能通過(guò)用戶點(diǎn)擊"獲取歷史數(shù)據(jù)"按鈕來(lái)使用,系統(tǒng)會(huì)在后 臺(tái)進(jìn)行歷史數(shù)據(jù)的抓取,抓取完成后,會(huì)有提示對(duì)話框。
[0116] 股票預(yù)測(cè)模塊的功能通過(guò)用戶點(diǎn)擊界面上的"股票預(yù)測(cè)"按鈕來(lái)使用,系統(tǒng)會(huì)根據(jù) 預(yù)測(cè)方法對(duì)該只股票的漲跌幅進(jìn)行預(yù)測(cè),本系統(tǒng)將股票的漲跌情況分為五類,分別是大漲, 小漲,持平,小跌和大跌,股票預(yù)測(cè)功能會(huì)對(duì)運(yùn)五種情況發(fā)生的概率進(jìn)行預(yù)測(cè),并在界面上 顯示各個(gè)狀態(tài)發(fā)生的概率。
[0117] 更新股票代碼模塊的功能通過(guò)用戶點(diǎn)擊界面上的"更新股票代碼"來(lái)實(shí)現(xiàn)。用戶使 用該功能后,系統(tǒng)會(huì)根據(jù)網(wǎng)上的現(xiàn)有股票來(lái)更新系統(tǒng)內(nèi)已有的股票,運(yùn)樣在有新入市的股 票時(shí),用戶也會(huì)及時(shí)知曉。
[0118] 本發(fā)明系統(tǒng)包括W下幾部分:在數(shù)據(jù)庫(kù)中為每一支股票建立一張表,存儲(chǔ)該支股 票信息,從網(wǎng)上獲取股票數(shù)據(jù)并存入數(shù)據(jù)庫(kù);從數(shù)據(jù)庫(kù)獲取每支股票的收盤(pán)價(jià)存入數(shù)組,利 用Sin函數(shù)對(duì)數(shù)據(jù)進(jìn)行擬合;根據(jù)擬合得到的函數(shù)的極值點(diǎn)對(duì)數(shù)據(jù)進(jìn)行分類;通過(guò)馬爾科夫 預(yù)測(cè)原理進(jìn)行股價(jià)走勢(shì)預(yù)測(cè)。本發(fā)明的數(shù)據(jù)均從網(wǎng)上獲取,應(yīng)用簡(jiǎn)單,數(shù)據(jù)完整,獲取數(shù)據(jù) 較易,方便使用,占用空間較小,對(duì)數(shù)據(jù)的分類較為精準(zhǔn),由于利用馬爾科夫預(yù)測(cè)原理進(jìn)行 預(yù)測(cè),預(yù)測(cè)結(jié)果較為準(zhǔn)確,可W起到一定的指導(dǎo)作用。
【主權(quán)項(xiàng)】
1. 一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法,其特征在于,所述方法包括如下步驟: 步驟1:建立數(shù)據(jù)庫(kù)用于存儲(chǔ)所有股票的數(shù)據(jù),在數(shù)據(jù)庫(kù)中為每一支股票建立一張表, 存儲(chǔ)該支股票信息,包括日期、收盤(pán)價(jià)、漲跌幅、前手價(jià)、開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、成交量和 成交額; 步驟2:通過(guò)HTML技術(shù)從網(wǎng)上獲取股票信息并存入數(shù)據(jù)庫(kù); 步驟3:對(duì)于任一股票,從數(shù)據(jù)庫(kù)獲取該股票的收盤(pán)價(jià)存入數(shù)組stock,利用sin函數(shù)對(duì) 數(shù)據(jù)進(jìn)行擬合; 步驟4:根據(jù)擬合得到的函數(shù)的極值點(diǎn)對(duì)數(shù)據(jù)進(jìn)行分類; 步驟5:通過(guò)馬爾科夫預(yù)測(cè)原理進(jìn)行股價(jià)走勢(shì)預(yù)測(cè)。2. 根據(jù)權(quán)利要求1所述的一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法,其特征在于:所述方 法在通過(guò)擬合某一支股票所有的股價(jià)之后,根據(jù)極值點(diǎn)進(jìn)行劃分,再通過(guò)計(jì)算相鄰極值點(diǎn) 的差和對(duì)應(yīng)的極值差,對(duì)該結(jié)果進(jìn)行分類,最后根據(jù)馬爾可夫鏈進(jìn)行預(yù)測(cè)。3. 根據(jù)權(quán)利要求1所述的一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法,其特征在于:所述步 驟2中,從網(wǎng)上獲取股票數(shù)據(jù)時(shí),通過(guò)HTML技術(shù)抓取存有股票信息的網(wǎng)頁(yè)源代碼并對(duì)源代碼 進(jìn)行篩選的方法獲取股票數(shù)據(jù),最后用SQL語(yǔ)句將數(shù)據(jù)存入數(shù)據(jù)庫(kù)。4. 根據(jù)權(quán)利要求1所述的一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法,其特征在于,所述步 驟3中對(duì)數(shù)據(jù)進(jìn)行擬合包括以下步驟: 步驟3-1:數(shù)據(jù)預(yù)處理; 將stock作為因變量,i + Ι作為自變量,先通過(guò)循環(huán),找出stock數(shù)組的最大值(max),最 小值(min),再將獲取的收盤(pán)價(jià)做歸一化處理,存入數(shù)組nstock; 歸一化公式為:P) 步驟3-2:擬合股價(jià)的離散數(shù)據(jù); 利用sin函數(shù)對(duì)離散數(shù)據(jù)做擬合,通過(guò)確定sin函數(shù)的系數(shù)將離散數(shù)據(jù)連續(xù)化; 基于sin函數(shù)公式對(duì)nstock中數(shù)據(jù)進(jìn)行擬合,得到股票收盤(pán)價(jià)的函數(shù)公式為:PI X作為自變量,表示第X天,y作為因變量,表示收盤(pán)價(jià),例如χ = ?,即表示第一天的收盤(pán) 價(jià)為7^、匕、(^為函數(shù)表達(dá)式的系數(shù)。5. 根據(jù)權(quán)利要求1所述的一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法,其特征在于,所述步 驟4中對(duì)數(shù)據(jù)進(jìn)行分類包括以下步驟: 步驟4-1:將擬合出的曲線分為多個(gè)階段; 計(jì)算曲線的極值點(diǎn),將極值點(diǎn)存入extx數(shù)組,極值點(diǎn)將曲線分為若干段,利用極值點(diǎn)計(jì) 算極值; 極值的計(jì)算:根據(jù)在第二步中求出的s in函數(shù)表達(dá)式,將計(jì)算的極值點(diǎn)代入得到極值, 將極值存入extv數(shù)組; 步驟4-2:確定曲線上每個(gè)階段的類別; 將曲線的走勢(shì)分為五種類別一一上升、下降、微升、微降、持平,計(jì)算相鄰兩個(gè)極值點(diǎn)對(duì) 應(yīng)直線的斜率存入extc數(shù)組,將extc數(shù)組中的每個(gè)元素與設(shè)定的五種類別的閾值比較,確 定該階段的類別,斜率的計(jì)算公式為:(3) extv[i+l]和extv[i]分別表示相鄰兩個(gè)極值點(diǎn)對(duì)應(yīng)的函數(shù)值,extx[i+l]和extx[i]分 別表示相鄰兩個(gè)極值點(diǎn)的值,extc[i]表示相鄰兩個(gè)極值點(diǎn)確定的直線的斜率; 各個(gè)類別的閾值包括: 上升:0.05~0.1; 下降:-0.1 ~-0.05; 微升:0.001 ~0.05; 微降:-0.05~0.001; 持平:-0.001 ~0.001。6. 根據(jù)權(quán)利要求1所述的一種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)方法,其特征在于,所述步 驟5中股價(jià)走勢(shì)預(yù)測(cè)包含以下步驟: 步驟5-1:確定上升、下降、持平、微升、微降兩兩之間的轉(zhuǎn)移概率; 在股價(jià)分類步驟中已確定了每個(gè)階段的類別,利用所有階段的類別來(lái)得到類別和類別 之間的轉(zhuǎn)移概率,以上升到下降的轉(zhuǎn)移概率為例,如下式;(:3) t ;111168_[5^$表示上升到下降的轉(zhuǎn)移次數(shù),表示上升出現(xiàn)的總次數(shù),表示上 升到下降的轉(zhuǎn)移概率; 利用該計(jì)算方法計(jì)算所有的轉(zhuǎn)移概率,得到一個(gè)5*5的轉(zhuǎn)移矩陣,即:每行和每列分別依次表示上升、下降、微升、微降、持平; 將轉(zhuǎn)移矩陣中的數(shù)據(jù)存入ts數(shù)組中; 步驟5-2:利用轉(zhuǎn)移概率通過(guò)馬爾科夫預(yù)測(cè)原理做股票預(yù)測(cè); 馬爾科夫預(yù)測(cè)原理:在轉(zhuǎn)移矩陣中存儲(chǔ)了兩兩類別之間的轉(zhuǎn)移概率,通過(guò)第三步確定 當(dāng)前階段的狀態(tài),在轉(zhuǎn)移矩陣中找到該狀態(tài)所對(duì)應(yīng)的行,找出該行中最大的轉(zhuǎn)移概率,即可 得到下一階段最大可能的類別。7. -種基于馬爾科夫的股價(jià)走勢(shì)預(yù)測(cè)的股票信息系統(tǒng),其特征在于,所述系統(tǒng)包含顯 示股票信息模塊、股票預(yù)測(cè)模塊、更新歷史數(shù)據(jù)模塊和更新股票代碼模塊; 顯示股票信息模塊分為顯示單只股票所有歷史數(shù)據(jù)的功能和顯示所有股票最新數(shù)據(jù) 的功能;使用顯示單只股票的所有歷史數(shù)據(jù)的功能時(shí),用戶可以通過(guò)在界面信息輸入?yún)^(qū)域 輸入股票代碼或股票名稱,進(jìn)行對(duì)單只股票代碼的所有數(shù)據(jù)的查詢;查詢結(jié)果會(huì)以表格的 形式進(jìn)行顯示;顯示所有股票的最新數(shù)據(jù)時(shí),用戶只要點(diǎn)擊相應(yīng)的按鈕即可,結(jié)果也是以表 格的形式呈現(xiàn); 更新歷史數(shù)據(jù)模塊通過(guò)用戶點(diǎn)擊"獲取歷史數(shù)據(jù)"按鈕來(lái)使用,系統(tǒng)會(huì)在后臺(tái)進(jìn)行歷史 數(shù)據(jù)的抓取,抓取完成后,會(huì)有提示對(duì)話框; 股票預(yù)測(cè)模塊通過(guò)用戶點(diǎn)擊界面上的"股票預(yù)測(cè)"按鈕來(lái)使用,所述系統(tǒng)會(huì)根據(jù)預(yù)測(cè)方 法對(duì)該只股票的漲跌幅進(jìn)行預(yù)測(cè),本系統(tǒng)將股票的漲跌情況分為五類,分別是大漲,小漲, 持平,小跌和大跌,股票預(yù)測(cè)功能會(huì)對(duì)這五種情況發(fā)生的概率進(jìn)行預(yù)測(cè),并在界面上顯示各 個(gè)狀態(tài)發(fā)生的概率; 更新股票代碼模塊通過(guò)用戶點(diǎn)擊界面上的"更新股票代碼"來(lái)實(shí)現(xiàn);用戶使用該功能 后,系統(tǒng)會(huì)根據(jù)網(wǎng)上的現(xiàn)有股票來(lái)更新系統(tǒng)內(nèi)已有的股票,這樣在有新入市的股票時(shí),用戶 也會(huì)及時(shí)知曉。
【文檔編號(hào)】G06Q10/04GK105956703SQ201610288546
【公開(kāi)日】2016年9月21日
【申請(qǐng)日】2016年5月5日
【發(fā)明人】周劍, 王煒鵬, 王茸茸, 王浩宇, 肖甫
【申請(qǐng)人】南京郵電大學(xué)