許 杰,祝玉坤,邢春曉
1.清華大學(xué) 五道口金融學(xué)院,北京 100084
2.清華大學(xué) 北京信息科學(xué)與技術(shù)國(guó)家研究中心,北京 100084
如何獲得經(jīng)風(fēng)險(xiǎn)調(diào)整后的金融資產(chǎn)交易回報(bào)是現(xiàn)代金融關(guān)鍵研究熱點(diǎn)之一。1964年,提出了資本資產(chǎn)定價(jià)模型(capital asset pricing model,CAPM),指出回報(bào)只與系統(tǒng)性風(fēng)險(xiǎn)有關(guān),投資組合的目標(biāo)為消除非系統(tǒng)性風(fēng)險(xiǎn),成為金融市場(chǎng)交易重要基礎(chǔ)理論。隨后,1970年提出了有效市場(chǎng)假說理論,認(rèn)為價(jià)格完全反映了所有市場(chǎng)公開信息,任何股票技術(shù)分析是無效的。然而許多實(shí)際市場(chǎng)交易現(xiàn)象并非遵守有效市場(chǎng)假說理論,出現(xiàn)了如羊群效應(yīng)、股權(quán)溢價(jià)之迷等一系列金融異象。傳統(tǒng)的金融交易方法主要基于價(jià)格預(yù)測(cè)方法,從影響證券價(jià)格變動(dòng)的因子出發(fā),分析研究證券市場(chǎng)的價(jià)格變動(dòng)一般規(guī)律。但基于預(yù)測(cè)的方法存在以下挑戰(zhàn):(1)金融時(shí)間序列一般是非平衡數(shù)據(jù)且噪聲大量存在,為了減少數(shù)據(jù)噪音和不確定性,通常手工抽取金融特征,難度較大且不全面。(2)變量因子間存在普遍的相關(guān)關(guān)系與多重共線性,導(dǎo)致權(quán)重參數(shù)估計(jì)失真。(3)由過去的時(shí)間序列生成的模型只能表明歷史發(fā)生的事實(shí),不能完會(huì)解釋未來金融市場(chǎng)變化規(guī)律,模型樣本外泛化能力弱。(4)在傳統(tǒng)的預(yù)測(cè)方法中,當(dāng)市場(chǎng)出現(xiàn)牛熊市轉(zhuǎn)換、動(dòng)量轉(zhuǎn)換時(shí),原有擬合模型可能不再匹配新數(shù)據(jù)。
近年來,人工智能呈爆發(fā)式發(fā)展,利用人工智能算法研究金融數(shù)據(jù)趨勢(shì)與規(guī)律,建立金融交易策略越來越普遍,其中比較典型是深度學(xué)習(xí)(deep learning,DL)方法、強(qiáng)化學(xué)習(xí)[1-2](reinforcement learning,RL)方法。深度學(xué)習(xí)具有端到端的表示能力,具有強(qiáng)大特征提取能力和非線性函數(shù)擬合能力,可以部分消除復(fù)雜內(nèi)部邏輯設(shè)計(jì),提高數(shù)據(jù)來源多樣性,主要應(yīng)用于算法交易、風(fēng)險(xiǎn)管理、欺詐檢測(cè)、投資組合管理等領(lǐng)域。然而,使用深度學(xué)習(xí)預(yù)測(cè)股票價(jià)格或趨勢(shì)運(yùn)動(dòng)時(shí),算法效果主要取決于預(yù)測(cè)準(zhǔn)確度,容易出現(xiàn)過擬合現(xiàn)象,并且在存在交易成本的情況下,高預(yù)測(cè)準(zhǔn)確度并不完全代表高最終收益率,未能捕捉到由于股票交易活動(dòng)而引起的未來懲罰或獎(jiǎng)勵(lì)回報(bào)[2-3]。
強(qiáng)化學(xué)習(xí)與心理學(xué)中的行為主義相類似,事先未給定數(shù)據(jù)以及數(shù)據(jù)標(biāo)簽,具有探索-利用(explorationexploitation)特征。相比基于預(yù)測(cè)的方法,強(qiáng)化學(xué)習(xí)實(shí)現(xiàn)狀態(tài)空間到動(dòng)作空間映射轉(zhuǎn)換,通過智能體與金融市場(chǎng)環(huán)境不斷實(shí)時(shí)交互學(xué)習(xí)策略,從市場(chǎng)反饋中不斷積累經(jīng)驗(yàn),在抑制風(fēng)險(xiǎn)的同時(shí)最大化累積回報(bào),與人類認(rèn)知與思考進(jìn)程一致,被應(yīng)用于股票自動(dòng)化交易、資產(chǎn)組合配置、債權(quán)的定價(jià)與套期保值等領(lǐng)域。但傳統(tǒng)強(qiáng)化學(xué)習(xí)方法存在感知狀態(tài)與提取特征能力不足、狀態(tài)空間與動(dòng)作空間大小有限、不能捕捉前序時(shí)間序列特征等缺點(diǎn)。
融合了深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的深度強(qiáng)化學(xué)習(xí)(deep reinforcement learning,DRL)在解決復(fù)雜序列決策問題上取得了顯著的成功,深度強(qiáng)化學(xué)習(xí)集成了深度學(xué)習(xí)感知能力和強(qiáng)化學(xué)習(xí)決策能力[4-5]。DRL具備非凸性質(zhì),能夠直接從高維原始數(shù)據(jù)中學(xué)習(xí)和控制策略,允許在一個(gè)整體中同時(shí)考慮價(jià)格預(yù)測(cè)和計(jì)算投資收益目標(biāo),擴(kuò)大了策略函數(shù)的應(yīng)用范圍,提高了數(shù)據(jù)驅(qū)動(dòng)自監(jiān)督學(xué)習(xí)能力,交易成本、市場(chǎng)流動(dòng)性、投資者的風(fēng)險(xiǎn)厭惡程度等重要制約因素可以被隱式表達(dá),不需要另外建立新的總體投資收益函數(shù)模型,降低了模型建立與訓(xùn)練難度。主要應(yīng)用領(lǐng)域有債權(quán)的定價(jià)和跨期套期保值、投資和組合配置、資產(chǎn)組合、資產(chǎn)負(fù)債管理等[6-12]。
基于以上討論,本文中提出一種融合CNN與LSTM的端到端深度強(qiáng)化學(xué)習(xí)方法(CLDQN算法)尋找最佳交易策略,主要貢獻(xiàn)如下:(1)將股票價(jià)格數(shù)據(jù)轉(zhuǎn)換成對(duì)應(yīng)的二維矩陣圖,使用CNN模塊抽取股票動(dòng)態(tài)市場(chǎng)特征。(2)使用LSTM模塊學(xué)習(xí)復(fù)雜的動(dòng)態(tài)時(shí)間變化序列規(guī)律。(3)在動(dòng)態(tài)股票市場(chǎng)中使用deep Q learning(DQN)方法獲取累積回報(bào)并依此做出交易決策。(4)在真實(shí)股票數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果顯示CLDQN顯著優(yōu)于其他基準(zhǔn)算法,魯棒性更好。
使用深度學(xué)習(xí)方法預(yù)測(cè)股票價(jià)格主要有兩類:一類是專注于提取時(shí)間序列規(guī)律,如RNN、GRU、LSTM等;一類是專注于融合不同數(shù)據(jù),提取廣泛的特征,如CNN、反卷積神經(jīng)網(wǎng)絡(luò)(deconvolutional neural network,DNN)等。下面分別介紹這兩類算法。長(zhǎng)短期記憶(long short-term memory,LSTM)應(yīng)用于股票研究。LSTM是解決梯度消失一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò),解決了RNN邏輯單元距離增加而出現(xiàn)的長(zhǎng)期性依賴問題,被廣泛地應(yīng)用于時(shí)間序列數(shù)據(jù)并取得了顯著的成果。Borovkova等[13]提出集成在線LSTM模型,將大量的技術(shù)性分析指標(biāo)作為網(wǎng)絡(luò)輸入,根據(jù)每時(shí)段數(shù)據(jù)近期表現(xiàn)按貢獻(xiàn)重要程度分別加權(quán),以此處理非平穩(wěn)高頻股票市場(chǎng)數(shù)據(jù),模型包括了兩組不同規(guī)格的LSTM,第一層能夠處理時(shí)間序列整體規(guī)律,第二層則針對(duì)具體特定特征。Cipiloglu等[14]提出LSTM模型學(xué)習(xí)股票月收盤價(jià),介紹了5種不同資產(chǎn)組合構(gòu)建策略,根據(jù)每個(gè)股票月度歷史數(shù)據(jù)作為模型輸入,預(yù)測(cè)每月的收盤價(jià),產(chǎn)生了對(duì)成份股進(jìn)行篩選或?qū)Τ煞莨蓹?quán)重重新配置的不同聰明貝塔(smart Beta)變種,最終輸出不同組合股票收益。Tiwari等[15]調(diào)研了LSTM在股票價(jià)格預(yù)測(cè)、指數(shù)建模、風(fēng)險(xiǎn)評(píng)估、收益回報(bào)的應(yīng)用。Hiew等[16]使用金融情緒指數(shù)與LSTM融合預(yù)測(cè)股票收益,通過不同來源的情緒指數(shù),如微博上關(guān)于不同股票的討論,計(jì)算市場(chǎng)關(guān)注程度與情緒指數(shù)。也有使用LSTM與其他方法融合的方法,BAO等[17]將小波變換、堆棧式自編碼器(SAEs)和LSTM相結(jié)合,首先對(duì)股票價(jià)格時(shí)間序列進(jìn)行小波變換分解以消除噪聲,接著應(yīng)用SAEs生成深層高階特征,輸入至LSTM中預(yù)測(cè)第二天的收盤價(jià),這種通過額外增加特征提取的方法在金融數(shù)據(jù)處理中比較常見。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)應(yīng)用于股票研究。CNN可以融合不同來源數(shù)據(jù),淺層網(wǎng)絡(luò)提取一些低級(jí)的局部特征,深層抽取更為復(fù)雜的全局特征,可用于交易價(jià)格預(yù)測(cè)、大盤趨勢(shì)分類、資產(chǎn)投資組合等問題。Gudelek等[18]提出一種利用CNN預(yù)測(cè)交易型開放式指數(shù)基金(exchange traded fund,ETF)收益,首先在滑動(dòng)窗口時(shí)間內(nèi)生成不同ETF快照,使用卷積操作提取趨勢(shì)指標(biāo)以及基本面特征,包括RSI、SMA、MACD等特征,進(jìn)而生成向量矩陣作為CNN的圖形輸入。為了考察不同市場(chǎng)之間的相關(guān)性,Hoseinzade等[19]使用2DCNN與3DCNN聚合對(duì)齊不同來源變量,包含S&P 500、納斯達(dá)克、道瓊斯NYSE,道瓊斯DJI、羅素指數(shù),模型由4部分組成,包括輸入數(shù)據(jù)表示、日常數(shù)據(jù)特征提取、持續(xù)特征提取、預(yù)測(cè)部分。2DCNN使用單個(gè)市場(chǎng)與單個(gè)股票數(shù)據(jù)訓(xùn)練預(yù)測(cè),3DCNN將所有可用的市場(chǎng)數(shù)據(jù)作為輸入統(tǒng)一訓(xùn)練模型,這兩種結(jié)構(gòu)可提高3%~11%預(yù)測(cè)性能。Cai等[20]提出了一種融合CNN和LSTM框架,金融新聞和股票市場(chǎng)歷史數(shù)據(jù)作為輸入,構(gòu)建了7個(gè)不同的預(yù)測(cè)模型分類器變種,組合成更強(qiáng)大的分類器??傮w而言,CNN的優(yōu)勢(shì)在于特征提取平移不變性,不會(huì)破壞信號(hào)頻譜,可并行處理不同時(shí)間節(jié)點(diǎn)數(shù)據(jù)。
區(qū)別于上述直接預(yù)測(cè)股票價(jià)格方法,基于強(qiáng)化學(xué)習(xí)方法將預(yù)測(cè)結(jié)果和投資動(dòng)作結(jié)合在一起,直接以投資收益目標(biāo)作為優(yōu)化目標(biāo)。強(qiáng)化學(xué)習(xí)價(jià)值函數(shù)可以具有不可微性質(zhì),因此可以較靈活地設(shè)計(jì)回報(bào)函數(shù)、增加數(shù)據(jù)來源與環(huán)境狀態(tài),模型泛化能力較好[21-22]。但當(dāng)狀態(tài)與動(dòng)作連續(xù)時(shí),動(dòng)作價(jià)值表空間過大,導(dǎo)致查表狀態(tài)(state)和動(dòng)作(action)過于復(fù)雜,因而提出了使用神經(jīng)網(wǎng)絡(luò)擬合動(dòng)作價(jià)值表方法[23]。Deng等[24]首次使用深度強(qiáng)化學(xué)習(xí)方法用于金融市場(chǎng),深度學(xué)習(xí)部分自動(dòng)感知?jiǎng)討B(tài)市場(chǎng)條件,提取信息特征,強(qiáng)化學(xué)習(xí)模塊與環(huán)境互動(dòng)并做出交易決策,為進(jìn)一步提高市場(chǎng)魯棒性,引入模糊學(xué)習(xí)來減少輸入數(shù)據(jù)不確定性,實(shí)證結(jié)果較好,此后基于該方法的文章大量出現(xiàn)。Zarkias等[6]使用一種價(jià)格追蹤方法,通過將交易動(dòng)作定義為包含市場(chǎng)噪音價(jià)格跟蹤智能體,可密切跟蹤價(jià)格,自動(dòng)調(diào)整交易保證金,使用DDQN(double deep Q network)訓(xùn)練模型。Jeong等[25]針對(duì)交易數(shù)據(jù)不足的問題,提出遷移學(xué)習(xí)融合Q-learning處理高波動(dòng)金融數(shù)據(jù)帶來的過擬合問題,使用領(lǐng)域遷移方法將訓(xùn)練好的模型遷移到其他股票,逐步迭代減少搜索空間,該方法也可以應(yīng)用到對(duì)沖策略、資產(chǎn)組合優(yōu)化等場(chǎng)景。Carta等[26]提出了使用相同訓(xùn)練數(shù)據(jù)多次訓(xùn)練DQN集成方法,在不顯著影響預(yù)期回報(bào)的情況下降低策略風(fēng)險(xiǎn)。Liu等[27]采用GRU與DQN結(jié)合方式,使用GRU抽取隱狀態(tài)特征值與觀察到的狀態(tài)融合之后,共同做為強(qiáng)化學(xué)習(xí)狀態(tài)表示內(nèi)容。這種通過增加循環(huán)神經(jīng)網(wǎng)絡(luò)中間層的方式,降低了連續(xù)性時(shí)間序列噪音,使得DRL能獲得較高穩(wěn)定的輸入特征,是一種處理噪音較好的解決思路。
強(qiáng)化學(xué)習(xí)過程可以使用馬爾可夫決策過程(markov decision process,MDP)表示[21,28],通常將MDP定義為一個(gè)四元組(S,A,p,R),即(狀態(tài),動(dòng)作,狀態(tài)轉(zhuǎn)移概率分布,回報(bào))。強(qiáng)化學(xué)習(xí)算法主要步驟包括:(1)定義回報(bào)函數(shù);(2)定義狀態(tài)空間;(3)設(shè)計(jì)不同狀態(tài)之間的轉(zhuǎn)移概率分布表;(4)尋找最優(yōu)化操作策略。本文關(guān)于金融強(qiáng)化學(xué)習(xí)的問題描述如下:
狀態(tài)(state),是對(duì)金融市場(chǎng)環(huán)境的一種描述,代表投資者所能獲取到的信息,狀態(tài)設(shè)計(jì)需要滿足兩個(gè)條件:盡可能多包含影響因子信息;盡可能減少噪音因子信息。金融市場(chǎng)狀態(tài)主要包括技術(shù)面、基本面、信息面。技術(shù)面包括交易量、價(jià)格最高點(diǎn)與最低點(diǎn)等;信息面包括市場(chǎng)外部信號(hào)、管理部門與上市公司等信息;基本面信息以股票內(nèi)在價(jià)值為依據(jù),包括公司經(jīng)營(yíng)分析、市場(chǎng)狀況、行業(yè)地位分析等。
動(dòng)作(action),是對(duì)智能體(agent)與環(huán)境實(shí)時(shí)交互可執(zhí)行動(dòng)作的描述,動(dòng)作可分為連續(xù)型動(dòng)作與離散型動(dòng)作,包括三種動(dòng)作,a∈{-1,0,1},分別代表證券賣出qt+1=q t+k,無操作,買入qt+1=q t+k,q t代表t時(shí)間股票份額,k∈Z(Z為整數(shù)集)。
策略(policy),π(s),狀態(tài)空間到動(dòng)作空間映射,表示在狀態(tài)s下以一定的概率p(s,a)執(zhí)行下一步動(dòng)作a t,并轉(zhuǎn)移到新的狀態(tài)at+1。
回報(bào)(reward),r(s,a,s′),在智能體的動(dòng)作下,從t時(shí)間開始到T時(shí)間結(jié)束,累積執(zhí)行動(dòng)作獲得的回報(bào)值。在本文中,強(qiáng)化學(xué)習(xí)的最終目標(biāo)是指定時(shí)間內(nèi)累積折扣回報(bào)最高,學(xué)習(xí)過程是尋找使期望累積折現(xiàn)獎(jiǎng)勵(lì)R t最大化的策略π(s),形式化定義如下:
其中γ∈(0,1)是折扣因子,r t代表t時(shí)刻獎(jiǎng)賞值。
評(píng)價(jià)策略π的期望使用狀態(tài)值函數(shù)Vπ(s)表示,定義為。狀態(tài)動(dòng)作價(jià)值函數(shù)也稱為Q函數(shù),是對(duì)狀態(tài)-動(dòng)作對(duì)的評(píng)估,定義為Qπ(s,a)=,表示在狀態(tài)s下根據(jù)策略π執(zhí)行動(dòng)作a獲得累計(jì)期望價(jià)值。對(duì)一個(gè)指定的動(dòng)作,如果其回報(bào)值大于其他所有動(dòng)作的回報(bào)值,則稱π為最優(yōu)動(dòng)作,表示為。最優(yōu)狀態(tài)動(dòng)作價(jià)值函數(shù)Q*(s,a)通過貝爾曼方程求解[23],。實(shí)際上,Qlearning的目標(biāo)是直接逼近最優(yōu)狀態(tài)-動(dòng)作值函數(shù),假定Q(s,a;θ)是參數(shù)為θ狀態(tài)動(dòng)作值的值函數(shù),具體而言,對(duì)于第i+1狀態(tài)下的狀態(tài)-動(dòng)作函數(shù)為Q i+1(s,a)=。此外,Q網(wǎng)絡(luò)的迭代目標(biāo)函數(shù)為是目標(biāo)網(wǎng)絡(luò)參數(shù),通過迭代最小化損失函數(shù)L i(θi)學(xué)習(xí)參數(shù),其中L i(θi)定義為
由于可行交易行為是一個(gè)離散集合,股票價(jià)格變化屬于連續(xù)變化且沒有邊界,Q-learning中狀態(tài)空間大小呈指數(shù)級(jí)增長(zhǎng),表格存儲(chǔ)空間成本和貝爾曼迭代計(jì)算量過大,阻礙了Q-learning的發(fā)展。Mnih等[29]提出深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)結(jié)合的DQN網(wǎng)絡(luò),在Atari2006游戲中超過了人類的水平。DQN使用神經(jīng)網(wǎng)絡(luò)非線性近似表示值函數(shù)或策略,Q-learning表格替換成基于神經(jīng)網(wǎng)絡(luò)的Q-network[30-31],將深度學(xué)習(xí)與Q學(xué)習(xí)結(jié)合輸出最優(yōu)值。包含4個(gè)步驟:(1)初始化狀態(tài)、環(huán)境、經(jīng)驗(yàn)池、策略、神經(jīng)網(wǎng)絡(luò)等參數(shù);(2)確定概率ε,將探索數(shù)據(jù)存入經(jīng)驗(yàn)池;(3)根據(jù)采樣規(guī)則從經(jīng)驗(yàn)池取出數(shù)據(jù)訓(xùn)練,使用深度學(xué)習(xí)方法更新網(wǎng)絡(luò)參數(shù);(4)重新評(píng)估策略回報(bào)值,循環(huán)以上步驟直至收斂。
本文提出的框架主要由三部分組成,如圖1所示。(1)外部環(huán)境動(dòng)態(tài)特征提取CNN部分。(2)時(shí)間序列規(guī)律分析LSTM部分。(3)交易動(dòng)作決策部分。首先根據(jù)股票價(jià)格數(shù)據(jù)產(chǎn)生每支股票二維時(shí)序圖,將單位時(shí)間內(nèi)開盤價(jià)、最高價(jià)、最低價(jià)、收盤價(jià)組成蠟燭數(shù)據(jù)圖,此外,新生成6組指數(shù)蠟燭數(shù)據(jù)圖,包括上證指數(shù)、深證綜合股票指數(shù)、上證50指數(shù)、滬深300指數(shù)、中證500指數(shù)、深證100指數(shù)。按照每28分鐘價(jià)格波動(dòng)曲線生成一個(gè)矩陣向量,行向量值為每分鐘單位時(shí)間,t=k+1,k+2,…,k+28,列向量值為價(jià)格指數(shù)軌跡經(jīng)過max-min方法調(diào)整后的價(jià)格浮動(dòng)值,即矩陣T i∈R28×28,共7組向量矩陣,i∈(0,7),共同作為CNN輸入[32]。
圖1 CLDQN模型框架Fig.1 CLDQN model framework
此外,為了更充分挖掘股票價(jià)格信息,按照資產(chǎn)定價(jià)研究常用方法,將影響股票價(jià)格因子分為4類:流動(dòng)性類因子、波動(dòng)類因子、動(dòng)量類因子、基本面因子。具體如下,流動(dòng)性類因子:換手率、單日成交量;波動(dòng)類因子:6個(gè)月波動(dòng)率、9個(gè)月波動(dòng)率、基于CAPM的過去30天特質(zhì)波動(dòng)率、基于Fama-French的過去30天特質(zhì)波動(dòng)率、平滑異同移動(dòng)平均線(moving average convergence divergence,MACD)、移動(dòng)平均線(moving average,MA)、過去30天日收益率標(biāo)準(zhǔn)差、30天內(nèi)最大日度回報(bào)、隨機(jī)指標(biāo)KDJ、前1個(gè)月漲跌幅、前3個(gè)月漲跌幅、前6個(gè)月漲跌幅;動(dòng)量類因子:相對(duì)強(qiáng)弱指數(shù)(relative strength index,RSI)、威廉指數(shù)(%R);基本面因子:賬面市值、銷售凈利率、市盈率、市凈率、股息率、凈資產(chǎn)收益率、現(xiàn)金流資產(chǎn)比和資產(chǎn)回報(bào)率之差、非經(jīng)常性損益比,共24種因子,每一類因子經(jīng)數(shù)據(jù)歸一化后,形成一個(gè)24維向量Cso。
減少原始數(shù)據(jù)中的不確定性是提高金融信號(hào)分析效果與算法魯棒性的重要途徑,CNN屬于一種前饋式神經(jīng)網(wǎng)絡(luò),具有局部感受野、權(quán)值共享特性,淺層卷積操作提取一些低級(jí)的局部特征,深層卷積操作提取潛在全局特征。卷積神經(jīng)網(wǎng)絡(luò)主要包括輸入層、卷積層、激活層、池化層、損失函數(shù)層,卷積層與池化層交替成組出現(xiàn),減少了特征維度,保證了卷積操作對(duì)位移、縮放和形放不變性。選取窗口大小為w∈Rk×k,步長(zhǎng)為1的卷積過濾器作用在x i到x i+k-1的向量矩陣上,進(jìn)行元素內(nèi)積操作,元素積相加后得到新的空間特征,從窗口xi到x i+k-1得到特征為:
Conv是卷積操作,w i是權(quán)重參數(shù),b i是偏置。將c個(gè)不同的過濾器分別作用矩陣上,可以得到輸出c個(gè)卷積層矩陣t nq∈R(28-L+1)×(28-k+1)。池化層起二次提取特征的作用,通過降低二維圖形分辨率降低特征維度,,fsub表示平均池化方式。最后一層池化層的輸出與其他特征因子向量融合后(Cso,t nq),經(jīng)過全連接層(fully connected layers,F(xiàn)C)輸出Cout,作為L(zhǎng)STM的輸入。LSTM具有抽取時(shí)間特征作用,通過遺忘門控制歷史狀態(tài),第t層信號(hào)經(jīng)輸入門后仍可保留原有信息。本文LSTM結(jié)構(gòu)定義如下:
其中h t是LSTM單元的隱藏狀態(tài),表示來自前一個(gè)時(shí)間步長(zhǎng)的信息,x t表示外部輸入像信號(hào),本文中為Cout,W f,Wi,Wc,Wo是對(duì)應(yīng)門輸入權(quán)重參數(shù),f t選擇忘記過去某些信息,i t記憶現(xiàn)在某些信息,C t將過去與現(xiàn)在信息合并,ot輸出門輸出,b f、b i、b c、b o是偏置,δ是非線性函數(shù),符號(hào)“·”代表向量點(diǎn)乘,tanh是雙曲正切函數(shù),每個(gè)單元的相同門的輸入?yún)?shù)共享。兩層LSTM被證明效果一般較好,本文也采用兩層LSTM架構(gòu)[13]。
當(dāng)智能體執(zhí)行一個(gè)交易動(dòng)作后,將獲得股票市場(chǎng)返回的獎(jiǎng)勵(lì)Rt和狀態(tài)ot,以及經(jīng)LSTM處理后的前序ht,作為下一次神經(jīng)元的輸入,智能體動(dòng)作可改寫為at=μθ(h t,s t),Q函數(shù)可改寫為
更新后的網(wǎng)絡(luò)損失函數(shù)定義為:
對(duì)損失函數(shù)求偏導(dǎo):
求解以使得損失函數(shù)最小,其中為t+1時(shí)刻LSTM輸出,s t+1為t+1時(shí)刻環(huán)境狀態(tài),θi和是值函數(shù)Q的訓(xùn)練過程參數(shù)和目標(biāo)網(wǎng)絡(luò)參數(shù),訓(xùn)練過程中間斷更新。采用e-greedy貪婪策略,e-greedy是一個(gè)不確定性的策略,平衡了利用和探索部分,選取執(zhí)行動(dòng)作值函數(shù)最大部分為利用部分,仍存在一定概率尋找全局最優(yōu)解為探索部分。采用經(jīng)驗(yàn)回放(experience replay)方式隨機(jī)抽取小批量樣本訓(xùn)練,處理數(shù)據(jù)相關(guān)和非平穩(wěn)分布引起的問題,增加樣本多樣本,防止程序陷入局部最優(yōu)值,學(xué)習(xí)到的經(jīng)驗(yàn)可以共享。
Q-learning使用探索(exploration)和利用(exploitation)尋找新的最優(yōu)策略。首先設(shè)定訓(xùn)練集窗口大小、驗(yàn)證集窗口大小、測(cè)試集窗口大小、經(jīng)驗(yàn)池大小、折扣因子、學(xué)習(xí)率以及隨機(jī)初始化神經(jīng)網(wǎng)絡(luò)權(quán)值θ和,初始化訓(xùn)練集狀態(tài)、動(dòng)作,以ε的概率從所有的動(dòng)作中隨機(jī)抽取一個(gè)執(zhí)行動(dòng)作A,記錄即時(shí)回報(bào)R和轉(zhuǎn)移到的新狀態(tài)S,以1-ε概率使用神經(jīng)網(wǎng)絡(luò)決策獲得下一步的動(dòng)作,即令Q值最大的動(dòng)作。在線處理得到的轉(zhuǎn)移樣本e t=(s t,at,r t,s t+1)存入經(jīng)驗(yàn)池D中去除采樣數(shù)據(jù)相關(guān)性。與傳統(tǒng)的DQN經(jīng)驗(yàn)池不相同,因?yàn)長(zhǎng)STM需要一次輸入多個(gè)相關(guān)的時(shí)間步長(zhǎng),而不是隨機(jī)采樣的單個(gè)時(shí)間步長(zhǎng),需要對(duì)相當(dāng)長(zhǎng)的軌跡片段進(jìn)行采樣,用作向DQN提供狀態(tài)s。經(jīng)驗(yàn)池需要重新更改,(s,a,r,s′)~U(D)修改為
為了優(yōu)化CNN網(wǎng)絡(luò),本文采用Adam優(yōu)化算法求解損失函數(shù)優(yōu)化極值,Adam是隨機(jī)梯度下降算法的擴(kuò)展式,通過計(jì)算一階梯度加權(quán)平均和二階梯度加權(quán)移動(dòng)平均設(shè)計(jì)不同參數(shù)自適應(yīng)性學(xué)習(xí)率。
從經(jīng)驗(yàn)池中隨機(jī)選取指定個(gè)數(shù)n的樣本作為batches進(jìn)行訓(xùn)練,Adam算法更新網(wǎng)絡(luò)參數(shù)θ,通過N輪迭代后,將訓(xùn)練網(wǎng)絡(luò)參數(shù)延遲賦值給目標(biāo)網(wǎng)絡(luò)參數(shù),使目標(biāo)網(wǎng)絡(luò)與訓(xùn)練網(wǎng)絡(luò)參數(shù)盡可能接近。
在各時(shí)間節(jié)點(diǎn),有一個(gè)隱藏的假設(shè),即各個(gè)時(shí)間點(diǎn)的狀態(tài)是對(duì)環(huán)境的完整觀察,但金融市場(chǎng)充滿了大量噪音,使得狀態(tài)s不能完全描述市場(chǎng)交易環(huán)境真實(shí)情況,為了增加探索行為,一個(gè)隨機(jī)過程ξ~N( 0,σ2)噪聲添加到環(huán)境網(wǎng)絡(luò),擾動(dòng)后的動(dòng)作更新為a t=μθ(h t,s t)+ξ。推進(jìn)滑動(dòng)窗口,重復(fù)以上過程,直到遍歷完所有數(shù)據(jù)集。
CLDQN學(xué)習(xí)過程如下:
算法1CLDQN算法
初始化動(dòng)作狀態(tài)值Q函數(shù)參數(shù)θ,目標(biāo)Q函數(shù)參數(shù)θ-,ε參數(shù),經(jīng)驗(yàn)池D大小,minibatch。
While循環(huán)數(shù)據(jù)集次數(shù)小于指定Ldo
Forepisode=1→Mdo:
初始化噪音隨機(jī)過程N(yùn)(0,σ2),更新參數(shù)θ和θ-,初始化超始狀態(tài)s
fort=1→Tdo:
根據(jù)概率ε選擇一個(gè)隨機(jī)動(dòng)作at,或根據(jù)argrmaxaQ*(h t,a;θ)值選擇動(dòng)作at
執(zhí)行股票交易動(dòng)作a t,獲得獎(jiǎng)勵(lì)r t
將t時(shí)刻LSTM輸出h t,at,cout融合后生成新的h t+1=LSTM(a t,cout,h t),將結(jié)果(h t,a t,r t,h t+1)存入D中
隨機(jī)從D中隨機(jī)取出minibatch個(gè)狀態(tài),設(shè)置y i
梯度下降更新θ,在損失函數(shù)(yi一Q(h t,a j;θ))2上執(zhí)行對(duì)θ的梯度更新,每經(jīng)過N步,更新目標(biāo)網(wǎng)絡(luò)參數(shù)
End for
End for
End while
目標(biāo)網(wǎng)絡(luò)更新如下:
τ表示學(xué)習(xí)速率。
正則化與Dropout,金融市場(chǎng)本質(zhì)上是嘈雜的,深度學(xué)習(xí)具有強(qiáng)大的學(xué)習(xí)能力,為避免神經(jīng)網(wǎng)絡(luò)過擬合,使用Dropout正則化技術(shù)處理,Dropout在神經(jīng)網(wǎng)絡(luò)中以概率1-p舍棄部分神經(jīng)元,在訓(xùn)練階段降低神經(jīng)網(wǎng)絡(luò)規(guī)模,減少特征隱層節(jié)點(diǎn)間相互作用。
本文采用Python3.4實(shí)現(xiàn)算法模型,Tensorflow函數(shù)模塊開發(fā)深度學(xué)習(xí)網(wǎng)絡(luò)。使用Python matplotlib 3.1庫實(shí)現(xiàn)數(shù)據(jù)可視化,內(nèi)存64 GB,CPU i7 4790,GPU GTX 1070,采用CUDA 9.0與CUDNN 7.1加速計(jì)算。交易成本設(shè)定交易金額的0.05%。mini-batch size等于512,初始學(xué)習(xí)率是0.01。
實(shí)驗(yàn)數(shù)據(jù)來自wind終端,包括滬深市股票,特別選取4支股票:三一重工、格力電器、招商銀行、紫光股份,主要原因有:(1)不同市值的股票受宏觀市場(chǎng)的影響不同;(2)不同產(chǎn)業(yè)股票的周期性不同;(3)股民的關(guān)注度與股票價(jià)格具有相關(guān)關(guān)系,分別代表緩慢增長(zhǎng)型、長(zhǎng)期藍(lán)籌型、穩(wěn)定型、科技型公司。三一重工代表受宏觀因素較深股票,格力電器、招商銀行分別代表高市值股票,紫光股份代表科技成長(zhǎng)型中小股票。對(duì)于股票中的斷點(diǎn),采用前序數(shù)據(jù)線性回歸補(bǔ)全開盤價(jià)、收盤價(jià)、成交量等值。上證50指數(shù)代表大盤行情,流動(dòng)性更強(qiáng),藍(lán)籌股與白馬股占主要成份,滬深300為滬深股市市值最高的300支股票,對(duì)整體市場(chǎng)的影響力最大,屬于大盤股股票,中證500指數(shù)代表滬深股市的中小盤股票,深證100指數(shù)代表多層次市場(chǎng)體系指數(shù),為深市成交最活躍100支股票。使用2005年12月至2016年12月為訓(xùn)練數(shù)據(jù),2017年1月至2020年1月為測(cè)試數(shù)據(jù),采用數(shù)據(jù)標(biāo)準(zhǔn)化方法對(duì)經(jīng)后復(fù)權(quán)后的交易數(shù)據(jù)進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化,如表1所示。為了進(jìn)行比較,基準(zhǔn)算法分別為L(zhǎng)STM模型、RRL算法[33]、決策樹(decision tree);此外,CLDQN允許有兩個(gè)變種:CLDQN-L代表CLDQN中去除CNN部分,CLDQN-C代表CLDQN去除LSTM部分,股票的特征輸入采用特征向量直接作為L(zhǎng)STM的輸入。使用4個(gè)不同的評(píng)價(jià)函數(shù),即累計(jì)收益率(cumulative return,(末期資產(chǎn)-初期資產(chǎn))/初期資產(chǎn))、年化夏普比率(annual sharpe ratio,(收益率-無風(fēng)險(xiǎn)利率)/收益率波動(dòng))[34]、年收益標(biāo)準(zhǔn)差(annual standard deviation)、最大回撤率(maximum drawdown,max(1-賬戶當(dāng)日價(jià)值/當(dāng)日之前賬戶最高價(jià)值))等。
表1 實(shí)驗(yàn)數(shù)據(jù)特征Table 1 Experimental data characteristics
CLDQN各參數(shù)的設(shè)置如下:CNN filter為3×3,數(shù)量為32,步長(zhǎng)為1,pool size為2×2,dropout設(shè)置為0.5。LSTM的input size為24,每層number of unit為128,所使用的激活函數(shù)為ReLU,Epochs=50,L=50。貝爾曼折扣因子0.9,經(jīng)驗(yàn)回放池大小設(shè)置為100 000,貪心策略ε=0.9,終止值0.001。訓(xùn)練過程中采用off policy的方法,θ隨深度學(xué)習(xí)梯度更新,目標(biāo)只做周期性的拷貝更新,目標(biāo)網(wǎng)絡(luò)每100步更新一次。CNN、LSTM、DQN模塊均使用Python和帶有TensorFlow的Keras包實(shí)現(xiàn)。
3.3.1 不同股票收益曲線
如圖2為6種算法在4支不同股票數(shù)據(jù)下的收益曲線,圖中縱坐標(biāo)表示資產(chǎn)累計(jì)收益率,橫坐標(biāo)為樣本外測(cè)試時(shí)間。從圖中可以看出:
圖2 股票累積收益率評(píng)測(cè)Fig.2 Stock cumulative return evaluation
(1)本文提出的CLDQN收益率曲線明顯領(lǐng)先LSTM、RRL、決策樹方法。在2018年,基準(zhǔn)算法有一個(gè)比較大的跌幅,CLDQN算法收益則較為平衡。決策樹的收效表現(xiàn)最低,LSTM算法處于居中位置。此外,對(duì)比CLDQN與CLDQN-L、CLDQN-C算法,同時(shí)考慮時(shí)間與變量交互特征的CLDQN效果比CLDQN-C算法最高約提高5.5倍左右(招商銀行,2019-06),單支股票與整體市場(chǎng)的關(guān)聯(lián)關(guān)系充分被捕捉,提高了算法精度。
(2)實(shí)驗(yàn)結(jié)果表明CLDQN-C算法一般,說明通過卷積抽取外部環(huán)境狀態(tài)的方法對(duì)于算法性能增加影響有限。這是因?yàn)閰^(qū)別于圖像特征提取,同一時(shí)間序列在同一時(shí)間上不會(huì)出現(xiàn)兩個(gè)y軸像素,進(jìn)一步地,取消了LSTM的CLDQN-C算法性能下降程度較高,說明LSTM可以發(fā)現(xiàn)隱藏在股票時(shí)間相關(guān)序列中歷史價(jià)格規(guī)律,過去的歷史數(shù)據(jù)影響因子可能會(huì)在未來股票市場(chǎng)變化中重現(xiàn),有效地提高了模型收益能力。
(3)動(dòng)量反轉(zhuǎn)效應(yīng)。通過對(duì)2018年股票的動(dòng)量收益情況分析,可以發(fā)現(xiàn)市場(chǎng)整體環(huán)境對(duì)個(gè)股收益有著不同的影響,對(duì)于大盤股和小盤股的影響存在明顯差異,小盤股對(duì)動(dòng)量反轉(zhuǎn)反應(yīng)比大盤股更明顯,紫光股份的動(dòng)量效應(yīng)比招商銀行的動(dòng)量效應(yīng)更明顯,市場(chǎng)處于上升階段時(shí)CLDQN動(dòng)量效應(yīng)的表現(xiàn)優(yōu)于熊市。
(4)從整體上看,凈月平均收益(月平均收益-大盤月平均收益)在2017年、2018年、2019年逐年下降,可以認(rèn)為算法在近期時(shí)間點(diǎn)表現(xiàn)優(yōu)于遠(yuǎn)期時(shí)間點(diǎn),可能的原因是由于訓(xùn)練集為2005年12月年至2016年12月,從經(jīng)驗(yàn)回放池中的抽取的樣本數(shù)據(jù)趨向于近期時(shí)期產(chǎn)生的數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)參數(shù)發(fā)生了迭代更新,當(dāng)被應(yīng)用于2019年時(shí),由于距初始訓(xùn)練數(shù)據(jù)時(shí)間間隔變長(zhǎng),市場(chǎng)情況發(fā)生了變化,模型不再適應(yīng)新的市場(chǎng)變化規(guī)律,導(dǎo)致CLDQN在距離訓(xùn)練數(shù)據(jù)時(shí)間較近的2017年效果優(yōu)于遠(yuǎn)期2019年。
(5)決策樹算法。從模型的邏輯上來看,決策樹方法更符合價(jià)值投資理念,股票的基本特征,如市盈率、市凈率、凈資產(chǎn)收益率等指標(biāo)對(duì)決策樹影響更大,微觀層面影響投資意愿,更傾向于長(zhǎng)期投資,然而由于中國(guó)股市散戶投資者多,交易頻率高,風(fēng)險(xiǎn)承受能力較差,追漲殺跌現(xiàn)象嚴(yán)重,導(dǎo)致決策樹算法效果不佳。
3.3.2 年化夏普率
如圖3顯示了不同的交易策略年化夏普率(描述資產(chǎn)收益對(duì)投資者所承擔(dān)風(fēng)險(xiǎn)的補(bǔ)償程度),年收益標(biāo)準(zhǔn)差(收益率的變動(dòng)大小,描述股票投資的風(fēng)險(xiǎn)程度)、最大回撤率(描述投資者可能面臨的最大虧損與抗風(fēng)險(xiǎn)能力)的評(píng)測(cè)結(jié)果,從圖中可以發(fā)現(xiàn)以下規(guī)律:
圖3 年化夏普率、年收益標(biāo)準(zhǔn)差和最大回撤率評(píng)測(cè)Fig.3 Evaluation of annual sharp rate,annual return standard deviation and max dawndown
(1)本文提出的CLDQN算法整體上年化夏普率、最大回撤率都優(yōu)于基準(zhǔn)算法,CLDQN-C與LSTM算法的年收益標(biāo)準(zhǔn)差相近,可能原因在于LSTM對(duì)短期的時(shí)序數(shù)據(jù)規(guī)律敏感,能夠快速捕捉到新變化的市場(chǎng)規(guī)律。決策樹算法對(duì)動(dòng)量因子的反應(yīng)較為激烈,由于中國(guó)股市的透明性與不確定性比一般市場(chǎng)高,導(dǎo)致下一輪的回撤率更高。
(2)CNN作用。從圖中可以看到,CNN模塊對(duì)算法收益的重要性不如LSTM模塊,但是CLDQN-C年收益標(biāo)準(zhǔn)差較低,說明CNN能夠多角度融合不同來源影響因子,有效地穩(wěn)定模型,提高魯棒性。
(3)市值效應(yīng)。紫光股份的最大回撤率最大,年化夏普率最低,原因在于紫光股份股票流動(dòng)性較好,流動(dòng)性與公司規(guī)模在截面上高度相關(guān),對(duì)賬面市值比的影響是長(zhǎng)期的,市場(chǎng)對(duì)股票價(jià)格沖擊大,公司規(guī)模與賬面市值具有反向替代作用。
3.3.3 交易費(fèi)用作用
影響股票投資收益主要有兩部分,包括對(duì)行情規(guī)律的準(zhǔn)確描述,以及交易成本對(duì)收益的影響。接下來討論交易成本(ρ=0.000 5,0.001,0.001 5,0.002)對(duì)整體收益的影響。以CLDQN為例,結(jié)果如表2所示。
表2 交易成本對(duì)交易回報(bào)影響評(píng)測(cè)Table 2 Impact evaluation of transaction cost on return
從表中可以看出,隨著交易成本增加,交易量明顯減少,總回報(bào)收益逐步下降,在市場(chǎng)混亂時(shí)期,買賣雙方的比例相對(duì)不平衡,降低交易成本會(huì)提高換手率,預(yù)期回報(bào)表現(xiàn)較好;當(dāng)交易成本過高時(shí),抑制金融市場(chǎng)過度投機(jī),高流動(dòng)性資產(chǎn)比低流動(dòng)性資產(chǎn)所吸引的風(fēng)險(xiǎn)更高,市場(chǎng)波動(dòng)性下降以減小市場(chǎng)風(fēng)險(xiǎn),個(gè)體交易者的交易成本增加與價(jià)格下滑效應(yīng)結(jié)合,總收益下降可以部分地由總交易成本過高來解釋。此外,由于A股為散戶型市場(chǎng),交易費(fèi)用提高不會(huì)降低風(fēng)險(xiǎn)資產(chǎn)流動(dòng)性,總交易成本上升,因此從表中可以看出紫光股份的總收益的下降趨勢(shì)最為明顯。
3.3.4 證券指數(shù)對(duì)夏普率作用
為研究各證券指數(shù)對(duì)夏普率的影響,在產(chǎn)生蠟燭數(shù)據(jù)圖階段,依次剔除不同指數(shù)(包括上證50指數(shù)、滬深300指數(shù)、中證500指數(shù)、深證100指數(shù))數(shù)據(jù),此時(shí)CNN的輸入只包含6組向量矩陣。實(shí)驗(yàn)結(jié)果如表3所示。
表3 證券指數(shù)對(duì)夏普率影響評(píng)測(cè)Table 3 Impact evaluation of stock index on sharp rate
從表中可以看出,不同指數(shù)對(duì)股票的夏普率影響程度不同,上證50指數(shù)對(duì)三一重工影響程度最高,其夏普率下降最快,滬深300指數(shù)對(duì)格力電器影響程度較高,中證500指數(shù)對(duì)紫光股份影響程度較高,說明外在消息面與投資者情緒產(chǎn)生的影響較大,深證100指數(shù)對(duì)三一重工影響較高。以上現(xiàn)象原因主要有兩點(diǎn):(1)深證100指數(shù)成分主要由交易活躍的股票組成,三一重工有相對(duì)較高成交量,因而所受影響最大。(2)對(duì)于市值較高的股票,如招商銀行,股票趨勢(shì)與大盤指數(shù)有較高關(guān)系,當(dāng)市場(chǎng)變化劇烈時(shí),高市值股承受的風(fēng)險(xiǎn)更高,夏普率下降明顯。一般而言,個(gè)股的預(yù)測(cè)結(jié)果誤差較大,夏普率較低,而大盤指數(shù)的預(yù)測(cè)精度一般較高,總體上的夏普率也更高。整體上,本文采取的多因子模型有較好的適性,夏普率更高,平均收益標(biāo)準(zhǔn)差更低,效果較好。
本文提出了一種融合了CNN與LSTM的深度強(qiáng)化學(xué)習(xí)股票策略交易算法CLDQN,深度強(qiáng)化學(xué)習(xí)算法性能很大程度上取決于所能表達(dá)的完整環(huán)境狀態(tài)特征,CLDQN使用價(jià)格曲線、股指曲線、技術(shù)、信息、市場(chǎng)因子組成的向量作為CNN全局輸入,利用LSTM尋找時(shí)間序列規(guī)律,引入隨機(jī)噪音與模型訓(xùn)練正則化增加魯棒性,降低模型過擬合,在真實(shí)數(shù)據(jù)集上比對(duì)了不同基準(zhǔn)算法的累積收益率、年化夏普率、年收益標(biāo)準(zhǔn)差、最大回撤率,實(shí)證結(jié)果表明CLDQN算法的累積收益率更高,魯棒性更好,擴(kuò)展性強(qiáng)。
深度強(qiáng)化學(xué)習(xí)算法的基本邏輯與人類思維邏輯相似,代表了自動(dòng)化交易最有可能的發(fā)展方向。未來工作可以從以下幾個(gè)方面考慮:(1)大多數(shù)金融RL使用探索-利用模式,外界非常變性數(shù)據(jù)有重要價(jià)值,考慮引入行為金融學(xué)理論,將市場(chǎng)情緒與投資者情況納入到影響因子中。(2)可解釋性,投資者希望投資邏輯有明確的解釋,以處理不斷變化的市場(chǎng)狀況,考慮加強(qiáng)認(rèn)知科學(xué)對(duì)深度強(qiáng)化學(xué)習(xí)投資組合優(yōu)化解釋作用。(3)引入遷移算法應(yīng)用到DRL中,以解決真實(shí)市場(chǎng)中的有效數(shù)據(jù)稀缺性問題。