鄧穎睿
(四川大學計算機學院,成都 610065)
近年來,隨著人工智能的飛速發展,交叉學科的日益深入,一些在其他領域應用的技術不斷地運用在股票預測中,如隨機過程、混淆理論以及小波分析等。這些新方法的引入為股票預測研究注入了強大的動力。目前,人工神經網絡和支持向量機等計算機技術已經成為研究人員和投資者研究股市的重要方法。早在兩百年前,K線圖已用于預測價格方向和市場轉折點[3],通過不斷實踐和總結,形成了較完整的理論體系,但這是一種基于感知的方法,極具主觀因素,沒有清晰的界定。因此,為模仿人腦的不確定性概念判斷和推理思維方式,以解決對界限不清晰的定性知識與經驗難以量化的問題,前人將模糊邏輯使用到金融領域。模糊邏輯是一門建立在多值邏輯基礎上,運用模糊集合的方法來研究模糊性思維、語言形式及其規律的學科。其原理是借助于隸屬度函數概念,區分模糊集合,處理模糊關系,模擬人腦實施規則推理。模糊邏輯為解決此類問題提供了參考,實踐證明應用模糊邏輯確實可以有效增強預測模型乃至交易模型的準確率。
早在2004年,模糊邏輯已經被用來將人類的認知融入到技術模式地中來;2006年首次將模糊邏輯應用于基于K線圖的金融預測領域;隨著神經網絡算法的興起,2016年 Kumar和 Ravi應用神經網絡(Neural Network,NN)、模糊邏輯(Fuzzy Logic)開發技術交易策略[4];2017年Garcia Santesmases在前人基礎上將模糊邏輯應用于K線圖[5],設置模糊規則,用以模糊表達幾種K線圖特殊形態,但這樣依然存在較大主觀性,對金融領域知識要求較高。因此,為進一步降低主觀因素影響,在現有研究的基礎上,本文構建了一個基于模糊K線圖的CNN股指預測模型,對下一周期股指趨勢實現準確預測。
目前我國資本市場中正在交易的金融產品的金融產品不斷豐富,這些金融產品自每個交易日開盤起,就不斷產生新的交易數據,按照交易周期的不同,交易數據可分為年數據和季度數據等,研究者根據研究目的選擇,不同時間的劃分的數據,這些交易數據的統一表達式(1)為:

其中:Dt是該周期的具體日期和時間;Opent是t周期的開盤價;Closet是t周期的收盤價;Hight是t周期的最高價;Lowt是t周期的最低價;vt是t周期的成交量。
K線圖[6]源自日本,經過不斷地演變,形成了擁有完整形式和分析理論的技術分析方法。K線圖同樣可根據所去交易周期的不同而劃分為:分鐘K線圖、日K線圖、周K線圖和月K線圖等,因此一個K線圖就是一個周期,其中最直觀的信息是在該周期內的:最高價、最低價、開盤價以及收盤價(為了方便使用,將其表示為:最高價 High(t)、最低價 Low(t)、開盤價 Open(t)、收盤價Close(t)),其中將開盤價與收盤價的價格差以矩形繪制,是為實體;最高價與實體的上端使用線段繪制,是為上影線;最低價和實體的下端同樣使用線段繪制,是為下影線;因為開盤價與收盤價的價格差值存在正負,約定當價格差為正時,是為陽線(實體用紅色繪制);為負時,是為陰線(實體用綠色繪制);為零時(實體使用線段繪制),如圖1所示:

圖1 K線圖表示方法
為模糊表達上、下影線和實體的長度,本文以字符“Length”表示其長度[7],分別以下標 Upper(上影線)、Lower(下影線)和 body(實體)予以區分,high(t)是 t周期內最高價,low(t)是 t周期內最低價,open(t)是 t周期內開盤價,close(t)是t周期內收盤價,m為時間增量,K線圖的上影線、下影線以及體的表達公式(2)、(3)、(4)依次如下:

將計算值作為隸屬度函數的輸入(x),帶入計算隸屬度(y)以確定隸屬的模糊集合,本文研究的是對線與體長度的描述,因此選擇“無”,“短”,“中長”,“長”作為模糊集的特征,并且在模糊集交點時,統一約定選擇下一個模糊集作為其所在集,例如當對于“中長”和“長”隸屬都為0.5時,該數據所屬模糊集合是“長”。本次選用的隸屬度函數為梯形形式[9],并且為區分陽線陰線,選有以下兩種模糊集的表示方法,如圖2、3所示:

圖2 Lengthupper和lengthlower的隸屬度函數圖

圖3 Lengthbody的隸屬度函數圖
“Trend(t)”是指t+m時刻相對t時刻的趨勢,如公式(5)所示:

為保證特征數據的代表性和豐富性,經過多方對比篩選,本文選擇滬深三百(下文簡稱HS300)2013年1月4日分到2017年12月13日,以Dt=60min為周期(包含最高價、最低價、開盤價、收盤價),生成K線圖后,使用上述公式,計算其隸屬度,確定所在模糊集合(分別以 0,1,2,3 分別對應模糊集合“無”、“短”、“中長”、“長”,區分陰陽線在對應數字前面用正負號,正號為陽線,負號為陰線),并將處理后的數據按照表1所示,作為CNN的輸入。

表1 基于模糊邏輯的輸入
卷積神經網絡(Convolutional Neural Network,CNN)[7],是一種專門處理高維度網格性數據而設計的神經網絡。經典的CNN由輸入層、卷積層、池化層、全連接層和輸出層組成,如圖4所示。CNN是一種前饋神經網絡,其核心操作就是卷積操作,即對數據和卷積核做內積的操作叫卷積。

圖4 卷積神經網絡示意圖
(1)數據預處理
本文使用數據的是HS300自2013年1月4日9:30分到2017年12月13日14:55,以Dt=60min為周期,根據數據確定 Lengthupper、Lengthlower、Lengthbody所在模糊集合。
(2)參數優化
實驗選擇Python語言實現CNN,輸入為模糊處理后的數據,隨機初始化網絡參數:學習率=0.01,訓練循環次數=10000,隨著訓練次數增加,準確值達到最高,趨于穩定。
為了測試模糊K線圖與CNN的結合模型在趨勢預測方面的性能,在實驗中將神經網絡、CNN、模糊規則模型進行預測準確率比較,選取多次實驗中預測效果較好的6次結果如表4、圖6所示。

表2 模型準確率對比

圖5 模型準確率對比
從預測準確率實驗可以看出,同樣實驗環境和數據集條件下,模糊規則和神經網絡預測準確率較差,CNN模型預測準確率一般,模糊K線圖與CNN的混合模型的預測結果最好,準確率最高達到92%,四種模型最好的預測準確率比較如表5所示。

表3 最好準確率對比
股指趨勢預測是一個熱門且經典的研究課題。本文結合模糊邏輯將K線圖特征更進一步描述,在降低主觀影響的同時,不降低方法的準確度,通過“專家識圖”的方法,實現了滬深300股指趨勢的較為準確的預測,但該模型需再進一步優化,例如數據時間周期的變換,也可將持倉量交易量等進行模糊表達,用于優化模型。