
看不懂的sol|2025年03月26日 14:09
一文读懂币圈的「做市商」是怎么玩的?
币安近期做市商违规频发。继 GPS 做市商与 SHELL 项目违规操作后,MOVE 项目做市商也出事,抛售 6600 万枚代币,违规获利3800万U,致代币价格暴跌 。
为什么很多散户都说自己一买就跌,一卖就涨?
那么,做市商是干嘛的?又是如何运作的呢?
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),大家会抢着一直缩小价差,直到没有利润为止。
现在我们从数学角度探讨,怎么确定价差。先从波动开始。我们要知道在非常小的时间周期上,这个资产的价格/成交量在它均值附近的波动性大小。接下来的数学计算会假设价格活动服从正态分布,当然这会和实际情况有所偏差。
假设我们以1s作为采样周期,过去60s作为样本,假设当前中间价的均值和60s前的均值一样(记住这里的均值不变),且这个均值和现价有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中间运动,导致单子无法成交。
在挂单无法成交的情况下,价格的均值很可能会改变,因此做市商要对"库存成本"进行管理,这个“库存成本”可以看作是一个要支付利息的借款,时间的推移会导致波动率增加,借款利息也会随之升高。做市商可以通过各个周期的平均波动率来制定回归策略,限制持仓成本。
最后兄弟们,为什么很多散户都说自己一买就跌,一卖就涨?这并不是没根据的,这篇文章就给出了答案!
分享至:
脉络
热门快讯
APP下载
X
Telegram
复制链接