更多精彩內容,歡迎關注公眾號:數量技術宅,也可新增技術宅個人微訊號:sljsz01,與我交流。
數字貨幣市場,是近期大家關注度相當高的一個市場。在這個市場中,存在著現貨交易(數字貨幣交易所定義的幣幣交易)、期貨交易(數字貨幣交易所定義的合約交易)以及期權交易。在期貨交易中,數字貨幣有兩種不同型別的期貨,分別叫做交割合約、永續合約。交割合約,顧名思義,與商品期貨、股指期貨類似,每一個合約有到期交割日,而永續合約則是幣圈所特有的,可以理解為永遠不交割的期貨合約。
我們在這篇文中中所要講到的期現套利,特指數字貨幣的現貨(幣幣)與交割合約期貨之間的套利。某個幣種,例如BTC的現貨和交割合約,有著到期必收斂的規律,也就是說,當交割合約臨近、到達交割日,其最後交割的價格必然趨近於現貨價格,並最終與現貨價格保持一致。為何說現貨、交割合約會有這樣趨同的特訓,這是由交割合約的現金交割機制所決定的。我們以火幣為例,來看一下關於交割合約到期交割的說明。
也就是說,如果交割合約在馬上要交割的時候,價格沒有收斂到現貨指數價格最後一個小時的算術平均價,那麼定價錯誤的一方(例如價格高於現貨均價,此時空頭屬於定價錯誤的一方),將在交割結算時,立即承受這個確定性的虧損,當結算交割價差越大,這個虧損也將越大。從市場博弈的角度看,沒有人願意去承擔這個虧損。因此,數字貨幣市場的交割機制,確保了期現最後必然迴歸。
比特幣大行情下的確定性套利機會
這段時間,隨著比特幣暴漲,帶動數字貨幣整體板塊的暴漲,我們看到一個現象:以比特幣為代表的數字貨幣交割合約,特別是遠期的季度、下季度的交割合約,他們與數字貨幣現貨之間的差值越拉越大。我們將交割合約、現貨的價差稱之為基差,以火幣交易所某一時刻的BTC現貨與當季合約為例,現貨的交易價格是31846.9,當季合約的交易價格是32927.05,基差是 (32927.05-31846.9)/31846.9=3.39%,在我們截圖當日,當季合約距離交割還有62天,我們再按照當季合約距離交割的日期折算基差年化收益率:3.39%/62*365=19.95%。
而相對於當季合約來說,次季合約的基差更大,次季合約交易價格33656.99,基差是(33656.99-31846.9)/31846.9=5.68%。次季合約距離交割還有153天,折算的基差年化收益率:13.55%。可以看到,對比當季和次季合約,當季合約摺合年化的基差收益率更高,而次季合約基差收益率的絕對值更大。
由於交割機制的存在,交割合約和現貨,在未來的交割日到來之時,必然會收斂到一致,也就是說,只要我們做多現貨,同時做空等額的合約,我們上述計算的絕對收益率和年化收益率,是可以在無風險的情況下確定性獲得的。
到這裡,我們不禁要思考,為什麼數字貨幣市場在此刻,能為我們帶來如此高的無風險利潤。數量技術宅認為,市場的暴漲帶動了投機者的情緒,由於交割合約的槓桿倍數最多可達125,相比現貨微不足道的槓桿,如果利用交割合約,在看對方向的情況下,收益率不可同日而語。而許許多多隨著市場上漲不斷開多的投機者,希望將手中的倉位儘可能地最大化,那麼帶高槓杆的合約,就是他們最佳的選擇,即使支付相對現貨市場的一定溢價,投機者也願意用高溢價去換取高槓杆一搏。
使用Python監控套利收益率
我們知道,除了BTC以外,像ETH、EOS、LTC、BCH、XRP、BSV等主流幣,在數字貨幣交易所,也都有相應的交割合約存在,如果只是用行情軟體和手工計算基差,品種一多,難免會錯過一些機會。因此,我們使用Python開發一個監控所有有交割合約幣種基差收益率的監控程式。
這個監控程式我們還是以火幣為例,接入火幣上所有的交割合約品種並計算當季、次季合約的基差年化收益率。之所以選擇當季、次季合約,是因為當週、次周合約離交割日期相對較近,基差往往不會有太大的絕對收益率,當收益率變小,交易現貨、期貨時的滑價和手續費成本佔比就會變高,原本預計盈利的交易有可能會變成虧損。因此,我們選擇監控當季、次季合約,為必要的交易成本,預留一定的安全邊際。
由於程式需要同時讀取現貨、期貨的資料,就需要同時接入火幣現貨、合約的API,現貨和合約屬於兩套不同的API,我們分別呼叫現貨、合約的封裝模組,並進行初始化
接下來,我們用一個迴圈遍歷所有監控的幣種,首先獲取現貨價格,此處為保守處理,我們取的是現貨的買20檔的價格,作為基差計算的現貨買價;第二步,我們獲取期貨的交割日,並計算交割日距離當前的日期差,這是為了計算基差收益率摺合年化收益率使用的;第三步,我們獲取合約的價格,我們同樣取合約的賣20檔的保守價格,作為基差計算的合約賣價;最後一步,有了現貨買價與合約賣價,我們就能夠計算出基差,並按照交割日期差計算基差的年化收益率和列印出來了。
我們執行這個程式,就能看到我們監控的所有幣種當季、下季合約與其對應的現貨合約的基差,如果基差的收益率大於我們可交易的預期,那麼我們可以選擇其中基差收益率最大的品種、合約,進行期現套利的交易。從我們例圖中監控的這一輪,ETH的當季合約,基差年化收益率最高。
期現套利操作步驟
我們可以通過手工交易來實現上述的期現套利,把握住無風險的套利機會,當然,我們也可以通過交易所的API介面,來自動實現全部操作,在這篇文章中,我們先為大家介紹手工交易的操作步驟;在後續的分享中,我們也將開源自動執行期現套利的相關程式碼。
第一步,執行法幣交易,法幣交易這個名稱比較拗口,其實大家可以把它理解為是股票、期貨賬戶的銀證、銀期轉賬,即從我們的銀行賬戶向交易所賬戶入金。但不同於股票、期貨,數字貨幣的入金需要轉換為對應的數字貨幣幣種,這時我們就需要與法幣交易的商家進行交易,在入金的同時,將手中的法幣,轉換為數字貨幣,例如usdt、btc等。我們建議大家兌換usdt,相對於其他幣種,usdt的otc商家買賣價差最小,此外,兌換金額越多,價格越便宜。usdt是一種與美元掛鉤的穩定幣,當我們通過法幣交易入金後,我們實際上已經開始承擔人民幣相對於美元的波動風險。
第二步,將法幣交易購買得到的usdt,轉入幣幣賬戶,準備幣幣交易。假設我們入金了1000usdt,通過劃轉後,該1000usdt,就全部到幣幣賬戶了。
第三步,假如我們需要在ETH現貨與當季合約之間進行期現套利,套利金額是1000usdt。我們需要先知道應該購買多少個ETH,我們先通過合約交易的行情報價,計算如果我們此時做空1000usdt的合約,大約等值ETH是多少的量。根據交割合約的規則,每張ETH合約相當於10usdt,1000usdt相當於做空100張合約。我們在行情中輸入賣出合約的張數100,行情會自動計算出等值的ETH=0.7665
第四步,我們再到現貨交易,也就是幣幣交易的介面,在箭頭處位置,輸入0.7665,點買入ETH,並不要選槓桿或做空,交易完成後,我們的幣幣賬戶中,就多了0.7665左右個ETH。
第五步,我們再次進行賬戶劃轉,將幣幣賬戶中的0.7665個ETH全部劃轉至交割合約賬戶,充當交割合約的保證金。劃轉完成後,我們的交割合約賬戶中,就有了0.7665個ETH。請注意,此時交割合約的ETH共有兩個功能,一是ETH的多頭持倉,二是充當ETH交割合約的保證金。
第六步,我們再次進入交割合約,到我們目標做空合約:ETH當季合約的下單介面,填好賣出價並在賣出量的地方填入100張,選擇賣出開空,就完成了我們的這一次期現套利的全部操作了。
完成操作後,我們再檢查一下賬戶是否期貨、現貨完全對衝,我們來看ETH資產欄中的預估強平價以及擔保資產率,此時我們的預估強平價是210萬多的usdt,相比較ETH現在1200-1300usdt左右的價格,需要漲2000倍左右,顯然是一個極其安全的狀態。此外,我們還可以檢查擔保資產率,由於我們選擇的合約槓桿係數是5X(即5倍槓桿),按照火幣的調整演算法,擔保資產率越接近495%代表風險越小,此處我們的擔保資產率是494.67%,這意味著期現對衝後,只有微弱的敞口,可以忽略不計。
特別要提醒大家注意的是,數字貨幣的期現套利,是基於場內交易來講的無風險套利,但它仍然存在著兩點場外風險:
第一,由於我們場內交易使用的穩定幣usdt,是與美元掛鉤的,我們在前文向大家提到過,一旦我們入金,無論是否交易,只要資金還在場內,都必須要承擔美元相對於人民幣的匯率波動。
第二,部分數字貨幣交易所曾出現提幣、otc交易資金凍結等情況,這也屬於不可控的場外風險,望大家謹慎考慮,謀定而後動。
最後,如果大家想要獲取文中監控套利收益率的python程式碼,或是對套利交易過程有任何的問題,歡迎掃碼新增技術宅的個人微信,與我交流。
關注 “數量技術宅”不迷路,您的點贊、轉發,是我輸出乾貨,最大的動力
往期乾貨分享推薦閱讀
Omega System Trading and Development Club內部分享策略Easylanguage原始碼
【數量技術宅|量化投資策略系列分享】基於指數移動平均的股指期貨交易策略
AMA指標原作者Perry Kaufman 100+套交易策略原始碼分享
【數量技術宅|金融資料系列分享】套利策略的價差序列計算,恐怕沒有你想的那麼簡單
【數量技術宅|量化投資策略系列分享】成熟交易者期貨持倉跟隨策略
【數量技術宅|金融資料分析系列分享】為什麼中證500(IC)是最適合長期做多的指數
商品現貨資料不好拿?商品季節性難跟蹤?一鍵解決沒煩惱的Python爬蟲分享
【數量技術宅|金融資料分析系列分享】如何正確抄底商品期貨、大宗商品