一種基于互聯網公開的大數據預測股票的方法及系統的制作方法
【專利摘要】本發明公開一種基于互聯網公開的大數據預測股票的方法及系統,首先爬取交易日前股票的相關信息;然后利用上步爬取的數據進行特征提取,構造訓練數據集,并使用Group Lasso進行預測模型訓練,所述模型的評價標準為按照每天開盤賣出上個交易日買入的股票,買進當前交易日推薦的股票這樣的操作方式一段時間的收益率;再根據爬取交易日當天的數據構造新的測試集,并使用上步訓練好的預測模型進行預測,得到最終推薦的股票。本發明為量化選股或股票預測提供了新的有用的可靠的信息來源,這些信息的加入結合傳統的信息更加能反映市場,在此基礎上使用機器學習技術得到的股票預測模型更加能夠捕捉市場的內在運行機制,可以有效提高投資人的收益。
【專利說明】
-種基于互聯網公開的大數據預測股票的方法及系統
技術領域
[0001] 本發明設及一種大數據股票預測方法,特別設及一種基于互聯網公開的股民操 作、分析師預測、股民評論、新聞、公告、歷史股價、資金流向、基本面等大數據股票預測方法 及系統。
【背景技術】
[0002] 上世紀70年代W前,股票投資是一種定性的分析,沒有數據應用,而是一口主觀的 藝術。隨著電腦的普及,很多人開始研究驅動股價變化的規律,把傳統基本面研究方法用模 型代替,市盈率、市凈率的概念誕生,量化投資由此興起。
[0003] 從主觀判斷到量化投資,是從藝術轉為科學的過程。上世紀70年代W前一個基本 面研究員只能關注20只到50只股票,覆蓋面很有限。有了量化模型就可W覆蓋所有股票,運 就是一個大的飛躍。此外,隨著計算機處理能力的發展,信息的用量也有一個飛躍變化。過 去看=個指標就夠了,現在看的指標越來越多,做出的預測越來越準確。
[0004] 隨著21世紀的到來,量化投資又遇到了新的瓶頸,就是同質化競爭。各家機構的量 化模型越來越趨同,導致投資結果同漲同跌。"能否在看到報表數據之前,用更大的數據尋 找規律?"運是大數據策略創業者們試圖解決的問題。
[0005] 2013年諾貝爾經濟學獎得主羅伯特.席勒于設計的投資模型至今仍被業內稱道。 在他的模型中,主要參考=個變量:投資項目計劃的現金流、公司資本的估算成本、股票市 場對投資的反應(市場情緒)。他認為,市場本身帶有主觀判斷因素,投資者情緒會影響投資 行為,而投資行為直接影響資產價格。計算機通過分析新聞、研究報告、社交信息、捜索行為 等,借助自然語言處理方法,提取有用的信息;而借助機器學習智能分析,過去量化投資只 能覆蓋幾十個策略,大數據投資則可W覆蓋成千上萬個策略。
[0006] 據此得出傳統的股票預測都是基于股票價格的歷史走勢,資金流向,W及各股票 的市值,市盈率等信息進行股票分析預測。在現在互聯網深度影響諸多傳統行業的情形下, 相比于幾十年前互聯網還沒發明前,乃至于互聯網還沒有運么普及前,除了傳統的那些股 票數據外,互聯網上還有很多關于股票的數據,包括公開數據的股民的實際操作、分析師的 預測、股民的評論、新聞,公告等等信息。運些信息在一定程度上是對當前股市的反應,也會 表現出對未來股市的預期的反應。本發明試圖利用運些新的有用的數據W及傳統的數據利 用自然語言處理、機器學習等技術創造一種大數據股票預測模型。
【發明內容】
:
[0007] 發明目的:針對現有技術中存在的問題,本發明提出一種基于互聯網上公開的股 民和分析師操作行為的大數據量化選股方法及系統,為廣大股民,基金公司等做投資參考。 [000引技術方案:本發明提出一種基于互聯網公開的大數據預測股票的方法,包括如下 步驟:
[0009] 1)爬取交易日前股票的相關信息;
[0010] 具體的爬取方法為:先爬取一些代理IP,而后使用Scrapy框架爬取相關網站的數 據,將數據轉化成json格式后存入Mongo化數據庫中;
[0011] 爬取的具體信息包括雪球網、金羅盤、股吧、鳳凰財經、新浪財經等網站上關于股 票的票的股民的股票操作、分析師的預測、股民評論、新聞、公告,W及每只股票的歷史價格 數據、市值、凈資產收益率、資產收益率、每股收益增長率、流動負債比率、企業價值倍數、凈 利潤同比增長率、股權集中度、自由流通市值W及最近一個月的股價格收益率和波動率。
[0012] 2)利用步驟1爬取的數據進行特征提取,構造訓練數據集,并使用Group Lasso進 行預測模型訓練;
[0013] 構造的訓練數據集:由當前交易日的前一個星期的5個交易日的數據組成,對于運 5個交易日的每個交易日,每只股票由特征和類別組成,其中特征用根據相關信息處理得到 的向量表示,類別為下一個交易日該股票價格是否增漲,如果漲就為1否則為0,運樣便得到 初始訓練矩陣;由于數據存在冗余,該步驟會先過濾掉信息量不足的數據,具體的過濾標準 為:過濾掉爬取的數據中當日股民對股票的操作數低于10次的樣本。
[0014] 表征股票特征的向量的提取方法為:對于股民操作數據,按照股民的上個月收益 率,將股民分為10個組,對每個等級的組提取該組對該股票的前1天、3天、7天、15天、30天 等時間戳中每個時間戳中的買進個數、賣出個數、持倉量、倉位改變量、該組在每個時間戳 的平均收益率等特征;
[0015] 對于分析師預測數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間 戳中每個時間戳中的買進個數、賣出個數等特征;
[0016] 對于股民評論數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳 中每個時間戳中該股票的評論數,各個評論的情感值的均值,方差等特征;
[0017] 對于新聞數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳中每 個時間戳中該股票的新聞個數,各個新聞的情感值的均值,方差等特征;
[0018] 對于公告數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳中每 個時間戳中該股票的公告個數,各個公告中對應的公告關鍵詞庫中的詞出現的次數的總和 等特征;
[0019] 對于歷史股價數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳 中每個時間戳中該股票的開盤價、收盤價、最高價、最低價、與前30日價格的比值、3日線斜 率、7日線斜率、10日線斜率、15日線斜率、30日線斜率等特征;
[0020] 對于資金流向數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳 中每個時間戳中該股票主力資金的流進量和流出量的比值等特征;
[0021] 對于其他信息數據,提取該股票當前的市值、凈資產收益率、資產收益率、每股收 益增長率、流動負債比率、企業價值倍數、凈利潤同比增長率、股權集中度、自由流通市值W 及最近一個月的股價格收益率和波動率等特征;
[0022] 對于股民評論、新聞、公告等文本數據首先基于金融情感詞庫、公告關鍵詞庫兩個 詞庫采用自然語言處理技術對文本進行分詞,再根據文本中出現的金融情感詞計算每條股 民評論、新聞等的情感值,W及公告中相應關鍵詞出現的的次數,金融情感詞庫中列舉了一 些股票情感關鍵詞W及該關鍵詞對應的情感得分,公告關鍵詞庫中列舉了一些和公告相關 的關鍵詞,運兩個詞庫是用過眾包的方式人工標注得到的。
[0023] 由于在特征提取中對于股民操作數據,按照股民的上個月收益率,將股民分為10 個組,在此的每個組相當于一個分組(Group),每個分組內部的特征是有較強的關聯的,而 不同分組之間的特征間的關聯性則沒有那么強,在模型訓練時,希望能對同一個分組內的 特征有整體考慮的因素,在此基礎上使用機器學習中的Group Lasso算法能夠更好的考慮 到運些因素,所W選用Group Lasso算法。
[0024] Group Lasso算法表示如下:
[0025]
[0026] 其中,為模型訓練結果,X為訓練樣本矩陣,Y為樣本的類別向量,Ig表示屬于第g 個Group的特征索引,其中g=l,...,G,%表示屬于第g個Group的特征索引對應的模型訓 練出的權重結果的值。
[0027] 在模型訓練的過程中,利用交叉檢驗的方法,針對每一輪測試集根據預測的概率 降序選取預測概率最高的股票,然后按照每天開盤賣出上個交易日買入的股票,買進當前 交易日推薦的股票運樣的操作方式兩周時間總收益的收益率,W此調節模型的參數。
[0028] 3)爬取交易日當天的數據構造新的測試集,并使用步驟2訓練好的預測模型進行 預測,得到最終推薦的股票。
[0029] 本發明還提出一種基于互聯網公開的大數據預測股票的系統,包括數據爬取存儲 模塊、預測模型訓練模塊和股票預測模塊;其中,數據爬取存儲模塊用于爬取和存儲股票的 相關信息;預測模型訓練模塊利用交易日前爬取的數據構造訓練數據集,并使用Group Lasso訓練預測模型;股票預測模塊,利用交易日當天爬取的數據構造新的測試集,并使用 訓練好的預測模型預測最終推薦的股票。
[0030] 基于互聯網公開數據的大數據預測股票的系統還包括展示模塊,用于將股票預測 結果展示給客戶。
[0031] 有益效果:本發明為量化選股或股票預測提供了新的有用的可靠的信息來源,諸 如股民的操作、分析師的預測、新聞、公告、研報等數據相對于傳統的例如股票的歷史價格、 資金流向等數據是新型的數據來源,運些信息在一定程度上是對當前股市的反應,也會表 現出對未來股市的預期的反應。由于有大量的文本數據,運些數據的實時爬取和分析的難 度比傳統股票數據的爬取和處理要困難,本發明使用Scrapy框架爬蟲和自然語言處理等技 術針對運些類型的數據進行實時爬取和處理,W及和傳統的例如股票的歷史價格、資金流 向等數據的結合更加能反映市場。由于本發明的提取的特征有些部分是按照股民的上個月 收益率,將股民分為多個分組,每個分組內部的特征是有較強的關聯的,而不同分組之間的 特征間的關聯性則沒有那么強,在模型訓練時,我們希望能對同一個分組內的特征有整體 考慮的因素,在此基礎上使用機器學習中的Group Lasso算法能夠更好的考慮到運些因素, 得到的股票預測模型更加能夠捕捉市場的內在運行機制,大大提高了給資者帶來的收益。
【附圖說明】
[0032] 圖1為本發明的股票預測系統的整體架構圖;
[0033] 圖2為本發明的數據爬取存儲模塊的架構圖;
[0034] 圖3為本發明的預測模型訓練模塊的架構圖;
[0035] 圖4為本發明的股票預測預測模塊的架構圖。
【具體實施方式】
[0036] 下面結合具體實施例,進一步闡明本發明,應理解運些實施例僅用于說明本發明 而不用于限制本發明的范圍,在閱讀了本發明之后,本領域技術人員對本發明的各種等價 形式的修改均落于本申請所附權利要求所限定的范圍。
[0037] 圖1為本發明的股票預測系統的整體框架,包括四個模塊,數據爬取存儲模塊、股 票預測模型訓練模塊、股票預測模塊和展示模塊。本發明語言使用Python,數據庫使用 MongodbD
[0038] 數據爬取存儲模塊如圖2所示,爬蟲使用Scrapy框架,Scrapy是一個基于Python開 發的快速、高層次的Web信息抓取系統,主要用于自動訪問相關Web站點并從頁面中提取結 構化的數據。Scrapy使用的是高效的Twisted異步網絡庫來處理網絡通訊,Scrapy整體架構 如圖3所示。
[0039] 在爬蟲中,為了解決諸如雪球網等網站的防爬問題,先爬取一些代理IP,而后使用 Scrapy框架爬取雪球網、金羅盤、股吧、鳳凰財經、新浪財經、巨潮資訊等網站的數據,將數 據轉化成json格式后存入Mongol數據庫中。其中,雪球網中可W爬取到一些股民的操作數 據、股民評論、新聞、公告等數據,金羅盤可W爬取到分析師的預測等數據,股吧可W爬取到 股民評論等數據,鳳凰財經和新浪財經可W爬取到新聞W及股票的歷史價格、資金流向、基 本面等數據,巨潮資訊可W爬取到公告等數據。
[0040] 股票預測模型訓練模塊如圖4所示,先構造機器學習的訓練數據集,訓練數據集由 距離當前交易日的前一個星期的5個交易日的數據組成。對于運5個交易日的每個交易日,A 股2780只股票每只股票由特征和類別組成,其中特征用一個向量表示,該向量有700維左 右,類別為下一個交易日該股票價格是否增漲,如果漲就為1否則為0,運樣可W得到一個5* 2780*701左右的矩陣。運是初始訓練集。
[0041] 表1 700維左右的特征向量的組成
[0042]
[0043]
[0044] 由于有的股票某天爬取的數據不是很多,所W用原有的700維向量描述可能失真, 所W股票預測模型訓練模塊會過濾掉信息量不足的數據,具體的過濾標準可W根據評價準 則進行調節,現階段本發明過濾掉爬取的數據中當日股民對股票的操作數低于10次的樣 本。運樣可W得到過濾后訓練集。
[0045] 接著用機器學習中的Group Lasso算法進行模型訓練,相同類型的統計量為一個 Group。在此和傳統的機器學習問題不同,運里的模型好壞的評價標準不是準確率、Fl等,而 是根據模型每天推薦8只股票、按照每天開盤賣出上個交易日買入的股票,買進當前交易日 推薦的股票運樣的操作方式運段時間的收益率。W此來調節模型的參數。Group Lasso算法 表示如下:
[0046]
[0047] 其中,為模型訓練結果,X為訓練樣本矩陣,Y為樣本的類別向量,Ig表示屬于第g 個Group的特征索引、其中g=l,...,G,供。表示屬于第g個Group的特征索引對應的模型訓 練出的權重結果的值。
[0048] 運樣就得到了大數據股票預測模型,在每個交易日開盤前的10個小時左右,本發 明進行當日模型的訓練。
[0049] 大數據股票預測模型的預測模塊如圖4所示,根據當日爬取的數據提取特征得到 測試數據集,運樣可W得到A股2780只股票的2780條樣本。再按照訓練數據及過濾的方法, 去除掉信息量少的樣本,得到過濾后的測試集。最后使用訓練好的大數據股票預測模型對 過濾后的測試集進行預測,挑選輸出概率最高的8只股票作為下個交易日的推薦股票。
【主權項】
1. 一種基于互聯網公開的大數據預測股票的方法,包括如下步驟: 1) 爬取交易日前股票的相關數據信息; 2) 利用步驟1爬取的數據進行特征提取,構造訓練集,并使用Group Lasso算法進行大 數據股票預測模型的訓練; 3) 爬取交易日當天的數據構造新的測試集,并使用步驟2訓練好的預測模型進行預測, 得到最終推薦的股票。2. 根據權利要求1所述的基于互聯網公開的大數據預測股票的方法,所述步驟1提取股 票信息的方法為:先爬取一些代理IP,而后使用Scrapy框架爬取相關網站的數據,將數據轉 化成Json格式后存入Mongodb數據庫中。3. 根據權利要求1所述的基于互聯網公開的大數據預測股票的方法,所述步驟1爬取的 具體信息包括雪球網、金羅盤、股吧、鳳凰財經、新浪財經等網站上關于股票的股民的股票 操作、分析師的預測、股民評論、新聞、公告,研報以及每只股票的價格歷史數據、市值、凈資 產收益率、資產收益率、每股收益增長率、流動負債比率、企業價值倍數、凈利潤同比增長 率、股權集中度、自由流通市值以及最近一個月的股價格收益率和波動率。4. 根據權利要求1所述的基于互聯網公開的大數據預測股票的方法,所述步驟2會過濾 掉信息量不足的數據,具體的過濾標準為:過濾掉爬取的數據中當日股民對股票的操作數 低于10次的樣本。5. 根據權利要求1所述的基于互聯網公開的大數據預測股票的方法,所述步驟2構造的 訓練數據集由當前交易日的前一個星期的5個交易日的數據組成,對于這5個交易日的每個 交易日,每只股票由特征和類別組成,其中特征用根據相關信息處理得到的向量表示,類別 為下一個交易日該股票價格是否增漲,如果漲就為1否則為〇,這樣便得到初始訓練矩陣。6. 根據權利要求5所述的基于互聯網公開的大數據預測股票的方法,所述表征股票特 征的向量提取方法為: 對于股民操作數據,按照股民的上個月收益率,將股民分為10個組,對每個等級的組提 取該組對該股票的前1天、3天、7天、15天、30天等時間戳中每個時間戳中的買進個數、賣出 個數、持倉量、倉位改變量、該組在每個時間戳的平均收益率等特征; 對于分析師預測數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳中 每個時間戳中的買進個數、賣出個數等特征; 對于股民評論數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳中每 個時間戳中該股票的評論數,各個評論的情感值的均值,方差等特征; 對于新聞數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳中每個時 間戳中該股票的新聞個數,各個新聞的情感值的均值,方差等特征; 對于公告數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳中每個時 間戳中該股票的公告個數,各個公告中對應的公告關鍵詞庫中的詞出現的次數的總和等特 征; 對于歷史股價數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳中每 個時間戳中該股票的開盤價、收盤價、最高價、最低價、與前30日價格的比值、3日線斜率、7 日線斜率、10日線斜率、15日線斜率、30日線斜率等特征; 對于資金流向數據,提取分析師對該股票的前1天、3天、7天、15天、30天等時間戳中每 個時間戳中該股票主力資金的流進量和流出量的比值等特征; 對于其他信息數據,提取該股票當前的市值、凈資產收益率、資產收益率、每股收益增 長率、流動負債比率、企業價值倍數、凈利潤同比增長率、股權集中度、自由流通市值以及最 近一個月的股價格收益率和波動率等特征; 對于股民評論、新聞、公告等文本數據首先基于金融情感詞庫、公告關鍵詞庫兩個詞庫 采用自然語言處理技術對文本進行分詞,再根據文本中出現的金融情感詞計算每條股民評 論、新聞等的情感值,以及公告中相應關鍵詞出現的的次數,金融情感詞庫中列舉了一些股 票情感關鍵詞以及該關鍵詞對應的情感得分,公告關鍵詞庫中列舉了一些和公告相關的關 鍵詞,這兩個詞庫是用過眾包的方式人工標注得到的。7. 根據權利要求6所述的基于互聯網公開的大數據預測股票的方法,由于在特征提取 中對于股民操作數據,按照股民的上個月收益率,將股民分為10個組,在此的每個組相當于 一個分組,每個分組內部的特征是有較強的關聯的,而不同分組之間的特征間的關聯性則 沒有那么強,為了能對同一個分組內的特征有整體的考慮,在此基礎上使用機器學習中的 Group Lasso算法進行預測模型訓練,Group Lasso算法表示如下:其中,為模型訓練結果,X為訓練樣本矩陣,Y為樣本的類別向量,Ig表示屬于第g個 Group的特征索引,其中g=l,...,G,Ai7次示屬于第g個Group的特征索引對應的模型訓練 出的權重結果的值; 在模型訓練的過程中,利用交叉檢驗的方法,針對每一輪測試集根據預測的概率降序 選取預測概率最高的股票,然后按照每天開盤賣出上個交易日買入的股票,買進當前交易 日推薦的股票這樣的操作方式兩周時間總收益的收益率,以此調節模型的參數。8. -種基于互聯網公開的大數據預測股票的系統,包括數據爬取存儲模塊、預測模型 訓練模塊和股票預測模塊;其中,數據爬取存儲模塊用于爬取和存儲股票的相關信息;預測 模型訓練模塊利用交易日前爬取的數據構造訓練數據集,并使用Group Lasso訓練預測模 型;股票預測模塊,利用交易日當天爬取的數據構造新的測試集,并使用訓練好的預測模型 預測最終推薦的股票。9. 根據權利要求8所述的基于互聯網公開的大數據預測股票的系統,還包括展示模塊, 用于將股票預測結果展示給客戶。
【文檔編號】G06Q40/04GK106022522SQ201610338598
【公開日】2016年10月12日
【申請日】2016年5月20日
【發明人】馬健, 俞揚
【申請人】南京大學