韓冰 金瑋佳

人工神經網絡算法是國際上管理資金量最大的交易算法,在國內由于量化交易研究歷史較短,暫時還沒有看到有公開報道的大規模資金使用神經網絡算法進行管理。神經網絡的收益對于神經網絡的結構具有較好的穩健性。使用不同結構的神經網絡(不同的輸入層節點個數和不同的隱層節點個數)進行測試的結果發現,在結構相當大的變動范圍內,神經網絡策略均具有正的期望收益,并且使用相同結構的神經網絡投資不同品種,在合理的范圍內,該結構能對不同品種都能取得正的期望收益。本文所構建的神經網絡策略還具有較好的穩健性,其網絡結構在相當大的變化范圍內都能對所投資的期貨品種取得收益。
一、主要內容
本文對使用人工神經網絡算法進行期貨交易做了一個初步研究。研究結果表明,神經網絡算法對于期貨價格具有一定的預測作用。在測試期內,按照神經網絡策略進行投資,對所測試的期貨品種均能取得正的收益。尤其是在采用了一定的資產配置策略之后,神經網絡的收益曲線將更加穩定。本文的研究還揭示了神經網絡結構對收益的一些重要影響因素。從規模上來講,并不是越復雜的神經網絡(更多的輸入層節點和更多的隱層節點)在投資中表現越好,相反,當神經網絡的規模大到一定程度之后,其在投資中的表現會有所下降。另外,相比隱層節點數目而言,輸入層節點數目會對投資收益有更大影響。本文主要介紹了神經網絡策略用于期貨投資的基本做法。其中包括神經網絡的結構以及如何根據神經網絡信號進行買賣等等。
二、神經網絡算法用于期貨投資
1.神經網絡算法的原理。人工神經網絡是一種通過計算機模擬大腦神經網絡的算法,通過使用歷史數據對人工神經網絡進行訓練,該神經網絡可以對未來的數據有一定的預測功能。神經網絡算法以能夠適應高度非線性數據而著名,這種特性使其在金融領域得到廣泛的應用。
2.神經網絡的構建。本文所使用的神經網絡是一個傳統的3層神經網絡,它具有30個輸入層節點,5個隱層節點和1個輸出層節點,相鄰兩層之間都相互連通。本文中大部分的測試都是針對這個神經網絡進行的。利用這個神經網絡可以對未來一日的收益率(收益率用收盤價來計算)進行預測。例如,想利用第i-30,i-29,…,i-1日的收益率來預測第i日的收益率,則將i-30,i-29,…,i-1日的收益率數據作為輸入層的輸入數據,神經網絡通過內部運算,會在輸出層給出一個對第i日收益率的預測。值得提出的是,這個神經網絡并不是一個精心挑選的具有較好測試結果的網絡結構,相反,有很多網絡結構測試結果優于此網絡。這樣做是為了保證測試結果不給人以收益過好的假象,導致投資者在實際投資中無法達到測試中的收益。
3.根據算法結果確定買賣方向。根據上文提供的神經網絡算法的預測結果,在實際投資中交易策略如下:
三、神經網絡的訓練與測試
神經網絡的訓練是指其調整內部參數,使得輸出結果盡量與訓練數據集相吻合。而測試則是對比神經網絡的輸出結果與實際數據的差別,檢驗神經網絡預測的準確度。本文中神經網絡的訓練及測試嚴格遵循了訓練集和測試集分開的原則,即拿來訓練的數據不能再用于測試。本文以滬銅期貨為例來說明對神經網絡的訓練及測試過程:第一輪,拿2018年1月1日前的所有數據來訓練神經網絡;訓練完成之后,拿2018年1月1日之后n(n可以任取一個合適的正整數值)個交易日的數據對神經網絡進行測試,至此為止,第一輪的訓練及測試就結束了;在第二輪訓練中,將2018年1月1日前所有數據及其之后n個交易日的數據合并到一起,作為訓練數據進行訓練;訓練完成之后,拿接下來的n個交易日的數據進行測試,至此完成了第二輪訓練及測試;這種訓練及測試一直進行下去,直到使用完所有的數據。文中所有用于測試和訓練的數據都是根據收益率指數收盤值計算出來的每日收益率數據。
四、收益測試與比較
1.神經網絡算法交易的歷史收益測試。在三大交易所上市交易的品種之中,我們選擇大豆、豆粕、橡膠、銅、鋁等5種期貨的數據對神經網絡交易策略進行測試,這是因為這幾種期貨上市時間較早,數據較多。而對于神經網絡算法而言,必須有較多的數據進行訓練才能行之有效。另外,所有測試的起始時間均為2018年1月2日,截止時間均為2020年10月26日。測試一種策略的收益有很多種方式。比如,我們可以測試:每次以固定杠桿率開倉所獲得的歷史收益;每次以固定金額開倉所獲得的歷史收益;每次以固定手數開倉所獲得的歷史收益;以上每種測試方法既具有共性,又分別從不同側面反映了一種策略的收益情況。以固定杠桿率開倉的測試方法比較貼近于實際操作,其收益曲線反映了如果進行實際操作可能獲得的收益。這種方法的缺點是:如果該策略能夠取得收益,由于期初資金規模小,而后期資金規模大,那么從實際觀感上,測試者往往忽略了其初期的盈利能力和收益波動,而高估了近期的盈利和收益波動。另外,我們還可以每次買賣相同手數的期貨合約,這種做法可以用來比較策略收益與一直持有指數的收益的高低,從而判斷策略的優劣。在本文中,我們先使用每次以固定金額開倉的策略對神經網絡的收益進行測試,而后再以固定杠桿比率為1的策略對收益進行測試,這樣,投資者可以對神經網絡算法的投資效果有較為全面的了解。綜合統計結果,從神經網絡策略對于各種品種都有正的期望收益,其最大連續虧損金額一般小于最大連續盈利金額,最大連續虧損時間一般小于最大連續盈利時間等特點來看,神經網絡策略確實是一種能夠在長遠時間內贏得收益的策略。從另一個方面來看,如果沒有倉位控制策略和投資組合策略的配合,本文介紹的神經網絡策略會對投資者情緒影響較大,比較難以持續跟蹤。
2.與移動平均線策略的比較。為了對本文神經網絡策略有更進一步的了解,我們將該策略的表現與30日移動平均線策略做一個比較。在30日移動平均線交易策略里,如果南華商品指數收盤價向上穿越移動平均線,則買入,如果南華商品指數收盤價向下穿越移動平均線,則賣出。按這種策略交易橡膠、滬銅、滬鋁、豆一和豆粕期貨所獲得的收益情況。交易時間同樣是2004年1月2日至2009年10月26日,另外,也是控制每次開倉金額為100萬元,且不使用杠桿。經過對比,發現神經網絡策略和移動平均線策略彼此各有勝負。表中將移動平均線策略占優的重要指標用下劃線標出,將神經網絡策略占優的重要指標用中劃線標出。
五、組合投資多個品種的歷史收益
神經網絡策略的一個重要好處是其可以進行品種的投資組合,以降低收益曲線的波動。而對于趨勢跟蹤策略來說,由于商品一般具有同漲同跌的性質,遇到市場波動期,大部分商品的價格都在波動,遇到趨勢期,大部分商品都具有趨勢性。因此,使用趨勢跟蹤策略的時候,對不同品種進行投資組合對降低收益曲線波動性的作用較小。
前文對比了移動平均線策略和神經網絡策略投資單個品種的收益,這里我們將對比進行不同品種組合投資時神經網絡策略和移動平均線策略的收益,從對比結果可以看出,進行品種組合后,神經網絡策略收益曲線的波動性將顯著優于移動平均線策略。
這里同樣使用銅、鋁、橡膠、豆一、豆粕進行品種組合,具體的資金分配辦法是:①在期初將100萬元資金平均分配給各個品種,每個品種20萬;②每隔100天,計算一次各品種的期望收益,然后將手中資金按照期望收益的比例重新調整給各個品種,期望收益高的品種分配所得資金高,期望收益低的品種所得資金低,期望收益為0或者負值的不給分配資金。按照這種資金分配策略,2004年1月2日投入的100萬元資金,按杠桿比例為1進行投資,分別按照神經網絡和30日移動平均線策略操作所得的收益。對這兩種策略的收益曲線的各項指標進行了對比。雖然從利潤率來看,神經網絡策略和30日移動平均線策略相差無幾,但是從最大回撤比例來看,神經網絡策略則遠遠小于移動平均線策略。這表明,在相同風險之下,神經網絡策略可以使用更大的杠桿比例進行交易,從而在收益上勝過移動平均線策略。
六、進一步研究
研究結果表明,神經網絡投資策略對于很多期貨品種具有正的期望收益,并且多個品種組合起來之后,其收益較為可觀并且穩定。從另外一方面來看,本文給出的神經網絡結構和策略只利用了日收益率的信息,這當然會對很多其他信息造成遺漏,比如價格的絕對數值,開盤價,日最高價,日最低價等等。在更復雜的神經網絡策略中,應該對這些信息進行考慮。除此之外,國外有很多文獻報道中使用了各種對傳統神經網絡進行改進的方法,未來也可以參考這些方法對神經網絡策略進行更深入的研究。[基金項目:2020年度浙江省水利廳科技計劃項目? RC2033;省屬高校基本科研業務費資助項目FRF20QN004]