做市交易员干什么的,交易员干什么的好

  

  编者按:本文来自Medium article 《Battle of the Bots: How Market Makers Fight It Out on Crypto Exchanges》。原作者为Mack Grenfell,前加密货币交易所做市商,由Odaily Daily每日芦荟整理。   

  

  从2017年12月到2018年3月的几个月里,我编写了一个机器人,执行了价值约5000万美元的加密货币做市商交易。接下来,我将讲述我是如何进入做市商的,机器人算法背后的理论,以及越来越激烈的做市商竞争。   

  

FOMO

  

  把时间拨回到2017年11月,当时比特币的价格正迅速涨至1万美元大关。这种价格的指数级增长使得比特币更快地走向主流,随着更多投资者的进入,价格被进一步提高。   

  

  这段时间,我和两个朋友去度假。这两位朋友都在比特币上投入了大量本金,并从上涨的价格中获利。作为三人中唯一一个之前没有考虑过投资的人,我觉得自己好像错过了什么。   

  

  度假回来后,我做的第一件事就是找了一家加密货币交易所,在自己的账户里存了500美元。我的计划很简单:购买价值500美元的比特币,如果看到回报,我会增加投资。   

  

     

  

价差(spread)

  

  在我投入500美元之前,我注意到一些奇怪的现象。3360我做的所有交易都有很大的“差价”。   

  

  在阐述这一现象之前,为了理解价差是什么以及为什么它如此重要,我们需要了解一些关于交易所如何工作的基本知识。   

  

  当我们想到交易所的交易资产,比如股票,我们一般认为它有一个固定的买卖价格。例如,苹果股票的价格是100美元。但其实价格不是单一的,而是有两种不同的价格:   

  

  买入价,即交易所中任何人愿意为一项资产支付的最高金额。   

  

  要价,也就是交易所里任何人愿意出售资产的最低价格。   

  

  大多数买家愿意支付比卖家愿意出售的价格更低的价格,所以出价总是低于要价。   

  

  就苹果股票而言,这两个价格可能非常接近。买方价格为99.99美元,卖方价格为100.01美元。这两个数字之间的差异(0.02美元)就是我们所说的价格差异。   

  

  对于苹果这种大众化、稳定的股票来说,差价很小。这是因为总有很多人愿意买这只股票,导致买方价格提高,很多人愿意卖出,从而拉低了卖出价。买卖双方的竞争实际上是把买卖双方的价格推得更近。   

  

  然而,当我刚开始研究比特币交易时,价差要大得多,通常高达100美元。在此期间,比特币的交易价格约为1万美元,这意味着其价差可能高达其总价值的1%(相比之下,苹果的交易价差仅为0.02%)。   

  

  比特币的蔓延是2017年12月市场混乱的结果。散户包括你我和普通人涌入市场。结果价格波动太剧烈,价差永远不可能稳定。   

  

  巨大的利差听起来像是一件坏事,在某种程度上的确如此。但同时,高利差也提供了获利的机会。   

  

  假设比特币的买方价格是9900美元,卖方价格是10000美元,差价是100美元。如果你能以9900美元购买一个比特币,然后立即以10000美元出售,那么你就获得了100美元的利润。   

  

挂单与吃单(Makers and Takers)

  

  如果你觉得这种情况太理想而不真实,那你就对了。你怀疑是因为你想到了交易费。为了理解手续费是如何与之相适应的,我们必须再绕过交易所的运作模式。   

  

  假设你想买比特币。它的买入价是9900美元,卖出价是10000美元。大致有两种方法   

  

  首先,您可以提交一个未决订单(制造商订单)。在这里,您可以指定一个不超过卖方价格的价格(即在0美元到10,000美元之间)和您愿意购买的数量。您的订单会留在交易所,直到有人出现并决定接受您的订单。至于是在几秒钟还是几天内发生,那就要看你的价格有多高,看交易所的交易量了。   

  

  或者,您可以提交订单。这与挂单相反,挂单需要你即时买入比特币。但问题是,你的食物清单匹配的是所有卖家未完成订单中的最低价格。当然,这也是要价/卖方价格,即交易所中任何人愿意出售资产的最低价格。   

  

  在我们继续之前,有一些关于接受订单的制造商3360的重要事项需要注意   

  

每当比特币在交易时,都会涉及到一个挂单和一个吃单,你不能和两个挂单或者两个吃单进行交易;

  

如果你决定走挂单路线,你出的价必须等于或高于买方价格,以便有一个很好的机会让卖方接受你的订单。

  

最后,挂单增加了市场的流动性,它们为交易所的其他人提供了更多的买卖选择。 与此相反,吃单从市场中抽走流动性,因为他们从交易所中移除了挂单。

  

最后一点至关重要,因为它有助于解释大多数交易所的收费结构。 由于交易所希望最大限度地提高流动性,所以它们通常会对吃单收取比对挂单更高的费用。 有些交易所,包括我正在使用的交易所,只收取吃单的手续费,对挂单收取 0% 的费用。

  

回到我们之前的例子。 如果我们能够以 9900 美元的价格购买比特币,通过挂单以 10000 美元的价格出售,那么我们每交易一个比特币就能获得 100 美元的纯利润。

  

挂单不仅仅是为了免手续费,还来自于这样一个事实:即如果我们使用吃单购买,我们必须得以卖方价格支付,也就是 10,000 美元。 接着如果我们继续通过吃单出售,我们必须以 9900 美元的买方价格出售,那么就会损失 100 美元。

  

因此,使用挂单,我们通过在买方价格买入,在卖方价格出售,可以很大程度上保证利润。然而,还有一个最后的问题,就是它对可以通过编程实现这一点的算法设计提出了最大的挑战。

  

正如我们前面提到的,在交易发生之前,需要一个挂单和一个吃单一起。 吃单的人往往会 “吃” 到最好的价格。 如果你想通过挂单买到比特币,那么为了让吃单人与你的单子相匹配,你必须出价略高于买方价格。 你的出价高出多少并不重要,你也可以只多出一分钱,比如 9,900.01 美元。

  

因此,编写做市机器人的第一步就是能够挂一个出价高于当前买方价格的买单。 这需要一个 API 查询买方价格,另一个 API 来提交订单。

  

理论上,只要出价比买方价格高出一个百分点就可以了。 然而,在实践中,在查询买方价格和提交订单之际,买方价格往往会发生变化。 为了确保你的订单高于所有其他买入订单,因此买入价格通常建议设置为高于当前买方价格 5–10 美分 。

  

这确保了,如果一个卖家的吃单来了,它将与我们的买入挂单相匹配,以后我们无论买多少比特币都不会损失任何费用了。

  

然后,我们可以做与我们刚才所做的完全相反的事情。在出售方面。 我们查询当前的卖方价格,并出价比那低几美分。 这可以确保,如果一个买家的吃单订单来了,它与我们的卖出挂单匹配。

  

我们已经获得了一笔可观的利润,大致等于比特币交易价差 (买卖价差) 乘以我们能够交易的比特币数量。

  

  

竞争

如果你还是觉得这太容易,反而不真实,那么你仍然是对的。只要有明显的盈利机会,交易者就会蜂拥而至,这就造成了竞争。这方面最明显的例子可以从做市商之间为设定买入价而相互竞争中看出来。

  

早在 2017 年 12 月,因为竞争太激烈,以至于买方价格通常每秒变化多次, 通常只会增加 1 或 2 美分,因为交易员之间相互争斗,以最大化他们设定买入价格的时间,同时也希望尽可能低价。

  

最初,我的机器人在查询买方价格之后,往往以高出 1 美分的价格挂买单,尽管看起来很明智,但我发现,当我的订单通过审核时,我的价格往往比 (不断变化的) 买方价格低几美分。

  

为了避开这个问题,并确保尽可能多的订单将击败当前的买方价格,我测量了每 100 毫秒买方价格通常会变化多少。 这使得我的机器人能够提供比买方价高出足够多的价格(0~5 美分) ,这样以来,其他交易员就不会在我的订单处理过程中超过我的价格。

  

我也开始考虑,价差的大小将如何影响我买单超出买方价格的部分。 正如我们之前看到的,任何交易的利润都与利差的大小成正比,这使得在价差很大时击败买入价格变得更加重要。 也正因为如此,我写了一个公式,这个公式根据价差的大小,决定我的出价得比买方价格高出多少。

  

到目前为止,我主要谈论的是做市的买入方面,但卖的工作是完全一样的。 一旦你购买了比特币,你就想要以 (更高的) 卖价出售它。 在卖价上会有竞争,就像在买价上有竞争一样,所以你必须提供比当前卖方价格低几美分的价格来削弱你的竞争对手。

  

不过,2017 年末 / 2018 年初,卖方价格的竞争通常要少得多。 我认为之所以买家之间的竞争比卖家之间的竞争更激烈,这是因为当时比特币供不应求。

  

市场操纵

市场操纵是指交易者为了获得不公平的优势而在市场上使用的各种恶意策略。 作为一个不受监管的市场,加密货币交易所在市场操纵方面已经成熟(现在仍然如此)。 最常见的操纵形式是所谓的欺骗 ---- 仅仅为了改变市场状况而下单的行为。

  

怎么操纵呢?举个例子,在前面的说明中,买方价格 9900 美元、卖方价格 10000 美元,价差是 100 美元,这是一个很好的市场机会。 然而,如果有人下了一个价格为 9,999.99 美元的买单,那么价差就会缩小到仅仅 1 美分。 利差太小,使得不可能从做市中获利,那么所有的交易活动都会陷入停顿。

  

买家挂一个低于卖价 1 美分的订单,本身并不是市场操纵。 事实上,如果你的交易所不收取比特币挂单费用,这是一个快速有效购买比特币的方式。 但问题是,每当出现这些买单的时候,它们的量都是最小的 0.00001 比特币,价值约 10 美分。

  

做市商之所以会下这么小的买单,而且恰好低于卖出价的原因十分天才,是因为如果做市商刚刚能够以买入价买入比特币,那么他们就有动机尽快以卖出价卖出比特币。 他们出售比特币所需的时间越长,卖出价格变动的风险就越大,他们的利润也会发生变化。

  

当然,你可能会说,这段时间价格上涨的可能性和下跌的可能性是一样的。 做市商并不关心这个,他们的工作不是投机价格,而是尽可能快的进出。

  

为了阻止价格下跌,并阻止卖方竞争压低卖方价格,做市商将他们的卖出价定在要价的正下方,并在新的卖出价正下方插入一个 (“假的”) 买入指令。后一个订单的订单大小将尽可能小(0.00001 比特币)。

  

这有两个影响:

  

没有其他卖家能打败那个卖家的要价。 如果你低于要价 1 美分,你就是在买方价格,交易所不允许卖家以低于买方价格/出价的价格挂单。

  

它将利差减少到仅仅 1 美分。 当一个做市机器人看到如此小的价差,它可能会暂时关闭,因为没有利润可赚。

  

这第二点是至关重要的,因为它解释了为什么当一个欺骗性的买单以刚刚低于卖方价格/要价的价格进入,几乎所有的市场机器人都关机了。实际上,即使利差看起来只有 1 美分,还是有机会的。

  

让我们假设下一个卖家要吃一个 1 比特币的单。第一个 0.00001 比特币将以伪造的指令卖给做市商,将该指令撤出交易所之后,下一个 0.99999 比特币将以新的出价出售给订单,这个新出价是低于伪造订单的最高价格。

  

我对我的机器人做出的最大改进之一是让它在计算传播时忽略欺骗订单。 即使卖出价可能只比买入价高 1 美分,我的机器人也会查看欺骗订单,找出如果没有欺骗订单 (仍可能是 50 美元至 100 美元) 的价差。 如果这个价差大到足以提供一个机会,它就会在欺骗性订单之后竞争下一个最高价格的买单。 这意味着,当卖家的吃单到来时,价值几美分的比特币将被卖给欺骗者,然后剩下的卖给我。

  

2018 年

2018 年的前几个月是动荡不安的。 去年 12 月比特币升至 2 万美元后,价格开始下跌。

  

但这为做市商提供了巨大的机会。 买卖双方的高交易量(这意味着更多的吃单),大大增加了一个有效率的做市商每天可以执行的交易量。

  

然而,这一时期的机会相对来说是短暂的。 在 1 月和 2 月的疯狂之后,成交量开始枯竭,意味着获利机会减少。 尽管交易量下降,但随着新的机器人进入交易所,做市商的数量不断增加。

  

交易所的做市商越多,买卖价格的竞争就越激烈,价差进而收窄了。 额外的竞争对手也意味着,订单通常会在较短的时间内以买方价格出价,因为一旦你提交了订单,就会有更多的竞争对手准备出价高于你。

  

由于竞争的加剧和盈利机会的减少,我在 3 月份关闭了所有的机器人,从那以后再也没有重启过。许多交易所提高了做市商的费用,这阻止了我重返做市商行列的步伐,但对于那些足够聪明、能够把握时机的人来说,仍然有机会。

  

总而言之,我在 2017 年 12 月到 2018 年 3 月间交易价值约 5000 万美元的比特币,投资回报率为 20.2。

相关文章