A. 單一模型和融合模型區別
長期以來,期貨市場的穩定運行一直是交易所關注的重點,對於期貨品種的功能發揮起到重要作用。合約交易持倉量是期貨市場運行的重要指標,也是利用期貨管理風險的基礎指標。為增強對市場趨勢的了解,提高運行預判能力,本文基於合約歷史運行規律及風控措施參數,開展數據分析,提取歷史數據及風控參數作為輸入特徵,建立基於多個機器學習演算法的融合模型,利用網格搜索方式設置最優參數,進行期貨合約未來五日交易量、持倉量的預測。實驗結果顯示,本文構建的演算法模型預測交易量平均准確率接近70%、持倉量平均准確率達到83%。同時,本文以案例分析的形式證實了融合模型和網格搜索技術對於預測准確率的提升存在顯著效果。
一、項目背景
期貨交易是現貨市場的晴雨表,為商品遠期定價提供基準,具有護航實體經濟穩健運行的重要意義。期貨交易價格由不同參與主體共同報價撮合而成。套期保值者利用市場鎖定利潤管理價格波動風險,投機者嘗試判斷行情獲取利潤。當市場交易過熱時,期貨價格會失真並偏離現貨價格,可能給投資者和套保企業帶來損失;反之,當缺乏流動性時,期貨價格無法准確反映市場參與者的「共識」。因此,穩定的市場參與度是期貨交易合理定價的重要基礎。預判市場熱度對於調節市場情緒,合理利用風控措施穩定行情至關重要。本文將核心問題定義為預測市場熱度,即預測品種的交易持倉情況。通常來說,期貨市場交易持倉趨勢受到多方面因素的影響,如期貨標的價格變化,突發輿情事件,政策影響等。多因素影響下,簡單的規則演算法難以有效預測交易持倉情況。基於此,本文嘗試從多個維度提取有效特徵,並利用三個獨立的機器學習模型捕捉數據之間的不同關系。最後,利用網格搜索方法將三個模型的結果進行加權融合輸出最終的預測結果。本文組織架構如下:第二章針對歷史運行數據開展分析,研究了風控參數、結算價等與交易持倉量的關系;第三章就特徵提取及三個單一模型的構建進行了詳細介紹;第四章描述了模型融合及權重網格搜索技術;第五章設計實驗驗證模型有效性並設計方法解釋模型結果;第六章為模型可解釋性研究;第七章為總結與展望。
二、歷史運行分析
機器學習相關問題中,數據分析是整個數據建模的基礎,決定了特徵提取質量與模型最終效果。數據分析對於深入了解目標問題起到重要作用,並指導模型的迭代構建。本文數據分析涵蓋了眾多維度,下面挑選四個方面對交易所歷史數據簡要分析。
(一)主力合約的生命周期(雙峰現象)
回溯歷史數據,所有合約在掛牌摘牌整個周期中,都會經歷交易持倉量逐漸放大隨後下降的過程。其中,有較大比例的主力合約(接近40%)在掛牌摘牌的整個周期會呈現「雙峰」現象。「雙峰」現象即合約在成為主力之後,交易量與持倉量會經歷兩個峰值,其中交易量尤為明顯。我們以圖1、2分別展示玻璃期貨1705與棉花期貨1801兩個合約的交易持倉走勢。從圖中可以看出,雖然玻璃、棉花分屬於非農與農兩個類別,但是交易量上都呈現出較為典型的雙峰形態。該現象產生原因可能一是當合約成為主力合約之後,交易資金會快速流入,導致交易持倉量快速放大;二是前主力合約進入交割摘牌階段,主力合約因此達到第二個高峰。雙峰現象的周期性規律對於我們掌握品種運行規律及預測交易持倉起到指導性作用。
圖1.玻璃1705合約交易持倉走勢圖
圖2.棉花1801合約交易持倉走勢圖
(二) 品種交易持倉量與價格關系
為探索交易、持倉量的影響因素,本文著重分析價格波動與交易持倉量之間的關系。交易市場上存在一種「共識」,即認為價格的波動會引起交易持倉量的放大。因此,本文嘗試計算價格波動與交易持倉量變化之間的皮爾森相關系數1 ,研究從長期運行維度來看價格波動是否會實質上引起交易量與持倉量的放大。我們定義如下三個指標:
其中T表示當前日期,N表示時間差,PT表示T日結算價格,VT表示T日交易量,HT表示T日持倉量;相應的,PT-N、VT-N、HT-N分別表示T-N日的對應數值;Pdelta表示以T日與T-N日之間價格波動比例的絕對值,Vdelta表示對應的交易量波動比例實際值,Hdelta表示持倉量波動比例實際值。我們分別計算當N設置為[1-5]日時,Pdelta與Vdelta、Hdelta之間的皮爾森系數。實驗中,我們選取了2016-2018年鄭商所已上市的所有品種,並對品種下的全部掛牌合約進行匯總。具體情況見下表。
表1.價格波動與交易持倉變化相關系數表
表1中PD1-HD1表示當N值取1時,Pdelta與Hdelta之間的關聯系數;PD1-VD1表示當N值取1時,Pdelta與Vdelta之間的關聯系數,以此類推。從表中易知,在不同N的取值下,所有品種的相關系數均為正。因此,交易持倉量的變化與價格波動的絕對值之間確實存在著正向關系。但是,學術界一般認為,當相關系數|r|>0.8時,兩變數間存在高度相關性;當0.6<|r|<0.8時,可以認為兩變數具備較強相關性;當0.4<|r|<0.6時,兩變數具備中等相關性;當0.2<|r|<0.4時,可認為兩變數相關性較弱。從表中可發現,除少數藍色區域(大於0.4),大多數品種交易持倉量的變化與價格波動幅度的關系均較弱,且間隔日期N的長短對於結論也無較明顯影響。整體來看,價格波動對於交易量、持倉量趨勢均有一定正向影響。在提取特徵時,需要將價格波動相關數據引入模型,但需要設計模型結構捕捉非線性關系提高數據價值。
(三) 品種交易持倉與風控措施參數的長期關系
除價格波動外,本文同時研究風控參數對於交易持倉量的長期影響。風控參數的設置擬在調節市場熱度,平抑行情變化。考慮到保證金、手續費等參數與交易持倉量的變化量綱不同,在分析相關參數與交易持倉量變化波動相關性時,本文決定採用變異系數(Coefficient of Variation)來衡量不同風控參數下交易、持倉量的運行情況。具體計算方式如下。
變異系數越大,交易持倉相比其平均值波動幅度越大。本文以2016-2018年各品種的相關數據為基礎,分別計算不同品種運行的變異系數,並利用皮爾森系數計算風控參數與變異系數之間的關系。本文以保證金與平今倉手續費為代表進行重點分析。具體結果見表2、3。考慮到相關系數的計算要求相關風控參數經歷過多次調整,因此表2、3僅保留了所選區間內符合條件的品種進行分析。
表2.保證金與品種長期波動的變異系數
表3.平今倉手續費與品種長期波動的變異系數
從表2、3可發現,整體來看,保證金及平今倉手續費數值大小與交易持倉波動變異系數的關系為負相關。當保證金或平今倉手續費增大,對應品種的交易持倉量波動比率相對更小,具體數值因品種差異而有較大的變化。觀察表格,發現存在部分品種的相關系數為正的情況,可能是因為調整點聚集在單邊行情或大波動行情下。基於上述分析,我們決定將風控措施參數引入特徵序列,作為預測的基礎。
(四) 品種交易持倉行情與風控措施參數的短期關系
除長期維度外,本文以2016-2018年相關數據為基礎,嘗試探索風控參數的短期變化對市場運行的影響。經數據分析,從全市場角度來看,保證金及手續費變化對於交易持倉量的短期影響較為隨機,沒有顯著規律。基於此,本文決定根據交易特徵將客戶分為四個群體,如長線客戶、短線客戶、大客戶及小客戶2 。整體來看,保證金對於持倉量影響較明顯,而平今倉手續費對於交易量影響更顯著。具體見圖3、4。圖3中四個小圖分別代表四個客戶群體下保證金調整幅度與持倉量之間的關系。x軸表示保證金調整前後數值變化的大小,y軸表示保證金調整前後五日內持倉量均值的變化幅度。圖中每一個點均代表歷史上一次真實調整。圖4中,x軸代表平今倉手續費調整幅度,y軸表示調整前後五日內交易量均值變化幅度。觀察圖3可知,當保證金上調時,大客戶及長線客戶持倉量呈現降低趨勢;當保證金下調時,小客戶及短線客戶的持倉量呈現上漲趨勢。觀察圖4可知,平今倉手續費上調對於短線客戶交易量減少的影響較為明顯,也符合普遍認知;相應的,下調手續費對於短線及小客戶交易量促進有一定作用。
短期來看,風控措施參數對於不同客戶群體的交易持倉有一定影響。因此,本文將風控參數措施的變化值也引入特徵向量。
圖3.不同客戶群體下保證金調整幅度與調整點前後五日持倉量均值變化關系
圖4.不同客戶群體下平今倉手續費調整幅度與調整點前後五日交易量均值變化關系
三、特徵工程與模型構建
基於上述分析,交易持倉量受到多重因素的影響,不同因素影響程度不一而同。本文嘗試利用多模型融合方式捕捉數據之間的不同關系,挖掘深層價值,並對未來交易持倉量進行預測。具體問題定義為:針對任一合約,第T日收盤後,根據當日現行風控措施參數及歷史運行數據,預估未來5個交易日的交易量與持倉量。
數值預測相關問題中,特徵選擇是模型構建的重要基礎,決定了模型效果。本文經過數據分析及實驗迭代,最終決定選擇包含結算參數、行情特徵、客戶特徵及合約特徵等四大類共317維特徵。其中,結算參數包含如歷史價格波動、合約間價差等多維度特徵;行情特徵包含了歷史交易持倉相關數據特徵;客戶特徵包含不同屬性客戶的特徵數據及不同客戶群體的交易特徵;合約特徵重點提取了合約運行特徵及合約階段,約束預測結果。
表4.數據特徵表
上述317維特徵中,7維為合約約束性特徵,310維為歷史交易相關的時序特徵。完成特徵提取後,本文開始構建三個機器學習模型。具體細節如下。
(一)整合移動平均自回歸(ARIMA)
在統計與經濟相關領域,ARIMA(Autoregressive integrated moving average)模型是一種常用的時間序列預測演算法,該模型通常應用於平穩時間序列,或通過差分平穩過程消除均值方程的非平穩性的序列。其中,自回歸(AR)是統計上處理時間序列的一種方法,衡量序列自身在不同時刻隨機變數的相關性,利用變數以往時刻的取值來預測當期時刻的取值,並假設它們為線性關系。該方法被廣泛的應用於金融序列相關的建模問題中。移動平均模型(MA)是另一種對單一變數進行時間序列建模的方法。因本文的問題較為契合ARIMA的常用場景,因此決定利用它捕捉交易持倉量序列的時序關系。
(二)基於支持向量機的回歸模型(SVR)
ARIMA模型是基於捕捉時序相關性直接預測未來交易量持倉量,同時我們希望利用更多的信息量以求獲得更好的預測效果。我們決定利用支持向量機來預測未來交易量持倉量的漲跌幅度作為補充。支持向量機(Support Vector Machine)是一種廣泛應用於分類與回歸問題中的機器學習模型。該方法的核心是將低緯度不可分特徵使用「核函數」有效的進行非線性處理,映射到高維特徵空間。通過尋找高維空間中的超平面對數據進行分類或回歸。
(三)序列到序列模型(Seq2Seq)
Seq2Seq模型,全稱為Sequence to Sequence,是由谷歌大腦團隊和Yoshua Bengio團隊提出的一種廣泛運用在翻譯、文本自動摘要及一些回歸預測問題上的深度神經網路。在提出之初,Seq2Seq主要被用來解決自然語言處理相關的問題。但因其強大的時序關系挖掘能力,近年來也被逐漸應用於數值型序列的預測問題中。如圖所示,本文所用網路通過編碼器(Encoder)與解碼器(Decoder)兩個過程將過往十日的行情特徵作為輸入序列,將其映射為未來五日的交易量或持倉量序列。編碼器利用非線性函數將輸入序列組合為隱藏層的隱藏向量,該向量具備表達輸入序列信息及潛在關系的能力。解碼器將傳遞來的隱藏向量進行解碼,並結合輸入的T~T+4日的市場行情特徵,逐日預測未來T+1~T+5日的交易持倉情況。
圖5.Seq2Seq模型流程圖
四、多演算法融合模型構建
期貨市場行情瞬息萬變,客戶群體的交易持倉行為受到眾多因素的影響,因此單一模型容易對歷史數據產生過擬合現象,並且面對來
B. 期貨合約的主要條款
期貨合約是一種標准化的合約,具有以下特點:
期貨合約的商品品種、數量、質量、等級、交貨時間、交貨地點等條款都是既定的,是標准化的,唯一的變數是價格。期貨合約的標准通常由期貨交易所設計,經國家監管機構審批上市。
期貨合約是在期貨交易所組織下成交的,具有法律效力。期貨價格是在交易所的交易廳里通過公開競價方式產生的。國外大多採用公開喊價方式,而我國均採用電腦撮合成交。
期貨合約的履行由交易所擔保,不允許私下交易。
期貨合約可通過交收現貨或進行對沖交易履行或解除合約義務。
③報價單位:每計量單位的貨幣價格。國內期貨都是以人民幣報價,但不同品種計量單位有所區別,大部分都是元/噸,個別特殊,如黃金是元/克,白銀是元/千克。
④最小變動價位:合約每計量單位報價的最小變動數值。在期貨交易中,每次報價的最小變動數值必須是最小變動價位的整數倍。最小變動價位×交易單位,就是該合約價值的最小變動值(也即通常所說的1手合約每一跳資金變動多少)。例如1手螺紋鋼期貨合約的最小變動值是1元/噸×10噸=10元。
⑤漲跌停板幅度:每日價格最大波動限制(又稱漲跌停板)是指期貨合約在一個交易日中的交易價格不得高於或者低於規定的漲跌幅度,超過該漲跌幅度的報價將被視為無效,不能成交。漲跌停板幅度是計算每個交易日漲跌停價的依據,漲跌停價=昨結算價*(1±漲跌停板幅度)。
需要注意的是,交易所官方期貨合約里的漲跌停板幅度都不能作為計算依據,官方數據都是合約剛上市時固定的標准,但漲跌停板幅度後期會有變動,官方合約則未做修改,故投資者應該:①以交易所實時公布的結算參數為標准;②交易軟體進入具體合約行情界面,按F10
⑥合約交割月份:指該合約到期進行實物交割的月份。
⑦交易時間:由交易所統一規定,交易者只能在規定的交易時間內進行交易。(具體交易時間這里不再敘述)
⑧最後交易日:指某一期貨合約在合約交割月份中進行交易的最後一個交易日,過了這個期限的未平倉期貨合約,必須按規定進行實物交割或現金交割。
需要注意的是,不是所有合約客戶都能進入交割月交易該品種,同時也不是所有品種客戶都能在最後交易日進行交易。大連、鄭州的臨近交割月份的合約自然人不可以進入交割月份,即自然人客戶在持有大連鄭州的臨近交割月份的合約客戶必須在合約進入交割月份的前一交易日將該合約平倉處理。上海的臨近交割月份的合約自然人可以進入交割月份,但是必須滿足交易所規定的持倉手數規則,同時,客戶在交割月交易該合約時,不能交易到合約的最後交易日當天,必須在最後交易日的前兩個交易日前將該合約進行平倉處理。股指合約客戶可以一直交易到合約的最後交易日當天,客戶當天不平倉,則該持倉將直接由交易所在收盤後按照當天的交割結算價撮合進行現金交割。
⑨最後交割日:指合約標的物所有權進行轉移,以實物交割或現金交割方式了結未平倉合約的時間。
⑩交割品級:指由期貨交易所統一規定的、准許在交易所上市交易的合約標的物的質量等級。期貨交易發生實物交割時,交易雙方無須對標的物的質量等級進行協商,按交易所期貨合約規定的質量等級進行交割。
11)交割地點:由期貨交易所統一規定的進行實物交割的指定地點。金融期貨交易不需要指定交割倉庫,但會指定交割銀行。
12)最低交易保證金:期貨交易中,買賣雙方必須按照其所買賣期貨合約價值的一定比率繳納保證金,用於結算和保證履約。交易所根據合約特點設定最低保證金標准,並可根據市場風險狀況等調節保證金水平。
13)交割方式:期貨交易的交割方式分為實物交割和現金交割兩種。商品期貨、國債期貨採取實物交割,股指期貨採用現金交割。
14)交易代碼:每個期貨品種都有其唯一的代碼,如螺紋是RB。
C. 商品期貨的結算價是盈利可卻按收盤價扣費
首先大家要知道,期貨有一個當日無負債結算制度,用最通俗的話說就是交易所每天按照結算價進行「清算」扣除相應的費用和相應資金的劃轉!那麼我們的賬單就是按照這個逐日盯市來計算的,下面的各種公式!
逐日盯市:依據當日無負債結算制度,每日計算當日盈虧。
① 上日結存:上一交易日結算後客戶權益
② 當日存取合計=出入金=當日入金-當日出金
③ 平倉盈虧=平當日倉盈虧+ 平歷史倉盈虧
平當日倉盈虧=當日開倉價與平倉價之差×平倉手數×交易單位(合約乘數)
平歷史倉盈虧=平倉價與昨日結算價之差×平倉手數×交易單位(合約乘數)
④ 持倉盯市盈虧(浮動盈虧)=當日持倉盈虧 + 歷史持倉盈虧
持當日倉盈虧=當日結算價與當日開倉價之差×手數×交易單位
持歷史倉盈虧=當日結算價與昨日結算價之差×手數×交易單位
⑤ 當日盈虧=③+ ④ = 平倉盈虧 + 持倉盈虧
⑥ 當日手續費:具體計算見前文
⑦ 當日結存=上日結存+ 出入金+ 平倉盈虧 + 持倉盯市盈虧 - 當日手續費
⑧ 客戶權益=當日結存
⑨ 保證金佔用:具體計算見本公眾號的保證金的演算法一欄
⑩ 可用資金=客戶權益- 保證金佔用
⑪ 風險度=持倉保證金佔用/客戶權益×100%
該風險度越接近於100%,風險越大。
若客戶沒有持倉,則風險度為0;
若客戶滿倉,則風險度為100%,同時也表明客戶的可用資金為0。
若風險度大於100%,說明可用資金為負,這是不被允許的,此時期貨公司便有權對客戶的持倉進行強行平倉(以市價成交),直至可用資金為正。
⑫ 追加保證金:指客戶當保證金不足時須追加的金額,追加至可用資金大於等於零
註:盈虧計算方式不同,不影響當日出入金、當日手續費、客戶權益、質押金、保證金佔用、可用資金、追加保證金、風險度等參數的金額或數字;
例:
某投資者16年11月28日帳戶入金30,000元,當天在3200點時買進開倉RB1705合約5手,當日結算價為3281點。該投資者的手續費為成交金額的萬分之1.2,雙邊收取,平今時平倉收取成交金額的萬分之6,交易保證金比例13%(交易單位10噸/手)。
11月28日帳戶情況:
手續費=3200×10×0.00012×5=19.2
持倉盯市盈虧=(3281-3200)×10×5=4050(即公式④)
客戶權益=30000+4050-19.2=34030.8(即公式⑦⑧)
保證金佔用=3281×10×13%×5=21326.5 (即公式⑨)
可用資金=34030.8-21326.5=12704.3(即公式⑩)
風險度=21326.5÷34030.8×100%=62.67%(即公式⑪)
11月29日該投資者在3250點又買進開倉RB1705合約5手。當RB1705合約期貨價格跌到3150點時,賣出平倉2手(上期所品種默認先平今倉,故今倉還剩3手),當日RB1705合約結算價為3226點。
11月29日帳戶情況:
手續費=3250×10×0.00012×5 + 3150×10×0.0006×2=57.3
平倉盈虧=(3150-3250)×10×2= - 2000(即公式 ③)
持倉盯市盈虧=(3226-3250)×10×3+(3226-3281)×10×5= - 3470(即公式④)
客戶權益=34030.8-2000-3470-57.3=28503.5(即公式⑦⑧)
保證金佔用=3226×10×13%×(5+3)=33550.4(即公式⑨)
可用資金=28503.5-33550.4=- 5046.9(即公式⑩)
風險度=33550.4÷28503.5×100%=117.71%(即公式⑪)
追加保證金(使可用資金≥0)= 5046.9
對於如螺紋鋼這樣的有夜盤品種,如果該投資者在當日晚上20:50以前未將不足保證金(即5046.9元)匯入其期貨賬戶,在20:55分後公司將有權執行強制平倉。
對於沒有夜盤的品種,如果投資者在下一個交易日上午8:50以前未將不足保證金匯入其期貨賬戶,在8:55分後公司將有權執行強制平倉。
11月29日晚上20:50前該投資者帳戶入金30000元,11月30日無任何操作,當日RB1705合約結算價為3040。
11月30日帳戶情況:
持倉盯市盈虧=(3040-3226)×10×8= - 14880(即公式④)
客戶權益=28503.5+ 30000-14880=43623.5(即公式⑦⑧)
保證金佔用=3040×10×13%×8=31616(即公式⑨)
可用資金=43623.5-31616=12007.5(≥0)(即公式⑩)
風險度=33550.4÷28503.5×100%=72.47%(即公式⑪)