0705 - 《Flash Boys》与 Front-Running

Flash Boys

看完这本书,最大的收获是理解了 Front-Running(提前交易)

简单的说,比如,听说你要买很多土豆,我先去市场上把便宜卖的土豆都买下来,然后高价卖给你。

我怎么知道你要买土豆呢?是这样的,中国股市只有上证和深圳两家证券交易所,而每一家公司只能在一家交易所上市。也就是说,国内你要买一家公司股票,只能在一个地方买(当然,你直接面对的可能是不同的券商,但他们又都是连接到同一家交易所)。而美国则不同,比如你要买苹果公司的股票,可以在大大小小有几十家交易所购买。你在任意一家交易所下单,该交易所需要「同步」给其他所有交易所,然后以最优价格成交。问题就出在「同步」不是真的同步,而是需要时间的,比如 100ms。当你在第一家交易所成交后,高频交易者 推测 出你要买 大量 苹果股票,他们可以在 50ms 内将其他交易所的便宜股票买下来,然后在 100ms 订单到达这些交易所时,以较高的价格卖给你。当然,他们可能判断错误,你买完这一点就不再买了。只是,成功的概率更高。

核心在于速度:先买再卖,这两个动作发生在毫秒之间。也即,当 Front-Run 遇到了 HFT(High-Frequency Trading,高频交易),爆发出强大的威力。

说得再形象些,春运买票,前一秒还是尚未开售,下一秒就已售罄,谁干的?黄牛党。他们像高频交易一样,拥有速度优势,抢占了资源,然后高价转让。道理都是一样的。

怎么解决这个问题呢?书中大力褒奖的是 IEX 这个新兴的交易所,他们采用这样的策略:在订单同步至其他交易所时,额外加入不同的延迟,使得订单真正的同步到达所有交易所,关掉了高频交易者的时间窗口,也就解决了这个问题。整本书故事性很强,读起来像是一帮侠义之士联合在一起,干翻了一股邪恶势力,为民除害。真相是不是这样呢?我是觉得商业的事,不会这么纯粹。

怎么加入延迟呢?书中有个很有意思的细节:光纤线圈。离得近的交易所,在接入光纤时,额外加一段很长很长的光纤,把这些光线绕成线圈。光多跑了这么段距离,也就增加了延迟,这样就可以和离得远的交易所用时差不多。不用写一行代码,很巧妙。

PS:读的英文版,断断续续啃了 10 几个小时,感觉只读懂了一半…


博客原文:0705 - 《Flash Boys》与 Front-Running