BTCC / BTCC Square / Btcbaike /
一文讀懂幣圈的“做市商”是怎麼玩的?

一文讀懂幣圈的“做市商”是怎麼玩的?

Author:
Btcbaike
Published:
2025-10-11 14:20:12
15
2

原文來源於 ODaily 星球日報星球君的朋友們

 

這波插針式下跌,很多兄弟說是幣安做市商出問題了,包括錨定黃金的$PAXG也插針了。

那麼,做市商是乾嘛的? 又是如何運作的呢?

1.手續費返還

2.雙向掛單,二者均成交後微小的 spread 價差利潤,積累微薄的利潤,本質在於利用時間及信息延遲捕獲流動性

3.價格發現,幫助市場高效定價,提供流動性

4.坐莊,操縱市場,配合消息拋售流動性給散戶

首先假如你是一個項目的做市商,現在有一個訂單薄(order book),它長這個樣子:

我們先做一些假設:這個市場沒有其他投資者發布限價單,你是這個市場唯一的流動性提供者,也就是說你是唯一的做市商;最小價格變動單位是 0.01;所有吃單(taker)需要支付 0.025%的手續費,所有掛單(Maker)獲得 0.01%的返利。

你是做市商 mARket maker,是掛單的一方,市場上所有和你市價成交的單子,你都能拿到 0.01%的返利。

最優買價和最優賣價之間的價差(best bid 和 best offer,簡稱 bb/o)叫做 spread,當前訂單薄的 spread 是 0.01。

現在,有一筆市價賣單進來了,會和你的買一價 100 成交。 這筆交易你付出了 100,而對方實際只收到了 100-0.025*100=99.975,其中的 0.025(100*0.025%)是手續費,而你可以拿到其中 0.01%的返利,所以你實際只付出了 99.99。

因為買一被拿掉了,所以訂單薄的結構變了,現在的 spread 變成了 0.02。 但是市價還是 100,

如果此刻有一筆買單進來,將會和你的賣一價 100.01 成交。 上一筆單子你以 99.99 的價格買入,這裡再以 100.01 的價格賣出,賺到 0.02,再加上返利,這一買一賣的總利潤大約可以達到 0.03。

儘管你的買一(100)和賣一(100.01)的 spread 只有 0.01,但是實際利潤高達 0.03!

如果源源不斷的市價單進來和你成交,每一次買賣你都可以賺到 0.03,這樣積累下來,發家指日可待!

但是很遺憾,市場並沒有如你預期般順利發展,在你以 99.99 的價格接貨後,現貨市場的價格立刻從 100 下跌到 99.80,你立刻撤掉了 99.99 和 99.98 的買單,以免被別人套利。

因為現在的價格是已經跌到了 99.80,你的賣一還是 100.01,這個價格太高了,沒有人會以這個價格和你成交。 當然你也可以把賣一下調到 99.81,但是將會產生 0.17 的虧損。

別忘了,你是市場上唯一的做市商,你完全可以利用這個優勢,調整訂單薄,把虧損打到最低!

你計算了一下以什麼價格掛賣單,能保本出局。 你以 99.99 的價格接貨,想要賣個保本價平掉這一單,賣一就要掛在 99.98(因為加上返利,實際到手是 99.99,剛好不虧不賺)。

於是你調整了一下訂單薄,在買一和買二分別掛上了 99.80 和 99.79 的單子,並在賣一掛上了 99.98 的單子:

儘管現在的價差很大,但你是市場上唯一的做市商,你可以決定不降低賣單價格。 如果有人願意以 99.98 的賣一價格成交,那皆大歡喜。 如果沒有,也沒關係,因為你的買單價格已經下調到了 99.80,會有市價單進來和你成交。

此時,有市價買單進來和你的買一成交。 現在你手上有 2 份合約,持倉成本會平攤到:(99.79 99.99)/2=99.89。 (上一筆我們以 99.99 的價格成交,這一筆以 99.79 的價格成交,比買單價格更低成交是因為我們有 0.01%的手續費返利。)

OK,現在平均持倉成本降低到了 99.89,你調低你的賣一價,從 99.98 調低到 99.89。 突然間,巨大的報價差縮小了一半。 接下來,你可以不斷地通過這樣操作,逐步減少成本,縮小價差。

上面這個例子裡,價格只波動了 0.2%,如果價格突然波動 5%、10%甚至更多呢? 即使用上面的辦法操作,也可能會導致虧損,因為價差太大了!

因此做市商要研究 2 個問題:

在不同的時間窗口下,價格的波動性有多大?

市場的成交量大小?

波動性簡單來說,就是價格離其均值的偏離程度,不同的時間窗口下價格的波動性是不同的。 一個品種可能在 1 分鐘級別的 k 線圖上上躥下跳,而在日線圖上的走勢波瀾不驚。 成交量則告訴我們了流動性,流動性會影響掛單的 spread 和成交頻率。

上面的圖演示了 4 種價格波動,對不同的波動情況,做市商要選擇不同的應對方式:

如果市場整體的波動率較低,每日波動率和日內波動率都很低,則應該選擇較小的報價差,以最大化交易量。

如果每日波動率低,但是日內的波動率高(也就是說價格雖然大幅波動,但並沒有實質性變化),你可以擴大報價差 spread,並且用更大的訂單量。 如果價格朝不利方向運動,可以採用上面說的攤低平均成本的辦法來減少虧損。

如果每日波動率高,但是日內波動率低(換而言之,價格以平穩的步調走出了趨勢),這時候你應該用更小的、緊密的報價差 spread。

如果每日波動率和日內波動率都很高,你應該擴大價差 spread,且使用更小的訂單量。 這是最危險的市場情況,經常嚇跑其他的做市商,當然危機並存,也蘊藏著很多機會。 大多數時間做市商會賺取穩定的收益,但是市場脾氣怪的時候,會擊穿你訂單薄的一側,迫使你虧損出局。

也就是定位在哪個價格掛單。 定價是第一步也是非常重要的一步,如果你對 fair price 的理解偏差太大,那麼你的“庫存”很可能甩不出去,最後只能以承受虧損把倉位平掉。

定價的第一種方式是參考該品種在其他市場的價格。 比如你在倫敦市場交易美元/日元,你可以參考它在紐約市場的定價。 但是如果價格在其他市場出現異常波動,這種定價方式會變的非常不可靠。

中間價(mid price) =(買 1 價 賣 1 價)/2。 用 mid price 定價是一種看似簡單,但非常奏效的方法,因為中間價是市場博弈的結果。 Quote around mid, the market is probABly right 用中間價定價,市場大概率是對的。

除了上面講到的 2 種定價方式外,還有其他很多種定價方式,比如基於算法模型、市場深度的定價方式,這裡不做詳細展開。

做市商要考慮的第二個問題是價差 spread。 確定合適的價差,你需要考慮一連串的問題:市場的平均成交量是多少? 這個成交量的變化(方差)有多大? take(主動買單)的平均大小和變化(方差)? 在 fair price 附近的掛單量情況? 等等。 除此之外,你還要考慮在很小時間窗口裡價格的波動和方差,作為做市商要付出/獲取的手續費,其他次要因素比如接口速度,下單撤單的速度等等。

在非常短的時間段裡,做市商的盈利期望其實是負的,因為每一筆主動買單(taker order)都想在自身價格有優勢的情況下和你成交,除非是被迫止損的單子。 每一個市場上其他的參與者都想從你手上獲利。

試想一下,你是一個做市商,你要把單子掛在什麼位置?

在掛單能被成交的前提下,要吃到最大的價差,你需要在訂單薄的最前面掛單,也就是買一/賣一的價位。 只要價格一變動,你在買一的單子就會迅速成交,但是頻繁的價格變動是件壞事——比如說你剛接了貨,價格就變了,你原來賣一的掛單已經沒法以掛單價格成交了。

在一個流動性不充分,價格變動較小的市場,把單子掛在買一/賣一會保險的多,但是這會引出另一個問題——其他做市商會發現你,然後以更小的價差搶在你前面掛單(tighten the spread),大家會搶著一直縮小價差,直到沒有利潤為止。

現在我們從數學角度探討,怎麼確定價差。 先從波動開始。 我們要知道在非常小的時間週期上,這個資產的價格/成交量在它均值附近的波動性大小。 接下來的數學計算會假設價格活動服從正態分佈,當然這會和實際情況有所偏差。

假設我們以 1 s 作為採樣週期,過去 60 s 作為樣本,假設當前中間價的均值和 60 s 前的均值一樣(記住這裡的均值不變),且這個均值和現價有 0.04 的標準差。 由於我們前面假設了價格運動服從正態分佈,所以我們可以進一步得出,在 68%的時間裡,價格會在離均值 1 個標準差($-0.04- $0.04)內波動;在 99.7%的時間裡,價格會在離均值 3 個標準差($-0.12-$ 0.12)內波動。

ok,我們在中間價兩邊以 0.04 的價差報價,即價差 spread 等於 0.08,在 68%的時間裡,價格會圍繞均值 1 個標準差($-0.04- $0.04)內波動,所以此時兩邊的單子要想成交,價格的波動就必須擊穿兩邊的價格,也就是超過 1 個標準差,有 32%的時間(1-68%=32%)價格的波動會超過這個範圍。 因此,我們可以粗略估計一下單位時間的利潤:32% * $0.04 = $0.0128。

我們可以繼續推演: 如果以 0.06 的價差掛單(分別離中間價 0.03 的位置),對應 0.75 個標準差(0.03/0.04=0.75),價格波動超過 0.75 個標準差的概率是 45%,預估單位時間利潤 45% * 0.03 =$0.0135。 如果以 0.04 的價差掛單(分別離中間價 0.02 的位置),對應 0.5 個標準差(0.02/0.04=0.5),價格波動超過 0.5 個標準差的概率是 61%,預估單位時間利潤 61% * 0.02 = $0.0122。

我們發現,以 0.06 的價差掛單,也就是在 0.75 個標準差的位置掛單,能獲得最大的利潤,也就是$0.0135! 這個例子里分別舉了 1/0.75/0.5 個標準差的情況,比較下來,0.75 個標準差能獲得最大利潤。 對直覺進一步證明,我用 excel 做了不同標準差下預期收益的推導,發現預期收益是一個凸函數,這個凸函數正好在 0.75 個標準差附近取到最大值~!

以上假設價格波動服從均值為 0 的正態分佈,也就是說市場的平均回報率是 0,而實際情況是價格的均值會變化。 均值的偏移會讓一側的單子更難被成交,當我們有庫存時,不僅會虧錢,而且預期利潤率也會降低。

總之,做市商的期望由兩個部分組成,一是掛單能成交的概率,比如以 1 個標準差掛單,有 32%的時間會成交;二是掛單成交不了的概率,比如以 1 個標準差掛單,有 68%的時間價格會在 spread 中間運動,導致單子無法成交。

在掛單無法成交的情況下,價格的均值很可能會改變,因此做市商要對"庫存成本"進行管理,這個“庫存成本”可以看作是一個要支付利息的借款,時間的推移會導致波動率增加,借款利息也會隨之升高。 做市商可以通過各個週期的平均波動率來製定回歸策略,限制持倉成本。

|Square

下載BTCC APP,您的加密之旅從這啟程

立即行動 掃描 加入我們的 100M+ 用戶行列

本站轉載文章均源自公開網絡平台,僅為傳遞行業信息之目的,不代表BTCC任何官方立場。原創權益均歸屬原作者所有。如發現內容存在版權爭議或侵權嫌疑,請透過[email protected]與我們聯絡,我們將依法及時處理。BTCC不對轉載信息的準確性、時效性或完整性提供任何明示或暗示的保證,亦不承擔因依賴這些信息所產生的任何直接或間接責任。所有內容僅供行業研究參考,不構成任何投資、法律或商業決策建議,BTCC不對任何基於本文內容採取的行為承擔法律責任。