韓中華
(北方工業(yè)大學(xué)理學(xué)院,北京 100144)
眾所周知,作為毫無規(guī)律可循的時(shí)間序列數(shù)據(jù),提升股票數(shù)據(jù)的預(yù)測(cè)精度一直備受金融領(lǐng)域的關(guān)注。然而,隨著大數(shù)據(jù)與人工智能領(lǐng)域的不斷發(fā)展,利用計(jì)算機(jī)實(shí)現(xiàn)自我學(xué)習(xí)以及大批量計(jì)算,對(duì)預(yù)測(cè)準(zhǔn)度的提升不容小覷。其中,強(qiáng)化學(xué)習(xí)作為一種倍受矚目的機(jī)器學(xué)習(xí)方法,它利用與環(huán)境交互過程中的獎(jiǎng)勵(lì)函數(shù)激勵(lì)計(jì)算機(jī)學(xué)習(xí),模擬人腦在學(xué)習(xí)過程當(dāng)中的特點(diǎn)。自Alpha Go以4∶1擊敗著名圍棋選手李世石后,強(qiáng)化學(xué)習(xí)瞬間掀起了人工智能領(lǐng)域的研究浪潮,這一技術(shù)特點(diǎn)被應(yīng)用在包括金融在內(nèi)的不同領(lǐng)域,進(jìn)而凸顯其強(qiáng)大的學(xué)習(xí)能力。因此,強(qiáng)化學(xué)習(xí)將在未來廣泛應(yīng)用于金融領(lǐng)域。
目前,強(qiáng)化學(xué)習(xí)在金融股票投資組合這一領(lǐng)域應(yīng)用十分廣泛。例如,為了驗(yàn)證DDPG算法的有效性,齊岳等[1]以我國(guó)股市為例,發(fā)現(xiàn)利用強(qiáng)化學(xué)習(xí)方法構(gòu)建的投資組合,在實(shí)驗(yàn)期間的價(jià)值增幅遠(yuǎn)大于對(duì)照組,進(jìn)而得以驗(yàn)證。焦禹銘[2]通過對(duì)比A2C、PPO與SAC三個(gè)模型,發(fā)現(xiàn)SAC模型無論是在獲取收益還是在風(fēng)險(xiǎn)控制方面的優(yōu)勢(shì)最為顯著。考慮到股票價(jià)格變化受到多種因素影響,陳詩(shī)樂等[3]將遺傳算法(GA)與Transformer模型結(jié)合,提出GA-Transformer 這一組合模型,該組合模型要優(yōu)于傳統(tǒng)單模型的效果。
本文將DQN(Deep Q Network)算法作為基線,將三個(gè)不同優(yōu)化層面(Double-Q、Prioritized-replay以及Dueling)隨機(jī)組合成七個(gè)優(yōu)化模型對(duì)HDFC銀行(HDB)歷史交易數(shù)據(jù)進(jìn)行預(yù)測(cè),主要貢獻(xiàn)在于:①找出三種優(yōu)化方案分別對(duì)DQN 算法預(yù)測(cè)的影響作用;②對(duì)比三個(gè)優(yōu)化層面之間的聯(lián)系以及影響程度;③對(duì)短期股票收益預(yù)測(cè)產(chǎn)生的隨機(jī)性進(jìn)行多次實(shí)驗(yàn)取平均值,與基線模型進(jìn)行預(yù)期收益平均水平與波動(dòng)情況的對(duì)比分析。
相較于傳統(tǒng)的Q-learning 算法,DQN 算法解決了其Q-table 無法使用在狀態(tài)與動(dòng)作為連續(xù)的高維空間中。通過將Q-table 更新替換為一個(gè)函數(shù)擬合的問題,以此來獲得處于相近狀態(tài)的輸出動(dòng)作。這樣,將Deep Learning(DL)與Reinforcement Learning(RL)兩者相結(jié)合,便可獲得DQN。
在DQN 算法中,存在下列問題:首先,由于DL 中存在噪聲與延遲性,導(dǎo)致許多狀態(tài)與獎(jiǎng)勵(lì)的值普遍為0;其次,盡管DL 當(dāng)中每個(gè)樣本之間相互獨(dú)立,但是RL 當(dāng)前狀態(tài)的返回值則依賴后續(xù)狀態(tài)的返回值;最后,當(dāng)使用非線性表達(dá)式表示值函數(shù)時(shí),可能會(huì)出現(xiàn)不穩(wěn)定的情況。
針對(duì)上述問題,DQN 通過以下方面進(jìn)行優(yōu)化:首先,Q-learning 中使用獎(jiǎng)勵(lì)來構(gòu)造標(biāo)簽;其次,采用經(jīng)驗(yàn)池(Prioritized-replay)來解決相關(guān)性以及非靜態(tài)分布的問題;最后,采用主網(wǎng)絡(luò)(Main Net)產(chǎn)生當(dāng)前狀態(tài)的Q值,使用另一個(gè)目標(biāo)網(wǎng)絡(luò)(Target Net)產(chǎn)生相應(yīng)的目標(biāo)Q值。
由圖1 可得,在使用Tensorflow 來實(shí)現(xiàn)DQN的過程中,一般選用兩個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行搭建。其中target_net 用于預(yù)測(cè)Q_target 的值,但它并不會(huì)及時(shí)更新其中的參數(shù);eval_net 用于預(yù)測(cè)Q_eval,該神經(jīng)網(wǎng)絡(luò)擁有最新的神經(jīng)網(wǎng)絡(luò)參數(shù)。這兩個(gè)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)是完全一致,只是其中的參數(shù)并不一樣。

圖1 DQN網(wǎng)絡(luò)
除了傳統(tǒng)的DQN 方法之外,可以通過對(duì)其進(jìn)行優(yōu)化,得到下列三個(gè)DQN 的優(yōu)化算法:①Double DQN:解決了原本DQN 算法中Qmax導(dǎo)致Qreality當(dāng)中的過估計(jì)問題;②Prioritized-replay DQN:在訓(xùn)練過程中對(duì)獎(jiǎng)勵(lì)較高或者較低的值加以重視;③Dueling DQN:將每個(gè)狀態(tài)的Q值分解成每個(gè)狀態(tài)的Value加上每個(gè)動(dòng)作的advantage。
本文將DQN 算法作為基準(zhǔn),與七個(gè)組合模型的交易策略進(jìn)行比較。表1 為DQN 算法與三個(gè)優(yōu)化因子之間的組合情況。

表1 三個(gè)優(yōu)化因子與DQN算法的任意組合
本文選取的股票數(shù)據(jù)取自雅虎金融(yahoo finance)網(wǎng)站,選取的對(duì)象為HDFC Bank(HDB)。本文設(shè)定的時(shí)間區(qū)間為2020 年9 月2 日至2022年9 月2 日這兩年期間所有交易日的歷史價(jià)格與成交量數(shù)據(jù),包含最高價(jià)(high)、最低價(jià)(low)、開盤價(jià)(open)、收盤價(jià)(close)、成交量(volume)以及調(diào)整后的收盤價(jià)(adj close)共計(jì)505條。圖2是歷史數(shù)據(jù)集的總體趨勢(shì)圖。

圖2 HDB股票2020年9月2日到2022年9月2日歷史收盤價(jià)軌跡
從圖2 中,大致可以看出HDB 股票收盤價(jià)的歷史變化趨勢(shì)。從2020 年10 月到2021 年4 月保持上升趨勢(shì),但2021 年4 月到2022 年7 月之后整體呈下降趨勢(shì),2022 年7 月到2022 年9 月有所回暖。
將原始數(shù)據(jù)分為以下兩個(gè)部分。其中,訓(xùn)練集選取數(shù)據(jù)集中的前15~450 條數(shù)據(jù),從第450~505條數(shù)據(jù)則作為測(cè)試集來評(píng)估模型。
為了控制其他變量的影響,將固定移動(dòng)預(yù)測(cè)步長(zhǎng)(window_size)為15 天,即預(yù)測(cè)下一天股票短期收益情況取決于前15 天的歷史數(shù)據(jù);將總時(shí)間步數(shù)(total_timesteps= 150000),即循環(huán)訓(xùn)練的總時(shí)間步長(zhǎng)為150000次。
本文展開分析的角度共有兩個(gè)。首先,通過七種組合方法與單模型DQN 這一基線方法的對(duì)比,尋找出哪一個(gè)組合模型對(duì)短期股票預(yù)測(cè)效果較為貼切實(shí)際;其次,通過最終預(yù)測(cè)的短期股票收益情況,以此來確定這三種優(yōu)化方面之間的相互促進(jìn)或抑制作用。
在原始DQN 算法的基礎(chǔ)之上,可以優(yōu)化的方面為以下三個(gè),分別是:Double-Q,Prioritizedreplay 以及Dueling。通過這三個(gè)優(yōu)化因子的任意隨機(jī)組合,將產(chǎn)生七個(gè)組合模型以及一個(gè)基線模型。將Double DQN、Prioritized-replay DQN、Dueling DQN、Prioritized-replayDoubleDQN、Dueling Double DQN、Prioritized-replay Dueling DQN、Full DQN 以及DQN(baseline)模型分別標(biāo)記為1~8。考慮到每一次評(píng)估模型的預(yù)期漲跌情況為一隨機(jī)數(shù),選取20 次實(shí)驗(yàn)的結(jié)果以避免偶然性發(fā)生。表2 為這七個(gè)組合模型(序號(hào)1~7)以及基線模型(序號(hào)8)在測(cè)試集上最終持有資產(chǎn)相較于原始投入資產(chǎn)所占比重。

表2 七個(gè)組合模型以及基線模型在測(cè)試集上最終持有資產(chǎn)占原始投入資產(chǎn)比重
對(duì)表2 中的七個(gè)組合模型與基線模型DQN算法的20 次結(jié)果計(jì)算對(duì)應(yīng)的平均資產(chǎn)變動(dòng)情況(即平均值)與波動(dòng)幅度(即標(biāo)準(zhǔn)差)。表3為這七個(gè)組合模型與DQN 這一單模型的股票預(yù)期平均資產(chǎn)變動(dòng)與波動(dòng)情況。

表3 DQN算法及其組合模型的股票測(cè)試集上預(yù)期資產(chǎn)變動(dòng)與波動(dòng)情況
通過表3,可以發(fā)現(xiàn)在前三種加入單一優(yōu)化方面組合算法當(dāng)中,只有Dueling DQN 這一組合算法的現(xiàn)有資產(chǎn)較原始投入資產(chǎn)上漲幅度最大,為2.00%。因此,說明Dueling DQN 這一方法在預(yù)測(cè)股票短期收益方面較為貼合實(shí)際情況,其精度較高。其次則為Dueling Double DQN 模型,其現(xiàn)持有資產(chǎn)相較于原始投入資產(chǎn)上漲1.96%,說明在原本的Dueling DQN 模型中加入Double-Q后未對(duì)原始模型起到顯著性的抑制作用,基本保持了原有的收益水平。最后則為Prioritizedreplay Dueling DQN 這一組合算法,相較于原始投入資產(chǎn),其現(xiàn)有資產(chǎn)上漲了0.97%,說明在原本的Dueling DQN 模型中加入Prioritized-replay后,未對(duì)原本的Dueling DQN 算法起到任何促進(jìn)作用,僅僅保持了微弱的收益幅度。由此說明,在這三個(gè)優(yōu)化因子中,Dueling 這一優(yōu)化因子的促進(jìn)作用最強(qiáng),其次是Double-Q,最后則為Prioritized-replay。
從最后一列的標(biāo)準(zhǔn)差,可以看出,相較于原本的DQN 模型,只有加入Prioritized-replay 這一優(yōu)化因子后,標(biāo)準(zhǔn)差由原本的0.0488 降低至0.0474,由此可見波動(dòng)幅度有小幅度的降低。說明Prioritized-replay 這一優(yōu)化因子對(duì)DQN 模型的穩(wěn)定性具有促進(jìn)作用。而Dueling DQN 模型相較于原本的DQN 模型,其標(biāo)準(zhǔn)差上漲了0.0304。而該上漲幅度小于Double DQN 模型相較于原本的DQN 模型的0.0323。由此可見,在這三個(gè)優(yōu)化因子中,對(duì)DQN 模型穩(wěn)定性起到促進(jìn)作用的為Prioritized-replay,對(duì)模型穩(wěn)定性起到抑制作用的為Dueling以及Double-Q。
表4匯總了本文七個(gè)組合模型在測(cè)試集上的各項(xiàng)性能的表現(xiàn),包括年華化收益率與夏普比率。

表4 七個(gè)組合算法的回測(cè)結(jié)果(測(cè)試集)
本文計(jì)算年化收益率的計(jì)算公式為:
其中:“現(xiàn)持有資產(chǎn)/原有資產(chǎn)”選取表3 中七個(gè)組合模型的結(jié)果,測(cè)試集天數(shù)為55(即505-450=55)。最終結(jié)果如表4所示。
對(duì)于夏普比率的計(jì)算,本文基于原本的公式進(jìn)行了調(diào)整與改動(dòng)。由于原始公式中包含無風(fēng)險(xiǎn)利率,本文將無風(fēng)險(xiǎn)利率替換為表3 中DQN 模型的現(xiàn)持有資產(chǎn)占原有資產(chǎn)的平均比重,為93.44%;而原始公式中的投資組合預(yù)期報(bào)酬率與其標(biāo)準(zhǔn)差也相應(yīng)地替換為表3中七個(gè)組合模型的現(xiàn)持有資產(chǎn)占原有資產(chǎn)的平均比重以及標(biāo)準(zhǔn)差。本文計(jì)算夏普比率的公式為:
在年化收益率方面,基于Dueling DQN 模型在測(cè)試集上達(dá)到了13.27%,基于Dueling Double DQN 模型在測(cè)試集上達(dá)到了13.01%,基于Prioritized-replay Dueling DQN 算法在測(cè)試集上達(dá)到了6.44%。這三個(gè)模型均為在回測(cè)中有所盈利的,剩下的模型則均有所虧損。從整體上看,在原本的Double DQN 與Prioritized-replay DQN 模型中分別加入Dueling 這一優(yōu)化因子后,其年化收益率均有顯著性提升;在原本的Double DQN模型與Dueling DQN 模型中加入Prioritized-replay這一優(yōu)化因子后,年化收益率有明顯的負(fù)增長(zhǎng);在原本的Prioritized-replay DQN 模型與Dueling DQN 模型中加入Double-Q 這一優(yōu)化因子后,年化收益率未起到了顯著性改變。
在夏普比率方面,基于Dueling DQN 算法在測(cè)試集上達(dá)到了1.0808,基于Dueling Double DQN 算法達(dá)到了1.0545,剩下的組合模型均小于1。由此可見,Dueling 與Double-Q 這兩個(gè)優(yōu)化因子對(duì)DQN 模型均起到了促進(jìn)作用,并且將二者同時(shí)加入模型中不會(huì)對(duì)模型起到顯著性的抑制作用。
本文通過將DQN 算法結(jié)合三個(gè)不同優(yōu)化方面的七個(gè)相互組合模型,與單一模型DQN 算法進(jìn)行對(duì)比,得出以下結(jié)論:①這七個(gè)組合模型中,只有Dueling DQN 算法的盈利率達(dá)到了最高,為2.00%,說明該模型對(duì)股票短期收益預(yù)測(cè)結(jié)果最為貼合實(shí)際;②這三個(gè)優(yōu)化方面之間,Dueling 對(duì)Double-Q 與Prioritized-replay 均起到了顯著性促進(jìn)作用,而Prioritized-replay對(duì)Double-Q與Dueling 均起到了顯著性抑制作用,Double-Q則對(duì)Prioritized-replay 與Dueling 未起到顯著性改變;③將三個(gè)優(yōu)化方面對(duì)DQN 算法共同優(yōu)化,相較于單一模型DQN 算法而言,盈虧率有所上升,由此可以得出三個(gè)優(yōu)化方面之間存在相互獨(dú)立的作用。
本文在股票短期收益預(yù)測(cè)方面利用深度學(xué)習(xí)當(dāng)中的DQN 算法進(jìn)行探索,針對(duì)不同三個(gè)優(yōu)化方面進(jìn)行對(duì)比驗(yàn)證,為后續(xù)將深度學(xué)習(xí)應(yīng)用于金融領(lǐng)域奠定了基礎(chǔ)。鑒于短期預(yù)測(cè)的不穩(wěn)定性,在未來后續(xù)研究中仍有可以優(yōu)化提升的方面。個(gè)人認(rèn)為后續(xù)研究還可以在兩大主題上進(jìn)行展開:①引入較為穩(wěn)定的預(yù)測(cè)方案及優(yōu)化技巧的前沿方案,以此來抑制隨機(jī)性帶來的影響;②可將該DQN 算法應(yīng)用在金融其他領(lǐng)域,例如投資領(lǐng)域,以此來促進(jìn)我國(guó)金融領(lǐng)域智能化大力發(fā)展。