一文读懂币圈的「做市商」是怎么玩的?
原文作者:看不懂的sol(X: DtDt 666 )
这波插针式下跌,很多兄弟说是币安做市商出问题了,包括锚定黄金的 $PAXG 也插针了。
为什么很多散户都说自己一买就跌,一卖就涨?
那么,做市商是干嘛的?又是如何运作的呢?
1.手续费返还
2.双向挂单,二者均成交后微小的 spread 价差利润,积累微薄的利润,本质在于利用时间及信息延迟捕获流动性
3.价格发现,帮助市场高效定价,提供流动性
4.坐庄,操纵市场,配合消息抛售流动性给散户
“做市商”的英文原文是 Market Maker,换句话理解:在没有市场的地方,做市商 Make(做,创造)了一个市场出来。
首先假如你是一个项目的做市商,现在有一个订单薄(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,且使用更小的订单量。这是最危险的市场情况,经常吓跑其他的做市商,当然危机并存,也蕴藏着很多机会。大多数时间做市商会赚取稳定的收益,但是市场脾气怪的时候,会击穿你订单薄的一侧,迫使你亏损出局。
做市交易有 2 个关键步骤:确定 fair price(定价)和确定价差(spread)。
第一步是确定 fair price, 也就是定位在哪个价格挂单。定价是第一步也是非常重要的一步,如果你对 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 中间运动,导致单子无法成交。
在挂单无法成交的情况下,价格的均值很可能会改变,因此做市商要对"库存成本"进行管理,这个“库存成本”可以看作是一个要支付利息的借款,时间的推移会导致波动率增加,借款利息也会随之升高。做市商可以通过各个周期的平均波动率来制定回归策略,限制持仓成本。
最后兄弟们,为什么很多散户都说自己一买就跌,一卖就涨?这并不是没根据的,这篇文章就给出了答案!
Why the Zero Knowledge Proof (ZKP) Whitelist Could Be the Key to Its Presale Story
The Zero Knowledge Proof (ZKP) whitelist is gaining attention ahead of its presale. Learn why this p...
Why BlockDAG, Ethereum, Solana, and Chainlink Stand Out as the Most Reliable Crypto to Watch This Year
Explore why BlockDAG, Ethereum, Solana, and Chainlink stand among the best crypto to watch right now...
SUI Ready For $7 Price Target As Market Pressure Builds — Analyst
Amid a new wave of economic tensions between the US and China, Sui (SUI), alongside other cryptocurr...