郭業清, 鞠順達
(1 天訊瑞達通信技術有限公司, 廣州510623; 2 深圳大學 大數據系統計算技術國家工程實驗室, 廣東 深圳518052)
金融時間序列具有很大的波動性和噪聲,增加了高頻交易操作中的預測難度和風險。 在關鍵交易點進行準確的交易操作是獲得高收益同時降低風險的有效手段[1-4]。 對于關鍵交易點的定義有不同的方式,如Tang 等人將金融時間序列的拐點做為交易關鍵點,提出集成PLR-WSVM 算法預測拐點,并在拐點進行相應“買入”和“賣出”操作,來最大化收益[5]。 而Tsai 等人利用一分鐘的日內數據,提出了一種適用于指數期貨市場交易的及時開盤突破TORB 策略。 他們將價格突破“阻力位”和“支撐位”的位置作為買入和賣出的關鍵點,發現TORB 策略性能優于TRB 策略[6]。
此外,其他學者還增加了對“持有”操作的研究。 基于交易行為的預測[7-9],為股票算法交易提供了一種端到端的解決方案。 如Jo?o Nadkarni 等人將主成分分析法PCA 與增強拓撲神經演化算法NEAT 相結合,確定股票市場中的最佳交易點,提出的算法性能表現都優于買入-持有策略[7]。 但Nadkarni 等人并沒有在熊市數據集上驗證所提出算法的有效性。 Sezer 等人提出了一種根據技術指標分析,基于神經網絡的股票價格預測與交易系統。利用最常用的技術分析指標RSI、MACD 等將金融時間序列數據轉換為“買入”、“賣出”、“持有”三種交易信號[8]。 由于“買入”和“賣出”信號較少,“持有”信號占絕大多數,導致了數據不平衡問題的出現。
深度學習和強化學習技術也在常見交易算法中被使用,如Jeong 和Kim 使用深度Q 學習算法來促進金融交易決策。 深度強化Q 學習通過三層全連接神經網絡實現,以預測買入、賣出、持有的股票數量[9]。 通過對交易份額的預測,文獻[9]中提出的算法,其最大利潤比固定股票數量交易算法高出12倍。 Jinke 等人將actor-critic 強化學習算法用于交易行為的學習和預測上。 該算法中actor 網絡和critic 網絡共享同一個LSTM 網絡,用于更好的產生Q 值和策略邏輯,進一步用于actor-critic 的決策[10]。 此類算法雖通過對交易動作(持股比率或交易概率)做出預測,但忽略了對交易關鍵點研究。
傳統的投資組合選擇算法[11-12]也可以被看做是基于交易行為預測的算法。 其使用包含多個資產的比率向量作為算法的預測輸出,需要預測每項資產的份額,類似于算法[9-10]。 上述基于交易行為的預測算法都采取了每一天都進行交易決策的方式進行操盤,具有較高的交易頻率,不僅增加了交易手續費且降低了算法抗風險能力。
本文認為,交易關鍵點只有在特定的上下文子序列中才有意義,定義為子序列中的最佳買入和最佳賣出點。 因此,本文設計了上下文子序列分割算法,劃分出相應的子序列,構造訓練數據集。 基于LSTM,提出面向交易關鍵點的漸近學習算法AL。針對序列中關鍵交易信號數據不平衡問題,提出使用交易關鍵點附近數據,進行連續預測未來交易關鍵點統計信號的方法,通過統計信號的收斂性做出交易決策。 從而提高了算法預測的準確性和魯棒性。
為了 從 市 場 序 列X ={xi| xi=(o,c,h,l,中劃分出上下文子序列,設計輔助序列R:

其 中, β ∈ [0,1] 為 輸 入 價 格 序 列P =} 和交易量序列A = {} 的調整權重。 設置權重β 可以從兩個序列中提取出不同的特征組成輔助序列R,rsi 函數為RSI 指標的計算方法[13]。
根據輔助序列R 劃分所得的上下文子序列,根據交易操作方向不同分為RB(Rounding Bottom)子序列和RT(Rounding Top)子序列。 以RB 子序列為例,將第i 個RB 子序列Xi展示如圖1 所示:通過圖中實線所示,輔助序列R 在虛線所示的價格時間序列P 上確定D 點、L 點和U 點。a 和b 分別為輔助序列R 的上下門限,εD為a 點的松弛。
第i 個子序列Xi由3 個關鍵點D 點、L 點和U點來定義。 3 個關鍵點由包含價格和時間的二維坐標表示,指數的上下門限記為a 和b。
D 點表示趨勢下降階段的起點, D 點坐標為( pD,tD) 。D 點所處區間為 [ t1,t2] ,其中:點和U′點所確定的時間區間。在尋找第一個RB


圖1 RB 子序列XiFig. 1 RB subsequence Xi

在 [ tD,tD+ TB] 區間內,滿足Rt<b 的價格集合中,取最小價格為pL,tL為對應時間。 U 點坐標為( pU,tU) ,是RB 子序列的終點,U 點價格應上升到pD之上。S 是 [ tL,tD+ TB] 區間上價格大于pD的樣本集合。S 的表達式為:

pU為集合S 中價格最大值, tU為pU對應的時間。
確定RB 子序列后,由圖1 所示,相鄰RB 子序列的L′點,與L 點間可看作RT 子序列。
由1.1 節可知,要確定一個完整的RB/RT 子序列,首先需要確定D 點位置,再根據D 點確定L 和U。 據此設計上下文子序列生成如算法1 所示。
算法1上下文子序列生成算法
輸入:價格時間序列P 和交易量時間序列A,輔助序列R 上下門限a 和b,指標的松弛εD,子序列時間窗口TB,指數加權調節參數λ
輸出:隊 列 Q ={〈(pD,tD), (pL,tL), (pR,tR)〉k}
實現步驟如下:
(1)根據式(1)由序列P 和序列A 生成R 時間序列。
(2)初始化tL′=0,=∞
(3) for riin R[tL′,]:
(5)for rjin R [ t1,t1+ TB] :
(6) if rj<a - εD∶t2=j
(7)for r in R [ t1,t2] : 代入(4),求得 ( pD,,將D 點 ( pD,tD) 加入隊列Q。
(8)for r in R [ tD,tD+ TB] :確定R <b 的區間,代入式(5),確定 ( pL,tL) ,將L 點坐標 ( pL,tL) 加入隊列Q。
(9)for r in R [ tL,tD+ TB] :確定價格大于pD的樣本集合S。
(11)由[ D,U]確定RB 子序列,相鄰[ L′,L]確定RT 子序列。
算法首先提取價格時間序列和交易量時間序列的特征組成輔助序列R, 如式(1)所示,第3 ~第8行通過輔助序列R 確定D 點所處區間。 第9~第10行確定D 點,并加入加入隊列Q,第11 ~第17 行依次根據D 點確定L 點和U 點。 最后更新=tU,返回行3,繼續尋找下一個D 點,L 點和U 點。
Lock the fault joint when it is adjusted to the desired locked angle,unlock joints J3-J7,and then regard links L1and L2 as a new link bound together.
給定 上 下 文 子 序 列 Xi? X,i = 1,...,n,dim ( Xi) =N × 5,N ≥1。 對每個塊Xi分割成m 個子塊?Xi,j =1,...,m,dim (=M × 5,M ≥s,Mmods =0。 其中s ≥1 為預先設置的常量。 如圖2所示。

圖2 子序列Xi 中子塊Fig. 2 The time points D and L in subsequence Xi
設計神經網絡函數f:R5×M→R3為:


每次輸入的起點D 點是第d 條記錄開始。 對于同一個Xi的不同次輸入,j ∈[1,m],γi和ρi為固定值,設置懲罰項1/ () ,當記錄數越大時,懲罰項越大。
基于輔助序列R,由生成算法分割出n 個不同上下文子序列,每個上下文子序列Xi中子塊Yij是由包含o,c,h,l 的4 維價格向量和交易量組成的5 維向量。 LSTM 神經網絡模型采用序列模型,Batch Normalization 層用來保持數據輸出的標準化。 然后是LSTM 層,其次是Dropout 層,以特定的概率隨機舍棄一些神經元來防止過擬合。 Dense 層用于輸出最終結果,輸出一個三維向量,即 (γ,η,ρ)T,如圖3所示。

圖3 神經網絡架構Fig. 3 Neural network architecture
將金融時間序列數據輸入到2.1 節中訓練好的神經網絡f (;θ) 中連續預測,并對交易關鍵點的收斂屬性自動進行統計分析,得到交易決策依據,如算法2 所示。
算法2漸近學習算法
輸入:時間序列數據 { xk}, 輔助序列R, 交易關鍵點預測神經網絡f (;θ) ,R 序列上門限a,記錄窗口大小s, 確定η,ρ,γ 收斂記錄數b 以及收斂閾值εη,ερ,εγ。
輸出:交易點信息 { ( k,xk)}k
實現步驟如下:
(1) Y =φ, B =φ, Q =φ, sc =0
(2)for k =1 to infinity:
(3) if Rk>=a:
(4) sc +=1, Y =φ, B =φ, Q =φ
(5) continue
(6) If sc >0 :
(7) sc =0, Y +=xk
(8) Let dim (Y ) =M × 5
(9)If M mod s ==0:

首先根據輸入時間序列 {xk, 設定狀態標志sc,利用sc 狀態和R 序列來確定上下文子序列開始標志,如行(3)~行(7)所示。M 為Y 中記錄數,每條記錄包含(o,c,h,l,a) 這5 個維度的信息,當M為s 整數倍時,將原始數據序列Y 輸入訓練好的神經網絡函數f (;θ) 中去,得到信息的預測序列B,如行(9)、(10)所示。 同時每次計算出預測值序列的平均值,得到平均值序列Q, 如(11)、(12)所示。當序列Q 長度大于確定η,ρ,γ 收斂記錄數b,計算Q 中所有元素距離的上確界,當關鍵交易點相關信息上確界值 ( γε,ρε,ηε) 小于收斂閾值εη,ερ,εγ時,輸出交易關鍵點信息,如行(13)~(17)所示。
本節主要介紹了實驗結果評價指標以及訓練與測試數據集來源,并按照3.3 設置各對比算法參數。
本文使用以下3 種指標來評價各種算法的表現: 回報率(RoR)、 夏普率(SR) 和最大回撤率(MDD)。 回報率是最終資產值, vi是初始資產值。 夏普率252,Eri是投資的期望回報, rf為無風險回報率,σri是ri的標準差。 初始值rf設為0.02。 最大回撤率為
測試數據如表1 所示,每條數據分別包含開盤價、收盤價、最高價、最低價、交易量,五個特性的信息。 如圖4 中“UBAH”曲線所示,數據集WMT,AAPL 市場行情上漲,為“牛市”行情。 NASDAQ,AMD 數據集市場行情下跌,為“熊市”行情,最后MSFT,BIDU 數據集行情下跌,為“盤整”行情。 因此這六個數據集包含了不同的市場趨勢,可以更好地測試各個算法的性能表現。

表1 數據集Tab. 1 Summary of dataSets
AL 算法與其他對比算法的配置如下:
·UBAH 算法為市場策略,即為“買入-持有”策略,反應當前真實市場行情。
·AL:漸近學習算法,具體神經網絡參數為:LSTM 層神經元數目為247,Dense 層神經元數目為3,學習率為0.01,迭代系數為500。
·TORB:即時開盤區間突破算法,以每分鐘交易量平均值PMMV 和每分鐘回報方差PMVR 作為參數[6]。
·PG:梯度策略算法[14]是一種基于智能體的強化學習算法,旨在模擬專業的建議策略,參數設置:訓練回合數為20,每回合訓練步數為200。
·ONS:使用Agarwal 的在線牛頓步驟[11],并將參數設置為η =0,β =1,γ =1/8。
·CFR-OGD:在線梯度下降的組合回歸策略[12],具體參數設置為:ε =10,ω =5。
·PLR-WSVM:一種結合分段線性表示和支持向量機的拐點預測交易算法,買入和賣出的RSI24(t) 分別設置為40 和60,αPLR=0.05,βPLR=5,nwop=1,nwtp=1,其他參數按論文[5]設置。
針對表1 中的數據集,分別使用3.3 小節中提到的算法并設置相關參數進行測試,實驗結果如表2 所示,最佳指標采用加粗顯示。
在上述3 個評價指標中,AL 算法在收益率和夏普率指標在除D4上都達到了最佳。 AL 算法與在各數據集上性能表現第二名算法相比,分別將收益率指標提高了[83%,214%],將夏普率指標提高了[71%,996%]。 最大回撤率指標方面,在D5數據集上,傳統組合投資算法ONS 獲得最優值,在剩余數據集上AL 算法均獲得最佳。在圖4 中,對比AL 和其余各算法的RoR 曲線可知,AL 算法交易頻率較低,僅保證必要的交易動作,只在關鍵的買賣點出進行“買入”和“賣出”操作。 相比與交易操作模式相近的PLR-WSVM 算法,漸近學習算法AL 交易頻率更低,抗風險能力更高,而且漸近學習算法AL 相對于PLR-WSVM 交易操作更準確,PLR-WSVM 容易出現買入不準確的情況。 例如在D1數據集上,PLR-WSVM 都在第250天以及700 天左右時,都出現了過早買入的情況。
對于其它算法,在D1數據集上,前1700 天內,TORB 算法收益比較接近AL 算法,但是在1700 天后, AL 算法通過魯棒性的關鍵點預測比較好的規避了市場行情驟的降風險,如UBAH 曲線所示。TORB 算法并沒有抵抗該風險的能力,所以最終收益出現了較大幅度的損失。 在D6數據集上,可以發現前1300 天時,CFR-OGD 算法可以保持和AL 算法相同的盈利能力,但是隨后AL 算法盈利能力較大的領先CFR-OGD 算法。 因為從UBAH 曲線可以看出隨后市場為“盤整”行情,AL 算法仍能準確預測出關鍵買賣點,保持平穩收益,而CFR-OGD 算法出現收益下滑。

表2 實驗結果Tab. 2 Summary of experimental results

圖4 6 個數據集上回報率指標Fig. 4 The dynamic RoRs of senven algorithms on the six datasets
針對交易關鍵點預測問題,本文提出漸近學習算法AL。 通過輔助序列R 設計上下文子序列生成算法,在子序列中,通過LSTM 神經網絡訓練學習關鍵交易點的統計收斂性,并做出相應的交易決策。AL 算法僅在上下文子序列中的關鍵交易點進行交易,降低了預測交易的頻率,從而降低手續費和交易風險。 通過多次預測的收斂結果來確定交易關鍵點的相關信息,提高了算法的魯棒性。 實驗結果表明,AL 算法相比傳統基于對比的傳統算法,減少了操盤次數,降低了風險,提高了交易收益。 后續可以進一步研究新的交易關鍵點的收斂學習算法,比如根據收斂方式的不同繼續設計不同的收斂算法,研究關鍵點的漸近屬性與交易操作點的統計相關性。