更多精彩內容,歡迎關注公眾號:數量技術宅,也可添加技術宅個人微信號:sljsz01,與我交流。
做市策略原理
做市策略的基本原理是:在盤口Orderbook的買單合適位置、賣單合適位置,插入委買單和委賣單,如果插入的兩個單子都成交的話,做市商就吃到了買賣單之間的價差,而整個過程結束后,做市商所持有的頭寸並沒有變化。如果買賣單之間的價差扣除各種交易手續費之后還有盈余,那么該做市商就獲得了相應的盈利。
對於數字貨幣交易所來說,交易所更加支持流動性提供者的掛單行為,特別是在更為需要深度的合約市場,掛單(Maker)會比吃單(Taker),收取更為低廉的手續費。甚至對於交易量、資金量大的賬戶,會提供零費率、負費率(返還)的佣金比率。
雖然做市有獲取盤口買賣價差、更低廉的費率這些優勢,然后做市也有其風險所在, 這是因為,做市商本質上是整個市場的交易對手方。如果市場呈現急劇的單邊行情,做市策略下達的買賣委托單會大概率出現單邊成交的情況,而這些成交的頭寸,往往與市場的單邊趨勢是反向的,積聚的頭寸,容易在單向行情中虧損。比如下圖的市場環境中,做市策略比較容易累積多單而出現虧損。
因此,我們的做市策略,在進行做市交易前,在選擇是否下達做市指令之前,會預判一下市場的趨勢明顯程度,我們采用的是過去30分鍾K線的5周期均線和30周期均線來判斷,之所以選擇這個K線周期和計算周期,是為考慮了市場中期的趨勢,k線和計算周期太短,太容易受到短期價格噪音的干擾,周期太長,則會比較遲緩,在趨勢轉向時不夠靈活。
當30分鍾K的短周期均線位於長周期均線之上時,我們只做多頭方向的做市,即選擇合適的價格,先掛多頭開倉單,成交后再掛多頭平倉單;而當30分鍾K的短周期均線位於長周期均線之下,我們只做空頭方向的做市,先選擇合適的價格掛空頭開倉單,成交后掛空頭平倉單。
火幣交割合約API的實現
在描述完做市策略的原理后,我們接下來就調用火幣交割合約API,以API為基礎框架,來實現我們這一個做市策略的交易系統。之所以選擇合約API,是因為合約可以雙向操作,手續費更低,並且可以加杠桿交易,比起現貨交易更加的靈活。
第一部分,我們先確定策略需要交易的參數,比如交易的品種:contract,交易的合約:deliverate,掛單距離最新買一、賣一盤的價格偏移:offset,每次下單的合約張數:lots。這些參數,是該策略交易最核心的參數,我們在系統初始化時就指定好,大家也可以根據想要交易的不同品種,自行修改。
第二部分,是策略大方向的判斷,我們通過30分鍾k的雙均線,來判斷趨勢,以及做市的開倉方向。變量j的正負號,告訴我們短期均線是位於長期均線的上方還是下方,j>0,進入多頭開倉的邏輯,j<0,進入空頭開倉的邏輯。
第三部分,多頭做市,多頭做市包括開倉、平倉部分,在確定趨勢是多頭后,我們通過rest接口,讀取盤口最新的買一檔價格bid1,但我們並不直接在bid1掛單,因為盤口的買賣價差ask1-bid1,不一定夠來回的手續費。我們通過offset參數來調節。bid1-offset作為買開倉掛單的參數。掛單后,我們判斷開倉價格相比較最新盤口的bid1是否需要移動,如果bid1移動,需要重新計算買掛單價掛單。
對於平倉來說,當我們的開倉掛單成交,立即讀取盤口最新的賣盤價格ask1。同樣的道理,我們並不直接掛ask1,再次通過offset參數調節。這樣一來,我們每次一買一賣的利潤,相當於ask1-bid1+2*offset,相比較單純的盤口的買賣價差ask1-bid1,多了一部分讓我們可以自主控制的額外調節變量,通過調節該變量,我們既可以控制下單的頻率,也可以控制策略的平均盈利幅度。
第四部分,空頭做市,空頭做市的實現與多頭做市是鏡像對稱的,我們通過先掛ask1+offset的空頭開倉單,成交后再掛bid1-offset的多頭平倉單,實現的過程,可以參考多頭做市。下圖是策略開始運行后,系統打印的部分監控日志。
可能的改進方向
以上,我們介紹了做市策略的原理,以及用api實現做市策略,並開啟實盤的全過程。
對於這個策略,他的基礎思路,還是相對簡單的,如果我們要做出印鈔機式的斜45度向上的做市高頻策略,可以在這個策略的基礎上加以改進,此處我們提出幾個改進的思路,供大家后續研究時參考。
首先,選擇費率盡可能低的交易所、賬戶,比如bm,這個大家耳熟能詳的負費率做市交易所,或是在交易所有費率優惠活動的時候,比如近期火幣對所有的HUSD交易的maker都是零費率,無疑也為策略提供了用武之地。
其次,對於掛單時機的選擇,我們目前只是在掛單策略中加入了趨勢的判斷,除此之外,還可以引入更多的盤口擇時信號,比如order imbalance相關方向信號,等等。
此外,還可以考慮加入一定的風控機制,例如累積一定單邊頭寸只平倉;行情快速反向移動時對價、超價止損等。
想要獲取本次分享的完整代碼,或是任何關於數據分析、量化投資的問題,歡迎添加技術宅微信:sljsz01,與我交流
往期干貨分享推薦閱讀
Omega System Trading and Development Club內部分享策略Easylanguage源碼
【數量技術宅|量化投資策略系列分享】基於指數移動平均的股指期貨交易策略
AMA指標原作者Perry Kaufman 100+套交易策略源碼分享
【數量技術宅|金融數據系列分享】套利策略的價差序列計算,恐怕沒有你想的那么簡單
【數量技術宅|量化投資策略系列分享】成熟交易者期貨持倉跟隨策略
【數量技術宅|金融數據分析系列分享】為什么中證500(IC)是最適合長期做多的指數
商品現貨數據不好拿?商品季節性難跟蹤?一鍵解決沒煩惱的Python爬蟲分享
【數量技術宅|金融數據分析系列分享】如何正確抄底商品期貨、大宗商品