<100 subscribers
Share Dialog
Share Dialog
这几天开发了一下Fantom上的套利机器人,感觉没那么容易啊。看着别人在各条链上套利很爽,简直是爆赚。就研究了一下,但是发现也有很大门槛。
有一个套利思路是,当有人大笔买入或卖出时,根据交易金额和流动性池的比例关系,会对价格产生对应的影响。或者有人单向添加流动性时,也会对价格造成影响,可以跟踪合约的transactions来实时获取到这种变化。那么如何套利呢?一笔交易从发起到完成,需要多个节点进行确认,节点确认的速度取决于公链的技术实现,以及当时的拥堵程度。而由于是gas费高的优先处理,所以后发起的交易,反而可能优先确认完成。
所以,当你捕捉到一笔大额交易刚发起时,立刻同向下单,并且调高gas费,这样就能保证比它优先确认完成,也就是优先成交。假定这笔大额交易对价格造成了1%的影响,你等它成交后,立刻反向交易平掉刚才的头寸,就获得了1%的收益。这个道理非常简单,就是过去股市上的超高频交易。而加密市场更容易实现,因为超高频交易是毫秒级,而加密市场是秒级,常见的公链,比如ETH一笔需要几十秒到数分钟,BSC需要3-6秒,FTM需要2-3秒。这个时间足够你插队到目标交易前面了。
BUT,当我实际去做时,发现问题很大。我跟踪FTM公链上所有的新交易,当满足我设定的条件时,就发起一笔交易。但实测的情况是这样的:在1637160799960时间发起的一笔交易,我得到交易详细信息时是1637160800318,发现是一笔大额买入交易,此时只过去358毫秒,然后我的程序立刻调用dex合约下单买入,在1637160800649时,显示交易已经提交开始进行节点确认,相比前面,相差331毫秒。我的gas费调到正常的2倍以求最快成交。正常的话,FTM上一笔交易从发起到确认完成,写入区块,需要2-3秒钟,我这个必然会优先成交。但最后成交时发现,我这笔交易比跟踪的大额交易,晚了整整3秒钟,也相差了2个区块。我的交易和目标大额交易,交易路径都是最简单的DAI→目标代币,没有很多的路由。
可能还有很多的优化空间,最佳的是建节点了,所以为啥很多人重金购买节点,除了可以挖矿收手续费外,还可以搞这些套利行为。
这几天开发了一下Fantom上的套利机器人,感觉没那么容易啊。看着别人在各条链上套利很爽,简直是爆赚。就研究了一下,但是发现也有很大门槛。
有一个套利思路是,当有人大笔买入或卖出时,根据交易金额和流动性池的比例关系,会对价格产生对应的影响。或者有人单向添加流动性时,也会对价格造成影响,可以跟踪合约的transactions来实时获取到这种变化。那么如何套利呢?一笔交易从发起到完成,需要多个节点进行确认,节点确认的速度取决于公链的技术实现,以及当时的拥堵程度。而由于是gas费高的优先处理,所以后发起的交易,反而可能优先确认完成。
所以,当你捕捉到一笔大额交易刚发起时,立刻同向下单,并且调高gas费,这样就能保证比它优先确认完成,也就是优先成交。假定这笔大额交易对价格造成了1%的影响,你等它成交后,立刻反向交易平掉刚才的头寸,就获得了1%的收益。这个道理非常简单,就是过去股市上的超高频交易。而加密市场更容易实现,因为超高频交易是毫秒级,而加密市场是秒级,常见的公链,比如ETH一笔需要几十秒到数分钟,BSC需要3-6秒,FTM需要2-3秒。这个时间足够你插队到目标交易前面了。
BUT,当我实际去做时,发现问题很大。我跟踪FTM公链上所有的新交易,当满足我设定的条件时,就发起一笔交易。但实测的情况是这样的:在1637160799960时间发起的一笔交易,我得到交易详细信息时是1637160800318,发现是一笔大额买入交易,此时只过去358毫秒,然后我的程序立刻调用dex合约下单买入,在1637160800649时,显示交易已经提交开始进行节点确认,相比前面,相差331毫秒。我的gas费调到正常的2倍以求最快成交。正常的话,FTM上一笔交易从发起到确认完成,写入区块,需要2-3秒钟,我这个必然会优先成交。但最后成交时发现,我这笔交易比跟踪的大额交易,晚了整整3秒钟,也相差了2个区块。我的交易和目标大额交易,交易路径都是最简单的DAI→目标代币,没有很多的路由。
可能还有很多的优化空间,最佳的是建节点了,所以为啥很多人重金购买节点,除了可以挖矿收手续费外,还可以搞这些套利行为。
No comments yet