







摘要:基于輿情數據的行為金融交易策略,可以為經濟行為主體在市場波動起伏中的投資決策提供一個新的研究視角。本文運用Python對百度指數關鍵詞搜索量的變化趨勢進行數據分析,進而挖掘交易信號的觸發條件及規律,并結合股票市場金融交易數據進行策略收益對比分析,探究輿情交易策略的可行性及有效性。進一步地,為使構建的交易策略具有泛化能力,本文搭建了輿情策略交易信號預測模型,希望能夠通過機器學習算法總結出更高維度的規律,對股票市場漲跌做出預測,輔助人們進行合理的交易決策。
關鍵詞:百度指數;輿情數據;量化交易;機器學習;Python
1.引言
在正式開始正文之前,我們先談談行為金融交易策略,所謂“行為”金融,在于其取自心理學中的行為主義,它與傳統金融交易策略所不同的是,行為金融更注重投資實踐,更貼近人的實際行為,它所要探究的不是長期的趨勢和規律,也不需要設定過多的理論假設,而是從人的行為作為出發點來探究問題。在金融市場上,買什么、賣什么的決策都是由人做出的,與交易有關的市場數據,往往都蘊含著一些復雜的人類決策行為。因此,人類在與互聯網交互過程中所產生的大量輿情數據,可以為市場參與者在市場波動起伏中的投資決策提供一個新的研究視角。例如通過谷歌趨勢(Google Trends)可以獲取不同搜索詞的查詢量以及這些查詢量隨時間變化的聚合信息,國外通過對谷歌趨勢數據進行研究發現,其不僅能夠反映股票市場當前的狀態,而且還能夠預測未來的某些趨勢。基于此,本文旨在通過分析與金融相關的百度指數查詢量的變化,來構建一個大數據輿情交易策略,并嘗試運用邏輯回歸(Logistic Regression)和支持向量機(Support Vector Machine)兩種機器學習模型對股票指數的漲跌進行預測,也希望能夠發現行為數據集在金融交易策略中運用的巨大潛力。
2.策略邏輯及數據分析
我們會發現這樣一個現象,在金融市場出現劇烈波動之后,投資者往往會經歷一段時間的恐慌和焦慮,在進行最終的交易執行之前,他們可能會搜索更多關于市場的信息來印證自己的想法,遵循這一邏輯,再考慮到國內的使用習慣,為了使查詢量數據與國內金融市場關聯程度更大,我決定使用百度指數的查詢量數據來構建交易策略。
2.1研究區間及標的選取
2020年由于受新冠疫情的影響,對經濟領域造成全方位破壞態勢,誘發全球資本市場大幅動蕩,使該段時期的數據與以往數據相比表現出顯著的差異性和異常,故我將策略研究區間選定在2018-2020年一季度,該段區間主要受中美貿易戰影響,國內的金融市場波動較大,通過搜索債務、危機、違約、沖突、信貸、盈利、成長、房地產、利率、貿易戰等與股票市場相關的詞匯發現其查詢量在此期間也存在比較明顯的變化,因此比較適合采用行為金融交易策略,同時為了更好的體現交易策略的有效性,我選取滬深300指數作為本次策略的交易標的,由于市場上存在滬深300股指期貨這一交易品種,其遵循日內交易的雙向交易制度,既可做多亦可做空,可以放大策略的收益率,同時,基于市場真實的交易品種進行探究也有其合理的一面。
2.2策略思想
通過對一系列相關詞匯的分析發現,在所選取的區間段,“債務”作為百度指數的目標詞匯無論在策略的穩定性以及收益率的表現上都有著更加令人滿意的表現,因此本次策略將基于“債務”來展開研究。我將每5天定為一個交易信號判斷周期,通過日交易數據進行策略分析。如果第5日的百度指數“債務”搜索量大于過去4日的百度指數“債務”平均搜索量,則產生買入交易信號,并在下一個交易日做多滬深300指數;如果第5日的百度指數“債務”搜索量小于過去4日的百度指數“債務”平均搜索量,則產生賣出交易信號,并在下一個交易日做空滬深300指數。每一交易均只持倉一天,并于每日日終進行平倉。可能有人會認為“債務”作為一個偏負面的詞匯,第5日搜索量大于過去4日平均搜索量卻產生做多交易信號與人們所理解的交易邏輯不符,這主要是因為考慮到輿情數據的變動往往滯后于股票市場,當股票市場發生波動后人們出于對風險及交易執行方面的考慮會加大對其變動原因的研判進而加大對相關信息的搜索,而當相關消息基本被市場所吸收后,由于超額調整或者過度反應造成的價格影響則可能會迎來反彈或者重新調整,正是出于上述考慮采取了上文所提到的策略邏輯。
2.3數據整理及交易信號產生
為了對上述策略進行量化分析,首先需要獲取滬深300指數日線行情數據及百度指數“債務”關鍵詞搜索頻次加權指數。本文中策略結果驗證所用滬深300指數日數據均通過Python中Tushare庫調取獲得,百度指數搜索頻次加權指數則通過關鍵詞搜索趨勢圖獲得,如圖2-3-1所示即為“債務”搜索趨勢圖。在數據分析及及機器學習模型預測我也將通過Python來實現。
獲取滬深300指數基礎數據及“債務”搜索頻次數據后,還需要根據基本變量生成衍生變量,并在此基礎上按照策略邏輯產生交易信號。首先通過百度指數“債務”搜索頻次計算出4日的“債務”指數均線數據,然后將其均值與第5日的“債務”搜索頻次進行比較,當前4日搜索頻次均值小于當日“債務”搜索頻次則產生“1”的交易信號,即為做多,做出這樣的設定主要是便于后續策略收益率的計算,反之,則將交易信號設置為“-1”,至于策略邏輯在前文策略思想中已對此作出解釋,此處不再贅述。由于4日的均線數據至少需要4個數據才可獲得,故最開始4天的均值數據無法計算存在缺失,如表2-3-1所示為前10天的數據,其中前4天的交易信號直接設置為“0”。
2.4收益率計算及可視化
為了驗證策略的有效性,我以買入并持有滬深300指數策略作為對照組,來判斷基于百度指數的投資策略累計收益表現是否可以“跑贏”滬深300指數。
在本文中,我假設每日的交易均可以以當日的開盤價開倉,以當日的收盤價進行平倉。策略的每日收益率是通過當日的開盤價與當日的收盤價并考慮上一交易日產生的交易信號計算獲得,這里特別需要強調的是由于當日取得的交易信號是一個事后數據,并不能在當天即開倉交易,故在進行策略收益率計算時需要使用上一交易日的交易信號,其計算方法為:
而買入并持有滬深300指數由于并不需要頻繁交易,故其收益率計算方法為:
最終可以獲得累計收益率,如表2-4-1所示為部分收益率數據計算結果。
我以日期為橫坐標,累計收益率為縱坐標,繪制出了基于百度指數“債務”作為關鍵詞的輿情交易策略累積收益率與買入并持有滬深300指數累計收益率趨勢對比圖,如圖2-4-1所示,可以明顯的看出,在所選取的研究區間內策略的表現是遠遠優于滬深300指數收益率的,在對收益率數據進一步的分析發現,百度指數輿情策略的最大累計收益率達到了1.6342,其最大回撤為17.36%;而滬深300指數的最大累計收益率僅為1.0740,但其最大回撤卻達到了32.46%,無論從風險還是收益的角度上看,該策略都有比較明顯的優勢,也表明金融市場在受到輿情信息影響而產生較大波動時,基于輿情數據來構建交易策略有其積極的意義,也可以從這一角度展開更加深入的探索。
3.預測模型搭建
為了使上述策略具有泛化能力,希望在前文經驗數據的基礎上,能夠通過機器學習算法總結出更高維度的規律,對指數漲跌做出預測,輔助人們進行合理的交易決策。
3.1模型方法
為了驗證百度指數“債務”輿情數據對于預測滬深300指數漲跌的有效性,我們選取了以下兩種經過檢驗的經典分類模型進行實驗:
Logistic Regression(LR)——邏輯回歸是線性回歸模型為了解決分類問題的一種改進方法,是對廣義線性回歸分析模型的對數表示。受制于其對目標變量的線性可分性要求,LR常常被用作分類模型的基準。
Support Vector Machine(SVM)——支持向量機模型由簡單到復雜分為線性可分支持向量機、線性支持向量機和非線性支持向量機,其主體思想為針對線性可分情況進行分析,對于線性不可分的情況,通過使用非線性映射算法將低維輸入空間線性不可分的樣本轉化為高維特征空間使其線性可分,從而使得高維特征空間采用線性算法對樣本的非線性特征進行線性分析成為可能。
3.2確定特征變量和目標變量
前文策略以5日為一交易信號判斷周期,通過比較前4日百度指數“債務”搜索頻次均值與當日“債務”搜索頻次來確定交易信號,并由此取得了不錯的策略表現。鑒于此,為了使預測模型有著相似的交易信號判斷周期,我將當日的搜索頻次與前4日的搜索頻次作為其特征變量,將交易信號作為預測模型的目標變量。為了獲得預測模型的目標變量,需要將下一交易日的收益率作為當日所預測交易信號的判斷依據,這一點在整個預測模型中尤為重要,我依然假設每日的交易均可以以當日的開盤價開倉,以當日的收盤價進行平倉,由此計算每日收益率,當下一交易日取得正收益時,交易信號為“1”,若下一交易日取得負收益時,則交易信號記為“-1”,如表3-2-1記錄了部分特征變量及目標變量數據。
3.3模型訓練及搭建
提取完特征變量后,需要將研究區間的537組完整數據拆分為訓練集和測試集。顧名思義,訓練集用于訓練一個模型,而測試集則用于檢驗該模型的效果。通常會根據樣本量的大小來劃分訓練集和測試集。當樣本量大時,可以劃分多一點比例的數據給訓練集。由于現有樣本只有537組,并不算多,所以按8:2的比例來劃分訓練集和測試集,即訓練集數量為430組,測試集數量為107組。
劃分了訓練集和測試集之后,運用Python從Scikit-Learn庫中分別引用線性回歸模型中的Logistic Regression模型和支持向量機中的SVC分類模型,通過傳入前面所獲得的訓練集數據進行模型的訓練。之后就可以利用搭建完成的模型進行預測,此時前面劃分的測試集就可以發揮作用了,即利用測試集進行預測并評估模型的預測效果。
3.4模型預測及評估
完成模型的訓練及搭建后,通過把測試集中的數據導入到模型中來進行預測,最終可以獲得交易信號的預測結果。表3-4-1展示了兩種模型最后5組數據的預測結果。為了和實際目標交易信號進行比較分析,我對測試集預測的準確度進行了測算,可以發現LR模型在測試集上的預測準確度為57%,而SVC模型在在測試集上的預測準確度為55%。如圖3-4-1,通過繪制兩種模型在測試集期間的累計收益率與買入并持有滬深300指數累計收益率進行比較發現,雖然通過模型預測交易信號的準確度有待提升,搭建的模型仍存在優化改進的空間,但是從收益率的表現上看依然優于大盤的表現。
4.總結與展望
本文從行為金融的角度出發,以百度指數“債務”關鍵詞作為研究對象展開輿情交易策略探析,通過對2018年1月至2020年3月的百度指數“債務”搜索量變化趨勢進行分析,可以發現百度指數輿情數據不僅能夠從某些方面反映當前的經濟狀況,而且還可以對經濟行為主體未來的行為趨勢提供預測方向。在金融市場處于震蕩期間,短期反轉趨勢出現之前,投資者可能會有一段憂慮逐步加深的過程。當人們處于這種關注時期時,金融市場往往處在股票價格逐步走低的階段,人們為了消除自己的疑慮會更加傾向于收集更多關于市場狀態的信息,可以想象,這種行為的結果可能最終就反映在百度指數中對金融市場相關的關鍵詞的搜索量的增加上。本文也正是基于此構建策略,設置交易操作的觸發信號,并通過邏輯回歸模型和支持向量機模型對交易信號做出預測,最終結果果表明:基于百度指數“債務”關鍵詞的輿情交易策略取得了不錯的收益效果,在收益的穩定性和風險的控制上都要優于同期的指數收益率。
但是本文也存在一些不足,在未來的研究中可以進一步做出改進:(1)本文選取的研究區間較短,且樣本區間內受中美貿易戰影響較大,樣本的選取有其特殊性,可能無法代表大多數一般情況,若是采用以往樣本外數據進行回測,可能無法取得文中穩定的收益,策略的適用性還有待檢驗。(2)由于國內百度指數相較于谷歌趨勢指數發展較晚,在數據的獲取、關鍵詞的統計上仍有提升和改進的空間。(3)在對交易策略進行收益計算時沒有考慮到因交易而產生的交易費用等因素,且交易假設過于強烈,未考慮到實際交易中可能無法達成交易的情況。
本文通過探析搜索量的變化和股票市場價格的變化關系,為人們提供了一個新的量化交易的思路。未來希望能夠從行為金融的角度進一步對經濟行為主體潛在的心理機制進行全面的探究,來解釋究竟出于什么樣的心理導致人們在做出交易執行前會搜索諸如債務之類的詞語。當然,行為數據集(如金融交易數據)與搜索查詢量數據相結合,可能為不同階段的集體決策開辟新的視角,促使我們對社會中復雜集體行為做出更加深入的理解。
參考文獻:
[1]Tobias Preis, Helen Susannah Moat & H. Eugene Stanley.Quantifying Trading Behavior in Financial Markets Using Google Trends[M].Scientific Reports volume 3,Article number: 1684 (2013) .
[2]馮玉茹.配對交易策略在我國A 股市場的研究——基于傳統模型和GARCH模型[D].山東:山東大學,2019.
[3]張劍,王波.基于SVM的滬深300股指期貨量化交易策略[J].數學理論與應用,2017,37(2) :112-121.
[4]王俊杰.量化交易在中國股市的應用[D].南京:南京大學,2013.
[5]王宇韜,房宇亮,肖金鑫.Python金融大數據挖掘與分析全流程詳解[M].北京:機械工業出版社,2019.8.
作者簡介:張冉(1991.8-),男,土家族,碩士研究生在讀,對外經濟貿易大學統計學院在職人員高級課程研修班學員,研究方向:量化金融,行為金融。