最近看了 babyquant 的《大餅圈的套利策略簡析》寫了各種套利策略,我也來談談自己之前差不多實盤運行了2年左右的數字貨幣套利策略。
之所有公開,一是因爲我現在已經不運行這些策略了,寫一寫自己也總結一下;二是套利策略的邏輯本來就不神祕。這一行比拼的是執行力,也就是寫代碼的能力,特別是高頻交易方面。交易的頻率可能並不是很高,但必須反應速度快,波動來了,立馬入場。當然還有對事情的專研能力,因爲套利的競爭還是比較激烈的,後期的競爭更是慘烈。還得有一定的資金籌集能力,畢竟套利的盈利率有限,資金充足一點纔可能有比較可觀的利潤,至少要超過打工收入吧,才值得全職去做。當然加入機構團隊也是一個辦法。
這裏公開並不意味着這些策略現在完全無效,大概可能還是有效的,只是效率可能不是太高了。意思就是風險大賺錢可能並不多,還有前面提到的競爭慘烈,玩的人越來越多,而且團隊作戰。
更重要的是,相比於其他策略而言,單純套利吸引力不大,雖然可能比較穩。最終還是得擁有風險敞口的策略才能更賺錢,當然風險也更大,盈虧同源嘛。以前就是,行情來了,雖然我也賺錢,但是相比於別人的持倉策略,別人在喫肉,我頂多算喝到一口湯。當然,持倉策略方向做反了的時候,我也沒有跟着捱打,只能這樣安慰自己了。
先講講我最穩定賺錢的套利策略之一,也就是俗稱的“搬磚”。
搬磚套利是最適合幣圈的策略。因爲這些幣是數字化的,都在鏈上,這個大餅和那個大餅之間完全同質化(不同質化的話就成 NFT 了)。這樣在不同交易所之間交易的大餅二餅,完全一模一樣,天然適合搬磚。不像其他實體品種,比如農產品,雖然他們名稱可能一樣,比如都是小麥,但是一來運輸麻煩,還得算倉儲成本,二來在不同國家地區、週期的小麥可能蛋白質之類的含量也不一樣,定價肯定也不同了,很容易被反套。
不可控的因素更多,風險就加大了。
所謂的“搬磚”就是在幣圈有很多交易所,那麼每個交易所的大餅二餅的價格其實是本交易所的賬戶之間博弈出來的,這樣不同所之間肯定就有差別。普通用戶感覺到每個交易所的價格幾乎都是同步的,這就是套利策略的貢獻,當然做市商的策略也有貢獻。
總之,套狗們是抹平交易所差價的最大功臣。
具體策略
策略邏輯非常簡單。
簡單到,當年我在還不知道交易中買賣的英文單詞是 bid ask 的時候,代碼寫出來都能賺錢。當初在 API 文檔裏到處翻找 buy sell,發現居然找不到,記憶猶新,只有 bid ask long short 之類。所以說隔行如隔山。其中隔離的障礙之一,就是每一個行業自帶的“黑話”。
策略的大致邏輯就是,一個所的賣一價低於另外一個所的買一價,那麼條件就滿足了。說明有人在低價賣,另外有人高價買。你在第一個所買入二者掛單的公約數量,然後在另外一個所賣出,就是這麼簡單!激進一點,你也可以全吃了,然後剩下的再慢慢出貨。
兩邊都做 taker,只做軟搬磚的話(就是兩個交易所都有資金或者幣,並不真的把幣買了再轉到另外一個所賣,這樣太慢,按這操作黃花菜都涼了)幾乎沒有持倉,同時成交,利潤立馬到手。沒有比這更簡單更穩定的策略了。
但是現實肯定沒有這麼容易的事情。知道跟真正做到之間往往隔着天塹。實操總有意外發生。
下面講講我當年遇到的問題和應對之道,說不定對後來者有一定啓發。
問題一,沒有價差。
這個問題應對方法很簡單,那就是等。不要輕易亂動。
後期我加入了一點 maker 邏輯,主動去 orderbook 守株待兔,這樣就類似做市商了,邏輯稍微複雜一些。
總之就是得等。你如果不想等,那就得像上面提到的那樣變換策略。餅圈之前機會非常多,波動充足,幾乎每天都有幾次小機會,每週都有幾次大機會。做 taker 就是得等機會出現。
真正需要擔心的是,下雨了,你接水的桶夠不夠多,夠不夠大。不過這些只有你等你真正見識到了,纔會明白。
問題二,搶不到。
這是最大的問題了。
你的代碼監控到賣一買一價差有利可圖,但是轉瞬即逝,這總情況不是別人撤單,就是被人捷足先登了。你如果沒有發單還好,單純就是一個看客。或者發單了,但是沒有成交,掛 orderbook 上了,也還好,大不了就是撤單。(當初還沒有 IOC,FOK 這樣的算法單,就是不成交立即自動撤單,不會掛着被喫,而只有普通的限價、市價單,特別是小所)麻煩的是,單腿成交了,這個後面再談。
搶不到單子的應對。
因爲是兩個(甚至多個)交易所之間套利,那麼單所的反應速度就沒有那麼重要,當年還沒有 colo 這些設施,更沒有 FPGA 這些大殺器,其實大家還比較公平,而且套利算法也極其簡單,沒有計算速度要求。所以關鍵就是在兩個所之間的綜合速度了。
當年的主流交易所服務器主要分佈在東京(B安)、香港(ok)還有就是歐洲的都柏林、法蘭克福和瑞士等等。
所以你總不可能把自己的實盤代碼跑在北美的服務器吧。
下圖是一張簡單的海底光纜圖。你可以根據自己套利的交易所,尋找到達他們共同都比較快的大致位置。特別是對於那些跨洲的套利,信號在光纜上單趟跑一次就得上百 ms 了。

這裏的訣竅呢,就是可以首先考慮流動性沒那麼好的交易所,也就是小所,最好有代碼和它在同一個雲服務器供應商,同一個區。這樣能夠搶先拿下小所的掛單,然後再到流動性好的交易所去出貨。
lead-lag,先對 lag 一側動手。所謂的 take slow mover 策略。喫還沒有意識到價格在激烈變化的掛單。
搬磚套利的一個要點就是,最好是一個大所和一個小所接合,這樣才更容易獲利,兩個大所之間的競爭早就白刃化了。
然後另外一個竅門是,管他3721,兩邊都佈置自己的代碼,然後在他們的中間地帶有可能也佈置上,這樣增加搶到的概率。到最後,很有可能發現其實是自己在跟自己的交易機器人搶,這樣最好。
在當年,只要你的代碼是異步的,然後用上了 websocket 獲取行情,就足夠快了,上得了牌桌,可以一戰。
問題三,搶到單腿。
怕的是,一條腿成交了,另外一條還掛在那裏,那麼你就有了敞口,而且這種時候大都是被逆向選擇了。也就是,價格在漲,你賣出了,另外一側沒買到對衝;價格在暴跌,恭喜你,你成功接到貨了,但是賣單沒有成交。
這個時候就看你的策略了。如果是幣幣套利,也就是 quote base 都是餅,例如 ETH/BTC 交易對,那麼問題就不大,因爲反正都是餅,漲跌幅度一般不太大。
但是如果是 usdt,那麼價格波動可能就大了。這時你可以等等看,也可以認栽出貨,也可以看看是不是在小時線布林帶上下軌之外的危險區之類的,最好及早止損。
我之前有一個 6 秒持倉限制,一般單腿情況如果超過 6 秒,我就平倉走人了。好在一般勝率都比較高,這樣的情況有限。
總之,看你的風險偏好。套利有時候也是會虧損的,雖然做得好的能夠在大部分時候避免。
問題四,單所滿倉。
大行情下,你在跌得慢的一側全賣成了 usdt,跌得厲害價格更低的一側,應該全是接到對應的幣了。這裏並不是真正的滿倉,因爲你手裏的餅和錢的數量其實並沒有變化,只是它們所在的交易所變了,然後數量多了一丟丟。
如果行情繼續,價差持續,基本上你只有相互轉幣,這樣就是真正的“搬磚”了。當然你也可以等反彈,有時候價格一旦反彈,價差就會倒掛,這樣又可以交易一波。一來一回,如果你幣種比較多的話,當天可能就能滿倉賺 1 個點,甚至更多,因爲幣種之間行情的切換會提高資金利用率,當然你的策略也要設計得當,這也是挑戰之一。比如利用跨所的三角套利,在可能不虧錢的情況下,軟轉移幣,然後繼續套。
到了我套利的後期,套利的人多了,只有在很大的行情下,纔有這樣的機會滿倉。人多了,資金多了,流動性就上來了,特別是爆炸頭 sbf 他們這些機構入場之後,把持了主要的機會,很多套狗都轉做其他策略了。
現在做市的人越來越多,套利的人也越來越多,機構入場,還有期權交易增加,312 這樣的史詩行情真的很難再現。那天真的是一場狂歡,歷歷在目。
其他技巧
我記得當初最大的單筆單子差不多150w左右(rmb計算)。
我設計了兩種模式,也就是有人監督模式,無人監督模式。
很簡單,無人監督的時候,例如晚上睡覺了,就低調點,單子小些,限額,慢慢喫單。一定要上一筆雙腿都成交了,再執行下一筆。控制好倉位。機會錯過就錯過了。而且所有交易對要控制總倉位,控制全賬戶風險。
有人監督的時候,那麼就可以開啓大炮模式,一口把低流動一側的單子吃了,甚至直接喫大單,然後到幾個流動性好的大所慢慢出貨。如果突然轉向,那麼趕緊人工介入處理一下。採用之前提到過的處理方式應對。
我記得當時《硅谷》美劇上映,我也用了裏面那個加拿大程序員採用的音樂,作爲有大單成交的提醒,每次聽到都很興奮,趕緊去查看情況,不要出了紕漏。
還有一個處理競爭的技巧。就是最好能夠壟斷一個小交易所的一些交易對。現貨的手續費一般千一左右,那麼一進一出就是千二(還有一點轉幣費用,如果資金少,那麼也得計算在內)所以至少要有千分之二的差價纔有得賺。
如果這個小交易所的交易對,例如 EOS/ETH 只有你在交易,你就可以任憑它的價差到千三才動手,甚至更高一點。當然太高也不好,這樣會引來競爭對手。市場上大家時時刻刻都在掃描監控各個交易所的價差。人家看到這個交易對怎麼價差這麼高,就會過來躍躍欲試。但是如果看到價差不大,很快消失,同行就知道這裏已經有主了,要過來搞事情得下更多功夫,大概得和人硬碰硬,就不一定來了。
如果真的有頭鐵的同行過來搞事,那麼你就得應戰。
來的是 maker 無所謂,因爲這個策略只做 taker, 和 maker 策略正好互補,他要是個菜雞,代碼反應速度慢,你正好可以喫他。
怎麼應戰?就是在行情剛啓動的時候就把單子吃了,之前是千三,那麼對手進來可能千分之2.5就動手了,你連續錯過幾單就知道有人進來在做同樣的事情。這時候,你就得犧牲利潤,可能千2就動手,搶跑。千2其實大家都還有利潤,因爲交易量大的,手續費有折扣,所以大家會一直試探到千一左右。這個時候,你就得壯士斷腕,不要利潤,甚至倒貼一點也得上了。比如萬五左右就動手。
這裏就是拼心理了。因爲對手是剛來這裏,那麼他心態其實就是來試試,有棗沒棗打一杆子那種,看到不賺錢很快就會撤。這種套利,我之前說了,你要搞得好,就得多處佈置服務器,還得充幣,佔用資金。還得專人監控。一句話,就是有成本的。一旦不賺錢,新來的就會撤。一般就是1個星期這樣。對方可能向他老闆報告,這個交易對不賺錢,那麼他們就可能轉戰其他地方了。遇到硬茬,那麼就拿出半個月的利潤來跟他耗,新來的基本都扛不住。
我自己去別的地方也被人這樣搞過。別人爲了守住自己的地盤,會不惜和你一戰。所以道理大家都懂。
最後,競爭對手走了,那麼你就繼續加價,千三才動手。這其實跟線下菜市場的那些小販策略一樣。畢竟都是交易,沒誰更高大上。
所以,這行其實也挺累的,大家不斷相互防着。有時候還有專門收割套利策略的交易機器人,誘發你出手交易。這個就複雜了,不在這裏表述。總之要防的東西不少,得時刻警惕。盯盤是常事,幾天不盯盤,不看看盤口變化,修改配置參數,甚至源代碼,利潤就會下降。
總之都是辛苦錢。
潛在風險
套利策略其實並不是全無風險。策略本身風險並不大。套到單腿,及時退出就可以了,大不了少賺一點。
風險就是幣圈的結構性風險。一是交易所跑路,倒閉,提不出幣,比如 cz 要是被 FBI/CIA 之類的長臂執法了,你的幣不一定拿得到;二是 USDT 或者其他幣本身突然暴雷了。
當年交易所之間的頭部效應還不是非常顯著,小所還是有人去交易的。不像現在,經歷過幾次交易所跑路之後,還有 ftx 挪用資金暴雷,大家都只去頭部交易所交易了。
所以,普通套利不一定是一個好的策略。如果你會其他交易,比如 CTA,怎麼都比套利強,資金利用率更高。之前的套狗,能力強的,基本都轉高頻做市、趨勢交易了。
最後
以前真的是好時代,機會太多了。有的時候行情來了,其實用手下單都可以套利。真的大行情下,還能不斷在交易所之間轉幣套,因爲價差一直在。聽說還有人肉搬磚到韓國去套的,不過那段行情我沒有趕上。
我的初版代碼是 JavaScript 寫的。測試代碼主要就幾十行,想着先投入幾天時間和精力,還有幾十刀資金試試看,賺錢就繼續,不然趕緊幹別的去。沒想到第一天測試就開始賺錢。當時幾天就調好了最初的代碼,想着只要第一天賺到雞腿錢就繼續,因爲畢竟只有幾十刀本金,結果一開始就賺到了盒飯加咖啡,然後就一發不可收拾,一路修改代碼,修改模型,打怪升級。
比較遺憾的是,因爲自己套利實在太順滑了,沒有動力去升級其他更賺錢的策略。主要是其他策略都是有回撤的,套利習慣了,實在忍受不了賺到的錢還要虧回去這種情況,心態接受不了,所以一直沒有成功。另外,其他賺錢的策略其實難度更高。反觀那些早早套利不賺錢的套狗,及時轉戰高頻或者 CTA 之類的策略,好多轉型成功,趕上之前的牛市,成功一波暴發。
總之,套利的邏輯很簡單,不需要大聰明,只需要集合很多小聰明,小創意,做得比別人更用心就好,重在執行。但要做好真正的交易,就是有敞口,有持倉,就得理解交易的本質了,策略設計、回測、實盤執行,一個環節都不能落下。
這次就先分享這些。