陳希遠(yuǎn),朱 佳
(華南師范大學(xué)計(jì)算機(jī)學(xué)院,廣東 廣州 510631)
機(jī)器學(xué)習(xí)在外匯交易市場(chǎng)等多種領(lǐng)域中展現(xiàn)出優(yōu)異性能。鑒于CNN網(wǎng)絡(luò)在圖像處理方面的優(yōu)勢(shì),已知價(jià)格在過(guò)去一段時(shí)間內(nèi)的波動(dòng)圖后,本文提出將這些波動(dòng)圖與其他特征聯(lián)合起來(lái),利用CNN網(wǎng)絡(luò)對(duì)外匯價(jià)格進(jìn)行預(yù)測(cè)。
首先,利用價(jià)格波動(dòng)圖而不僅僅是價(jià)格特征進(jìn)行預(yù)測(cè),主要基于如下2點(diǎn)考慮:
1)無(wú)論是每分鐘更新一次的Close價(jià)格還是每小時(shí)更新一次的Open價(jià)格,價(jià)格特征無(wú)法有效展現(xiàn)價(jià)格的變化趨勢(shì)。這也是眾多交易商利用圖表(比如K線圖)進(jìn)行技術(shù)分析的主要原因。
2)通過(guò)圖表分析,交易商可更輕松地發(fā)現(xiàn)市場(chǎng)規(guī)律。這些圖表本質(zhì)上屬于圖像,與CNN網(wǎng)絡(luò)結(jié)合起來(lái),便可開(kāi)發(fā)出圖表識(shí)別和分析水平可與資深交易商相媲美的交易系統(tǒng)。
基于以上2點(diǎn)考慮,可利用反映某2種貨幣過(guò)去價(jià)格波動(dòng)的時(shí)間序列數(shù)據(jù)圖,對(duì)CNN網(wǎng)絡(luò)進(jìn)行訓(xùn)練。然后,根據(jù)CNN網(wǎng)絡(luò)的輸出,便可預(yù)測(cè)未來(lái)幾分鐘的價(jià)格波動(dòng)情況。如果CNN網(wǎng)絡(luò)可準(zhǔn)確預(yù)測(cè)價(jià)格波動(dòng),便可實(shí)現(xiàn)贏利,即:CNN網(wǎng)絡(luò)預(yù)測(cè)價(jià)格將要上升時(shí)買入,預(yù)測(cè)價(jià)格將要下降時(shí)拋出。圖1給出一個(gè)圖像示例,圖2給出本文提出的預(yù)測(cè)流程。從圖中可以看出,預(yù)測(cè)流程只有一個(gè)輸入和一個(gè)輸出。圖像即是網(wǎng)絡(luò)輸入;根據(jù)CNN網(wǎng)絡(luò)的計(jì)算結(jié)果,可能有2種輸出情形?!癠P”表示匯率價(jià)格將會(huì)上升,“DOWN”表示價(jià)格將會(huì)下降。
圖1 CNN網(wǎng)絡(luò)的輸入圖像示例
圖2 價(jià)格預(yù)測(cè)流程
1)本文提出采用多尺度CNN網(wǎng)絡(luò)架構(gòu),將圖像作為特征進(jìn)行外匯價(jià)格預(yù)測(cè)。
2)本文提出一種聯(lián)合特征學(xué)習(xí)機(jī)制,通過(guò)將多種價(jià)格特征有機(jī)結(jié)合,提升預(yù)測(cè)性能。
3)利用Google Finance(finance.google.com)網(wǎng)站2種主要外匯數(shù)據(jù)集進(jìn)行全面的仿真實(shí)驗(yàn);結(jié)果證明了本文算法的優(yōu)異性。
首先需要將價(jià)格數(shù)據(jù)轉(zhuǎn)化為圖像,就是將一段時(shí)間內(nèi)的價(jià)格圖轉(zhuǎn)化到窗口中(比如30 min窗口),然后用其估計(jì)未來(lái)某段時(shí)間內(nèi)的價(jià)格(比如未來(lái)5 min的價(jià)格)。
Close價(jià)格是金融界應(yīng)用最為廣泛的價(jià)格指標(biāo),因此首先繪出Close價(jià)格圖,如圖1所示。其他3個(gè)指標(biāo)將在其他方面用到,具體如下文所述。同時(shí),長(zhǎng)度不宜過(guò)長(zhǎng),否則無(wú)法根據(jù)本文的預(yù)測(cè)手段實(shí)現(xiàn)贏利。因此,結(jié)合本文實(shí)驗(yàn)結(jié)果,采用30 min窗口預(yù)測(cè)未來(lái)5 min窗口期間的價(jià)格。簡(jiǎn)單說(shuō)來(lái),本文目標(biāo)闡述如下:
已知t-30到t期間的Close價(jià)格圖,人們希望使t到t+5時(shí)間段內(nèi)的收益p大于0;其中,根據(jù)時(shí)間t和t+5時(shí)刻的Close價(jià)格計(jì)算收益p。
“三嚴(yán)三實(shí)”是基于對(duì)全黨作風(fēng)現(xiàn)狀的準(zhǔn)確把握、著眼于解決作風(fēng)方面的突出問(wèn)題提出來(lái)的,具有很強(qiáng)的現(xiàn)實(shí)針對(duì)性?!叭龂?yán)三實(shí)”為新形勢(shì)下黨員干部修身、為官、做事立下了規(guī)矩,是抵制“政治微生物”侵蝕、保證“免疫系統(tǒng)”健康運(yùn)轉(zhuǎn)的良方。開(kāi)展“三嚴(yán)三實(shí)”專題教育,就是要引導(dǎo)黨員干部堅(jiān)持“吾日三省吾身”,經(jīng)常用“三嚴(yán)三實(shí)”這面鏡子,從思想、工作、生活等方面深查細(xì)照,不斷增強(qiáng)自我凈化、自我完善、自我革新、自我提高的能力,永葆黨的先進(jìn)性和純潔性。
人們可在2種情形下獲益:1)在t時(shí)刻買入,Close價(jià)格在t到t+5時(shí)刻上升;2)在t時(shí)刻賣出,Close價(jià)格在t到t+5時(shí)刻下降。其他情況下,人們均會(huì)遭受損失。
圖3給出了基于CNN網(wǎng)絡(luò)的預(yù)測(cè)結(jié)構(gòu)。在預(yù)處理階段,本文采集600×800大小的時(shí)間序列圖像,將其調(diào)整為50×30縮略尺寸。然后,將4通道顏色圖像(RGBA)轉(zhuǎn)化為單通道圖像(灰度圖)。此時(shí),這些縮略圖與空間1500中的點(diǎn)相對(duì)應(yīng)。因?yàn)槿藗冎魂P(guān)注圖像曲線部分的像素(如圖1所示),為了保證特征表示的一致性,采用自然語(yǔ)言處理領(lǐng)域的嵌入操作,將稀疏序列特征轉(zhuǎn)化為更為緊致的特征表示。該嵌入操作部署為前向反饋神經(jīng)網(wǎng)絡(luò)層,且嵌入矩陣為Wemb∈30×Demb,將稀疏的30維向量映射為更加緊致的Demb維向量。本文根據(jù)經(jīng)驗(yàn),設(shè)置Demb=20,對(duì)嵌入矩陣進(jìn)行隨機(jī)初始化,最終提供給多尺度網(wǎng)絡(luò)層的特征向量的尺寸為50×50。
圖3 本文基于CNN網(wǎng)絡(luò)的預(yù)測(cè)架構(gòu)
CNN網(wǎng)絡(luò)層具有多尺度特性。本文采用支持滑動(dòng)窗口和矯正線性單元(ReLU)技術(shù)的CNN網(wǎng)絡(luò)提取局部背景或上下文(context):
(1)
因?yàn)閮r(jià)格特征和圖像特征間存在關(guān)聯(lián),因此有必要進(jìn)行聯(lián)合特征學(xué)習(xí)。為此,采用2個(gè)共享式全連接隱藏層,如圖3所示。
雖然多種特征學(xué)習(xí)算法在目標(biāo)和運(yùn)動(dòng)識(shí)別領(lǐng)域取得了顯著效果,但這些算法對(duì)所有圖像塊進(jìn)行轉(zhuǎn)化時(shí)往往只學(xué)習(xí)了單個(gè)特征映射矩陣;雖然實(shí)現(xiàn)了平移不變性,但沒(méi)有詳細(xì)討論如何將圖像特征和文本特征融合起來(lái)。因此,本文提出對(duì)多個(gè)不同但具有一定關(guān)聯(lián)的特征進(jìn)行聯(lián)合學(xué)習(xí),利用2個(gè)全連接隱藏層(圖3中的FC1和FC2)提取可用于特征表示的區(qū)分性信息。假設(shè)f表示與某個(gè)圖像塊相對(duì)應(yīng)的向量,則可進(jìn)行對(duì)比度標(biāo)準(zhǔn)化:
(2)
其中ε表示權(quán)重參數(shù)。根據(jù)本文實(shí)驗(yàn)結(jié)果,將ε設(shè)置為0.2,此時(shí)效果最優(yōu)。然后,通過(guò)求解如下優(yōu)化問(wèn)題,便可獲得所有被采樣圖像塊的稀疏編碼:
(3)
聯(lián)合損失函數(shù)可表示為:
(4)
(5)
(6)
(7)
圖4 Momentum SGD算法獲得的訓(xùn)練和驗(yàn)證損失
利用支持Softmax激活功能的輸出層計(jì)算訓(xùn)練損失得分和驗(yàn)證損失得分,然后對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行互熵運(yùn)算,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)如何使訓(xùn)練誤差最小化。驗(yàn)證得分定義為測(cè)試數(shù)據(jù)的精度。顯然,本文中的精度是指外匯價(jià)格波動(dòng)預(yù)測(cè)與實(shí)際價(jià)格波動(dòng)相吻合的程度。筆者也嘗試了其他的優(yōu)化問(wèn)題求解算法,所得的訓(xùn)練和驗(yàn)證損失與SGD相近。因此,本文決定在實(shí)驗(yàn)中采用Momentum SGD算法。
如上文所述,本文采用Momentum SGD算法求解優(yōu)化問(wèn)題。選擇2對(duì)真實(shí)貨幣EUR/USD和GBP/USD進(jìn)行實(shí)驗(yàn),相關(guān)數(shù)據(jù)可從Google Finance采集。預(yù)測(cè)結(jié)果包含2種:上升或者下降。如1.1節(jié)所述,“上升”表示貨幣價(jià)格將在窗口結(jié)束后的5 min內(nèi)上升;“下降”表示貨幣價(jià)格將在窗口結(jié)束后的5 min內(nèi)下降。實(shí)驗(yàn)時(shí)間選擇為2016年5月1日至2016年7月29日,共包括3000個(gè)長(zhǎng)度為30 min的價(jià)格圖。
本文共有3000個(gè)30 min價(jià)格圖,采用“80-20”分配比例,2400個(gè)圖在實(shí)驗(yàn)中作為訓(xùn)練數(shù)據(jù),600個(gè)圖作為測(cè)試數(shù)據(jù)。
2.2.1 預(yù)測(cè)精度的比較
本文首先比較了EUR/USD和GBP/USD的預(yù)測(cè)精度,結(jié)果如圖5和圖6所示。從圖5可以看出,圖像特征與價(jià)格特征融合或者不融合,其預(yù)測(cè)精度均優(yōu)于基準(zhǔn)算法的50%水平。
圖5 EUR/USD預(yù)測(cè)精度比較
圖6 GBP/USD預(yù)測(cè)精度比較
圖6中的GBP/USD也具有類似結(jié)果。與EUR/USD相比,GBP/USD的預(yù)測(cè)精度更低。可以看出,6月的平均預(yù)測(cè)誤差高于5月和7月,這可能與6月英國(guó)宣布脫離歐盟有關(guān)。這種事件非常少見(jiàn),任何預(yù)測(cè)模型都難以處理;盡管如此,預(yù)測(cè)結(jié)果仍然在可接受范圍內(nèi)。
2.2.2 獲利比較
對(duì)于外匯價(jià)格預(yù)測(cè),包括著名投資公司在內(nèi)的大部分投資商更為關(guān)注獲利情況而不是預(yù)測(cè)精度。本文比較了EUR/USD和GBP/USD的獲利情況,結(jié)果如圖7和圖8所示。圖中柱狀圖的數(shù)據(jù)表示PIP點(diǎn)(price interest point)。
圖7 EUR/USD收益情況(PIPs)比較
圖8 GBP/USD收益情況(PIPs)比較
例如,由于受到英國(guó)脫歐事件影響,基準(zhǔn)算法在進(jìn)行GBP/USD交易時(shí)遭受損失,但本文算法仍然獲利,如圖8所示。結(jié)果表明,當(dāng)不可預(yù)測(cè)的事件發(fā)生時(shí),本文算法能夠像人類交易員那樣自動(dòng)調(diào)整預(yù)測(cè)模型。
2.2.3 與其他傳統(tǒng)算法的比較
為了提高本文研究的完整性,將本文算法與多種傳統(tǒng)的機(jī)器學(xué)習(xí)算法作比較,包括樸素貝葉斯(NB)算法、支持向量機(jī)(SVM)算法、多層感知器(MLP)算法及eXtreme梯度提升算法(XGBOOST)。XGBOOST是近期專門(mén)針對(duì)梯度提升而設(shè)計(jì)的開(kāi)源模型庫(kù),通過(guò)將多種弱預(yù)測(cè)模型聚集起來(lái)構(gòu)成一種新的預(yù)測(cè)模型。與其他梯度提升算法類似,它的模型構(gòu)建過(guò)程也是分步進(jìn)行,通過(guò)優(yōu)化隨機(jī)可微損失函數(shù)對(duì)各種模型進(jìn)行融合。
圖9和圖10給出了各種算法對(duì)EUR/USD和GBP/USD貨幣交易的預(yù)測(cè)精度。
圖9 各種算法對(duì)EUR/USD的預(yù)測(cè)精度比較
圖10 各種算法對(duì)GBP/USD的預(yù)測(cè)精度比較
本文提出了一種基于聯(lián)合特征學(xué)習(xí)的多尺度CNN網(wǎng)絡(luò),并將其用于外匯交易。據(jù)筆者所知,多年來(lái)相關(guān)領(lǐng)域內(nèi)還沒(méi)有其他文獻(xiàn)做過(guò)類似研究。本文不是將每分鐘的價(jià)格作為輸入特征,而是將30 min時(shí)間窗口內(nèi)的價(jià)格數(shù)據(jù)以圖片形式輸入CNN網(wǎng)絡(luò),進(jìn)而預(yù)測(cè)時(shí)間窗口結(jié)束后5 min內(nèi)的貨幣價(jià)格。因此,本文構(gòu)建了一種聯(lián)合特征學(xué)習(xí)機(jī)制,在多尺度CNN網(wǎng)絡(luò)下實(shí)現(xiàn)了圖像特征和價(jià)格特征的融合,并對(duì)聯(lián)合損失函數(shù)和超參數(shù)微調(diào)進(jìn)行了優(yōu)化。