為了讓用戶掌握更多的市場訊息,多家交易所上線了合約大數據產品,包括多空持倉比、未平倉量、合約基差等與合約市場息息相關的數據。這些市場數據是無數訊息交易者和噪音交易者通過真金白銀的投入而繪製出的市場畫像,數據中包含大量有價值的訊息。對市場數據進行分析有助於投資者判斷當前市場所處的位置,預測未來市場的走向,從而更好地控制風險,抓住機遇。
本文主要對 OKEx 合約大數據產品中的多空持倉比(Long Short Position Ratio,以下均將多空持倉比簡稱為 lspr)進行定量的分析。下面以比特幣為例,回顧過去半年中 lspr 與市場走向的關係,並且通過建模等手段,拋磚引玉,嘗試讀懂 lspr 的預言。
第一章 多空持倉比介紹
多空持倉比的計算方式為,持有淨多頭的帳戶數量除以持有淨空頭的帳戶數量:
所謂淨持倉,指的是:若交易者出於某種目的同時持有某數位資產的合約空頭和多頭合約時,將其所持多空合約一對一抵消後,剩餘合約的數量和方向。
在合約市場中,交易者每開出一張多單,就會有對應的一張空單成交。也即,市場上的任何時候,多單和空單的數量都是一樣的。淨多頭帳戶所持有的多頭合約平均張數與淨多頭賬戶的積,即為總多頭合約數。對於空頭合約亦是如此。由以上兩點,可以得到下式:
由(1)(2)式可得:
可以發現,lspr 可以轉化為空頭帳戶平均持倉量與多頭帳戶平均持倉量之比。這意味著:lspr 越高,空方平均資金量越大;反之亦然。例如,若此時 lspr 為 3,就表示平均每個淨空頭用於做空的保證金為淨多頭用於做多的保證金的三倍。通常而言,我們認為訊息交易者具有資金、消息上的優勢,能夠在市場中獲得超額收益。在資金量較小的交易者貪婪地買入或者恐懼地賣出時,藏在陰影中的訊息交易者便可能會在 lspr 因子上露出馬腳。
延伸閱讀:投資觀點|如何結合現貨和衍生品市場數據觀測比特幣趨勢?
第二章 因子衍生
因子衍生,學名「特徵工程」,是在原始數據的基礎上,進行一系列變換,使得算法能夠更好地從數據中獲取訊息的過程。本文採取的數據為 OKEx 平台上 BTCUSD 交割合約的 lspr 值,以及 Bitfinex 平台的 BTC/USD 現貨價格。時間跨度為 2019 年 8 月 1 日至 2020 年 6 月 9 日,其中,2019 年 8 月 1 日至 2020 年 2 月 1 日為訓練集,分析和建模將只採用這一範圍內的數據。2020 年 2 月 1 日至 2020 年 6 月 9 日的數據為驗證集,意在驗證規律是否穩定。
第一節 衍生因子介紹
為了充分提取 lspr 中蘊含的訊息,同時兼顧可觀測樣本的限制,我們設計了長短兩個時間維度,三個統計維度,總計六個因子:
(一) lspr 移動平均值
通過計算 lspr 的移動平均,可以一定程度上消除極端值的影響,從而獲得更加穩定的 lspr 值。其中,f_ma_ld 為過去 72 小時的 lspr 平均值,f_ma_sd 為過去 24 小時的平均值。兩者反映了近一段時間內 lspr 的絕對水平。下文將探索當 lspr 處於不同水平時,標的未來一段時間內漲跌表現是否存在不同。
(二) lspr 變動率
lspr 變動率衡量了近期 lspr 變動情況。當 lspr 下降時,這一指標則為負值,反之亦然。其中,f_roc_ld 為當前 lspr 值較 72 小時前值的變動率,f_roc_sd 為當前 lspr 較 24 小時前值的變動率。當 lspr 值開始上升,可能意味著資金量較小的交易者開始做多,或者擁有資金和訊息優勢的交易方開始加倉押注未來即將下跌,那麼 lspr 的變動率便可以直觀地描述這一現象,為投資者提供變盤的信號。
(三) lspr 波動率
相比上述兩個因子,lspr 波動率的計算可能稍有復雜。主觀上分析,若 lspr 波動率較低,那麼意味著這一段時間內多空持倉陷入了焦灼的狀態,雙方相持難下;反之,若 lspr 波動率較高,則說明資金博弈層面上,資金量較小的交易者的資金在多空兩邊反覆橫跳,這種情形可以被描述為「躁動」。而「躁動」和「焦灼」分別對應了未來的哪一種行情,則需要定量地進行分析。下面,我們分別對過去 72 小時和 24 小時內的 lspr 計算其變異係數(Coefficient of Variation),作為其波動率的估計量。
延伸閱讀:五分鐘學堂|什麼是「波動率 Volatility」?如何在數位資產策略中應用
第二節 衍生因子表現
出於經驗考慮,預測標的選擇為未來 72 小時,即未來三天的收益率。訓練集時間段內,BTC 未來 72 小時的漲跌幅如下圖所示,基本涵蓋了震盪和趨勢的行情。
一般而言,在對各個因子進行加工之後,首先需要對衍生因子的預測能力做一個快速、初步的評估。在本研究中,將不同因子從小到大排序,並且通過 CART 決策樹算法確定切分閾值,將樣本分為若干個區間。進而計算每個區間內因子的平均值,以及對應的收益率的平均值,從而直觀的判斷各個因子對收益率的影響。
CART 決策樹算法,大多數情況下,是使用二叉樹對數據進行分類或回歸的算法。如圖所示:
圖中對 A, B, C, …, L 這些人進行了分類。藍色的節點被稱為分裂點,橙色的節點被稱為葉片。葉片的數量也就決定了這一棵決策樹最終將樣本分成了幾類。在本文的算法中,考慮到樣本數量不是很多,最大葉片數可以設置為 5,即最多將樣本分為 5 份,單個葉片包含最小樣本量為總體的 16%。
計算完所有因子以及收益率後,在每天零點取一個樣本加入訓練集,總計獲得 174 個樣本。
(一) lspr 移動平均值
過去 24 小時 lspr 均值對未來 72 小時收益率有顯著反向影響。f_ma_sd 觀測值越大,未來 72 小時內越可能下跌,反之亦然。這與前文的假設一致,具有極強的邏輯解釋性。如下圖所示,將樣本按照因子大小升序分為 5 份,進行分組統計。其中,第 0 組中,因子均值為 1 左右,對應的平均收益率略大於 0;而第 4 組中因子均值超過 1.5,對應的平均收益率小於 -2%。且均分較低的組平均收益率顯著大於得分較高的組。
過去 72 小時 lspr 均值也在訓練集中展現出類似的性質,在此不再贅述。
(二) lspr 變動率
在訓練集中,通過觀察 f_roc 的分組結果,可以發現:f_roc 大幅減少確實意味著未來 72 小時更可能上漲,而 f_roc 大幅上漲對於多頭來說卻不是什麼好跡象。如果當前 lspr 較 3 天前大幅上升,那麼多頭處於不利地位。若當前 lspr 較 3 天前大幅下降,那做多的預期收益可能會更高。不過,當變動率接近零時,這個因子對未來收益率的預測能力則幾乎很弱。詳情請見下圖:
(三) lspr 波動率
現在,我們得以回答上一節中提出的問題。資金層面上多空雙方的「焦灼」更可能預示著未來的下跌,而 lspr 的「躁動」,實則是新一輪行情的預兆。
第三章 模型搭建
在上一章中,我們已經總結出來一些規律。但各個因子之間可能存在交互作用,也可能存在一些非線性關係。為了從 lspr 中提取更加有投資指導價值的訊息,需要進一步建立量化模型。
第一節 算法增強
本文構造的因子在已知數據中均展現出與未來收益率的一定聯繫,且邏輯上能夠進行合理解釋,故可以將上述六個因子全部加入模型。
在實踐中,單個算法的預測雖然對未來的行情走勢存在一定指導意義,但比較模糊。根據機器學習的理論,我們使用了多個算法,進行增強(Boosting)訓練,達到綜合多種算法學習能力,獲得更好預測結果的目的。在建模的思路上,可以先使用六個因子以及其對應的因變量,採用線性和非線性的模型進行樣本內訓練,得到多個弱分類器;再將弱分類器輸出的擬合值作為因子,以線性模型進行集成,得到最終的模型,並在測試集中使用。之所以進行集成,是為了減少單個模型不可靠的可能,增強模型的穩定性和在未知數據上的泛化能力。
其中,線性模型分別為 OLS,RidgeCV。前者最為樸素,可以通過觀察回歸方程給出直觀的理解和解釋,但分析因子效果時可能會受到因子多重共線性的影響。後者引入了正則項減少多重共線性的影響,交叉驗證雖然減少了引入後驗知識的可能,但也增加了模型的複雜度。
由於某些因子與收益率的對應關係並非線性,所以我們也決定使用非線性模型決策樹與隨機森林算法。決策樹算法可以抽像出容易理解的規則,適用於特徵維度較高,樣本量較少的數據集,我們給定單個葉片的最小樣本量以環節過擬合。但其輸出的預測集中於幾個葉片上,所以可以明顯看到它輸出的預測「擠在一團」。隨機森林算法則以 bagging 的方法隨機挑選因子和样本訓練大量獨立的決策樹,並且採用各個決策樹投票的方式得到最終模型。它可以很好地提取訓練樣本的訊息,但犧牲了解釋性,一定程度上可以視為黑箱。
上圖為各個模型在訓練集和測試集上的表現。其中,OLS、Ridge_CV、DecisionTree、RandomForest 分別為四個子模型。第一行展示了模型在訓練集中的表現,每幅散點圖中,橫縱軸分別是子模型的預測值與 BTC 實際的未來三天漲跌幅。在每幅散點圖的下方,列出了模型的擬合優度 R^2,這一數值越高,說明模型預測能力越強,雖然這一數值普遍不大,但作為預測模型,已經極具實踐意義。第二行為驗證集,這一行展示了各個採用不同算法的模型在未知數據上的泛化能力。非常合理的是,預測效果較訓練集中有所衰減,但超過 0.05 的 R^2 表示,各個子模型也都具有一定的預測作用。
第五列 ALL_OLS 中,展示了以所有子模型的預測值為因子,採用 OLS 算法搭建的集成模型的表現。雖然其 R^2 在測試集上表現並非最佳,但由於其避免了模型選擇的偶然性,並以此降低了單個模型的失效對整體的影響,因此選擇將其作為最終模型。
在第三行中,採用決策樹對 ALL_OLS 模型在訓練集中的輸出值與實際值進行最優分組,得到其切分點。然後將 ALL_OLS 在驗證集中做出的預測值以前一步中得到的切分點進行分組。柱形圖(上)為驗證集每組預測值的均值,柱形圖(下)為其對應真實值的均值。據此,可以直觀地看出,模型確實具備一定的預測能力。不過,由於算法的複雜性和數據量的限制,模型背後的經濟邏輯尚待未來進一步探究。
第二節 預測結果離散化
出於對模型穩定性的追求,下面採取兩步方法。第一步上一節提到過的採用集成模型的方法,這減少了單個模型失效對整體的影響以及模型選擇上的偶然性和主觀性。第二步則為將預測結果離散化。離散化可以減少過擬合的概率,提升模型泛化能力,從而更加自信地在未知數據上使用模型。
預測結果離散化的大致流程如下:
首先,在訓練集中得到了 ALL_OLS 模型輸出的對於真實漲跌幅得到擬合值,將擬合值通決策樹進行切分得到最優分組,此時便得到了一張映射表:
第四章 模型應用
第一節 策略構造
基於這一思想,可以構造三個策略:
五層策略:即使用 -1,-0.5,0,0.5,1 的倉位比例對應 0,1,2,3,4 的打分,這一構造方式相對中性,不包含對市場的先驗主觀判斷,並且倉位相對連續,調倉成本較小;
五層純多頭策略:即使用 0.2,0.4,0.6,0.8,1 的倉位比例對應 0,1,2,3,4 的打分,這一構造方式包含了先驗的主觀判斷,認為比特幣應該長期持有,因此比較適合「囤幣黨」(意即長期持有數位資產的投資人)用於短期對沖風險;
第二節 策略回測
三個策略在測試期(2020 年 2 月 1 日至 2020 年 6 月 9 日)內的表現如圖所示:
計算常用的策略評價指標,可得:
各個策略都取得了相對淨持有 BTC 的超額收益。兩層策略的夏普比率最高,在無風險收益率為 3% 的情況下,夏普達到了 2.22。但是觀察其淨值曲線,可以發現在絕大多數時間裡,由於策略的開倉條件過於苛刻,策略是空倉的。開倉次數過少意味著回測結果對策略的評價很有可能不夠穩健,在更長的時間裡,有可能會與本次回測的觀測結果產生衝突,因此,我們不認為這是一個好的策略。
五層策略與五層純多頭策略相比,允許做空的策略明顯取得了更好的效果。這是因為在回測期內,BTC 基本走出了 0 的收益。不過,作為「囤幣黨」,或者 BTC 的忠實信眾,這一策略也能夠為他們對沖掉一些 BTC 的短期下跌風險。
三個策略中表現最好的是五層多空策略。在三個月左右的回測期內,取得了接近 30% 的收益,夏普比率也達到了 2.17,最大回撤僅 10%,最大的持倉比例為 100%,即不帶任何槓桿,因而不存在理論爆倉風險。這個策略同時也符合我們在投資活動中的一些想法:不要相信故事,而要相信市場的波動。
第五章 總結
綜上,OKEx 交易所的合約大數據中,lspr 這一指標能夠對未來 BTC 行情起到比較好的指導作用。直觀來看,近三天的 lspr 均值與未來 72 小時 BTC 收益負相關,並且 lspr 的大幅波動往往預示著大概率的上漲。
使用 lspr 數據,我們構造了一個簡單的策略。策略在 2020 年 2 月至 6 月這一段時間中,相對 BTC,取得了 27% 的超額收益,夏普比率 2.17,表現優異。受限於 lspr 數據量,本文構造的策略測試時間較短,在未來更長期限的投資中,有可能存在表現不穩定的情況。但無論如何,lspr 數據的確能夠從一個特殊角度提煉市場訊息。進一步的研究可以將多頻率,多品種的 lspr 數據與其他的有效因子相結合,以求對未來市場中數位資產的長期和短期走勢進行更準確的估計。
📍相關報導📍
2019 年加密貨幣市場狀況與「量化交易策略」之總結
獨家專訪|FTX交易所、Alameda Research創辦人:如何將「華爾街量化投資精神」帶入市場?
面對加密貨幣市場高波動,Bincentive 透過量化策略讓散戶平衡風險
讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。
LINE 與 Messenger 不定期為大家服務