加密貨幣算法交易還是一個(gè)神秘的未知領(lǐng)域。本文是目前唯一一篇用最詳盡分析,將加密貨幣算法交易說透徹的文章。
撰文:Kevin Zhou,加密貨幣算法做市商及 OTC 交易商 Galois Capital 聯(lián)合創(chuàng)始人,曾擔(dān)任 Kraken 交易業(yè)務(wù)負(fù)責(zé)人
在加密貨幣行業(yè)通過算法進(jìn)行交易是個(gè)值得探索的領(lǐng)域。我們重點(diǎn)關(guān)注執(zhí)行算法、做市算法和市場(chǎng)微結(jié)構(gòu)需要考慮的幾個(gè)因素。
我們還研究了實(shí)踐與理論的不同之處,尤其考慮了加密貨幣市場(chǎng)的特有問題該如何處理。
執(zhí)行算法
執(zhí)行算法的目標(biāo),是將投資組合的某種狀態(tài)轉(zhuǎn)換為另一種狀態(tài),同時(shí)最大限度地降低其中的成本。比方說,如果你希望將 BTC/USD 的敞口提高 1000 倍,你大概不會(huì)將這筆交易訂單猛的砸到 BitMEX 的訂單里,因?yàn)檫@會(huì)導(dǎo)致價(jià)格大幅下滑。相反,你可以考慮在一段時(shí)間里通過多個(gè)不同交易所的市價(jià)和限價(jià)訂單的組合,來慢慢地達(dá)到你想要的頭寸。
一個(gè)執(zhí)行算法通常有三層:宏交易員、微交易員和智能路由。
宏交易員這一層將大額元訂單 [元訂單:即大額交易訂單,并分成小塊逐步執(zhí)行] 或父訂單 [父訂單:即一大塊訂單,執(zhí)行交易時(shí),會(huì)將其切分為較小批次(稱為子訂單)] 拆分為跨越一段時(shí)間的較小子訂單。這實(shí)際上是整個(gè)算法的調(diào)度部分。VWAP、TWAP 和 POV是宏交易員算法的常見簡(jiǎn)單例子。
鏈聞注,幾個(gè)算法交易中的常用名詞需要解釋一下:
VWAP:即成交量加權(quán)平均價(jià)格,它是將多筆交易的價(jià)格按各自的成交量加權(quán)而算出的平均價(jià);
TWAP:即時(shí)間加權(quán)平均價(jià)格,它指在特定時(shí)間內(nèi)的平均價(jià)格;
POV:即成交量百分比,這種交易算法用于執(zhí)行大訂單的交易量,而不會(huì)對(duì)市場(chǎng)價(jià)格產(chǎn)生過多的影響。
通常,要設(shè)計(jì)一個(gè)復(fù)雜的宏交易員層,有許多不同的市場(chǎng)影響模型可供使用。市場(chǎng)影響模型,著眼于市場(chǎng)是如何對(duì)一次執(zhí)行發(fā)生反應(yīng)的。一次執(zhí)行后市場(chǎng)是否保持原狀?還是偏離更遠(yuǎn)?或是它能實(shí)現(xiàn)某種程度的恢復(fù)??jī)蓚€(gè)最具開創(chuàng)性的市場(chǎng)模型是 Almgren-Chriss (1999, 2000)永久市場(chǎng)影響模型和 Obizhaeva-Wang (2013)暫時(shí)市場(chǎng)影響模型。因?yàn)樵趯?shí)踐中市場(chǎng)影響并不是永久性的,所以,Obizhaeva-Wang 模型似乎更符合現(xiàn)實(shí)。此模型提出之后,人們構(gòu)建了許多新模型來解決其不足之處。
微交易員層為每個(gè)子訂單做決策,比如到底是通過市價(jià)訂單還是通過限價(jià)訂單來執(zhí)行,如果是限價(jià)訂單,具體應(yīng)該定什么價(jià)格。關(guān)于微交易員的設(shè)計(jì)的文獻(xiàn)要少得多。這是因?yàn)椋佑唵蔚拇笮⊥ǔJ钦麄€(gè)市場(chǎng)的很小一部分,因此如何執(zhí)行并不重要。
然而,加密領(lǐng)域卻非常不同,因?yàn)榱鲃?dòng)性非常薄,在實(shí)踐中即便普通規(guī)模的子訂單,價(jià)格下滑幅度也是相當(dāng)顯著的。微交易員的設(shè)計(jì),通常關(guān)注訂單到達(dá)在時(shí)間和深度上的分布、隊(duì)列位置以及市場(chǎng)微觀結(jié)構(gòu)的其他特征。
市價(jià)訂單(和交叉 [交叉:指當(dāng)經(jīng)紀(jì)人以相同價(jià)格收到同一股票的買賣訂單,然后以該價(jià)格在兩個(gè)獨(dú)立的客戶之間進(jìn)行同時(shí)交易] 限價(jià)單,如果我們忽略延遲)保證會(huì)執(zhí)行,而未決限價(jià)訂單 [未決限價(jià)訂單:即還未成交的限價(jià)訂單(買入限價(jià) 《 最低報(bào)價(jià),賣出限價(jià) 》 最高出價(jià))] 則沒有這樣的保證。如果無法保證執(zhí)行,你可能會(huì)跟不上宏交易員設(shè)置的時(shí)間安排。
智能路由層,則決定在不同的交易所 / 交易地之間如何選擇路徑。例如,在某一給定的價(jià)格水平下,如果 Kraken 擁有 60% 的流動(dòng)性,GDAX (Coinbase Pro/Prime)擁有 40% 的流動(dòng)性,那么,微交易員決定的所有市價(jià)訂單,都應(yīng)該是以 60-40 的比例分配到 Kraken-GDAX。
你也許會(huì)對(duì)此提出不同觀點(diǎn):市場(chǎng)中的套利者和做市商會(huì)將流動(dòng)性從一個(gè)交易所轉(zhuǎn)移到另一個(gè)交易所。所以,如果你在 Kraken 執(zhí)行一半的訂單,然后等待幾秒鐘,流動(dòng)性會(huì)在套利者和統(tǒng)計(jì)套利者的作用下從 GDAX 轉(zhuǎn)移到 Kraken,如此一來,你就可以用類似的價(jià)格完成剩余的訂單。
然而,即使在這種情況下,套利者也會(huì)為了自己的利潤(rùn)而向你收取額外費(fèi)用,并轉(zhuǎn)嫁自己的對(duì)沖費(fèi)用比如 Kraken 的做市費(fèi)。還有一點(diǎn),某些市場(chǎng)參與者會(huì)跨平臺(tái)地發(fā)布超過自己實(shí)際想要規(guī)模的訂單,并且一旦目標(biāo)達(dá)成,就會(huì)搶先取消超額的訂單。
歸根結(jié)底,最好還是擁有屬于自己的原生智能路由。和第三方智能路由服務(wù)相比,原生智能路由還具有縮短延遲的優(yōu)勢(shì)。依靠原生智能路由,你可以直接路由到交易所,而在前一種情況下,你需要先向第三方服務(wù)發(fā)送消息,然后他們才會(huì)將你的訂單路由到交易所(而且你還得向第三方服務(wù)支付路由費(fèi))??傊?,三角形的任意兩邊之和大于第三邊。
做市算法
做市是指為市場(chǎng)中的其他參與者提供即時(shí)流動(dòng)性并獲得補(bǔ)償。你承擔(dān)庫(kù)存風(fēng)險(xiǎn)以換取正向的預(yù)期價(jià)值。最終,做市商因?yàn)閮蓚€(gè)原因獲得補(bǔ)償。
首先,市價(jià)接受方(market taker)有很高的時(shí)間偏好并希望馬上成交。而為流動(dòng)性提供便利的做市商則因他們較低的時(shí)間偏好和耐心而獲得補(bǔ)償。其次,做市商的 PnL (利潤(rùn)和損失)特性是左傾的,通常大多數(shù)人都是右傾偏好的。換句話說,做市商類似于競(jìng)猜市場(chǎng)、賭場(chǎng)、保險(xiǎn)公司和國(guó)營(yíng)彩票的賭注經(jīng)紀(jì)人。他們經(jīng)常小贏,且不常大輸。因?yàn)椴扇×诉@種不受歡迎的回報(bào)策略,做市商獲得了可預(yù)期的價(jià)值的補(bǔ)償。
拔高來說,限價(jià)單其實(shí)是寫給其他市場(chǎng)參與者的免費(fèi)期權(quán)。市場(chǎng)其他參與者有權(quán)利但沒有義務(wù)以限價(jià)單給定的價(jià)格買入或賣出一筆資產(chǎn)。在一個(gè)信息完全的市場(chǎng)中,沒有人會(huì)出售免費(fèi)期權(quán)。只是因?yàn)椋袌?chǎng)的總體并不具有完全信息,所以出售免費(fèi)期權(quán)才有意義。
另一方面,如果市場(chǎng)完全不知曉信息,那么,即便只有極小的價(jià)差,一個(gè)風(fēng)險(xiǎn)中立的做市商也愿意出售這些免費(fèi)限價(jià)單的期權(quán),因?yàn)檫@時(shí)所有交易都是噪音 [噪音:指由程序交易、股息支付或其他不反映整體市場(chǎng)情緒的現(xiàn)象引起的股票市場(chǎng)活動(dòng)]。顯然,真實(shí)市場(chǎng)有各種參與者,每個(gè)參與者都具有各自的知情水平。
在設(shè)計(jì)一個(gè)做市算法時(shí),需要考慮三個(gè)視角:做市商的、市場(chǎng)接受方的和其他做市商的。
做市商自己的視角,以他們的庫(kù)存清單來表達(dá)。如果你已經(jīng)有太多的資產(chǎn)敞口,那么你可能會(huì)往低的方向傾斜 / 偏斜你的報(bào)價(jià)。如果資產(chǎn)敞口太小,你會(huì)有相反傾向。這樣做你有兩個(gè)不同的理由。首先,作為一家公司,你有一定程度的風(fēng)險(xiǎn)厭惡(可能比個(gè)人的少,但你的金錢效用曲線仍然是凹的)。這種效用函數(shù)的形狀有許多結(jié)構(gòu)(例如 CARA、CRRA、更一般的 HARA 等)。其次,作為市場(chǎng)上的被動(dòng)的流動(dòng)性提供者,你將面臨逆向選擇風(fēng)險(xiǎn)。積極的流動(dòng)性接受者可能會(huì)知道你不知道的東西,或者只是比你更聰明。從根本上說,這是向市場(chǎng)出售免費(fèi)期權(quán)的人都要面臨的問題。
此外,即使在機(jī)械層面,擊中你的買價(jià)的市價(jià)單,會(huì)將按市值計(jì)價(jià)(mark-to-market)的價(jià)格降低,而滿足你的賣價(jià)的市價(jià)單則會(huì)將按市值計(jì)價(jià)的價(jià)格抬高。在任何交易的確切時(shí)刻,你總是站在錯(cuò)誤的一邊。除此以外,做市商的報(bào)價(jià)會(huì)產(chǎn)生被動(dòng)的市場(chǎng)影響。換句話說,將一筆訂單提交到訂單簿這一行為本身,就會(huì)有一點(diǎn)點(diǎn)作用把市場(chǎng)推離你。
市價(jià)接受方的觀點(diǎn),則表現(xiàn)在訂單流上。成交量加權(quán)的訂單到達(dá)頻率,作為一種從訂單簿頂部算起的深度函數(shù),應(yīng)該具有幾個(gè)關(guān)鍵屬性。
該函數(shù)應(yīng)該是
1. 遞減;
2. 凸(這里用直覺很難解釋,但經(jīng)驗(yàn)層面上確實(shí)是這種情況);
3. 隨著深度變?yōu)闊o窮,函數(shù)趨近于 0。
某一些公式要求這種強(qiáng)度函數(shù)可以連續(xù)兩次微分,這種易處理性是一個(gè)好且合理的預(yù)設(shè),但最終也是沒有必要的。此外,還有各種各樣的公式來計(jì)算「距離訂單簿頂部的深度或距離」。你通常既可以使用「合理的中間價(jià)」,也可以使用從各個(gè)角度出發(fā)的所謂最佳買價(jià)和最佳賣價(jià)。這兩種方法存在不同的權(quán)衡取舍,我們?cè)谶@里就不討論了。
此外,還有一個(gè)讓人燒腦的問題是,「合理的中間價(jià)」到底是什么。
稍微補(bǔ)充幾句,所謂最佳買價(jià)和最佳賣價(jià)之間等距的中價(jià),很容易受到噪音的影響,當(dāng)垃圾訂單被提交又被取消時(shí)就會(huì)發(fā)生這種情況。此外,如果兩個(gè)案例具有相同的訂單簿形態(tài),那么最新發(fā)布的最佳買價(jià),意味著會(huì)有一個(gè)低于最新發(fā)布的最佳賣價(jià)的合理價(jià)格。還有另一個(gè)問題,即發(fā)布記錄的歷史是否重要,如果重要,那我們到底應(yīng)該從時(shí)鐘時(shí)間還是交易量時(shí)間的角度來觀察它?基于訂單流的特征,做市商的最優(yōu)限價(jià)單的位置到底設(shè)在哪里?如果你挨著訂單簿頂部提交緊密的報(bào)價(jià),那么你會(huì)頻繁成交,但每次都賺得很少。如果你提交深度報(bào)價(jià),你的成交不會(huì)那么頻繁,但每次你都會(huì)賺更多。這實(shí)際上是一個(gè)具有唯一全局最大值的凸面優(yōu)化問題。
另一個(gè)需要考慮的問題,是訂單流的跨時(shí)間到達(dá),看起來有點(diǎn)兒像泊松過程。有人認(rèn)為它更接近霍克斯過程。而且,做市商試圖捕獲的買價(jià)賣價(jià)波動(dòng)(bid-ask bounce),是均值回歸的最短期版本。由于這種超短期的均值回歸是通過局部波動(dòng)來縮放的,因此做市商應(yīng)該在量大時(shí)擴(kuò)大報(bào)價(jià)范圍,而在交易量小時(shí)縮緊報(bào)價(jià)范圍。
其他做市商的視角則由訂單簿代表。訂單簿揭示了其他做市商的一些私密信息。訂單簿頂部附近,如果賣單多于買單,則表明其他做市商更愿意出售而不是購(gòu)買資產(chǎn)。這有兩種可能,一是這些做市商的庫(kù)存中已經(jīng)有巨大的正向不平衡,二是他們認(rèn)為價(jià)格在短期內(nèi)更有可能下降而不是上漲。
不管哪種情況,作為做市商的你,都可以根據(jù)訂單簿的扭曲來調(diào)整報(bào)價(jià)。而且,當(dāng)做市商互相競(jìng)爭(zhēng)時(shí),如果最小報(bào)價(jià)單位 [最小報(bào)價(jià)單位:即兩個(gè)連續(xù)價(jià)格之間的最小差距] 很小,你就會(huì)經(jīng)??吹剿^的「搶價(jià)差交易」(penny jumping) [ 搶價(jià)差交易:一種被嚴(yán)格禁止的交易。指在做市商交易制度下,證券公司、做市商在手中持有客戶交易委托的情況下?lián)屜葹樽约旱馁~戶進(jìn)行交易]行為。
做市商通過互相搶價(jià)或在訂單簿上爬樓梯來爭(zhēng)奪成交優(yōu)先權(quán),直到抵達(dá)投降點(diǎn) [投降點(diǎn):投降意味著放棄,這個(gè)術(shù)語(yǔ)表示投資者決定放棄試圖重新獲得因股價(jià)下跌而導(dǎo)致的損失收益的時(shí)間點(diǎn)],最終獲得成交優(yōu)先權(quán)的勝者只有一位。
在確定勝者之后,亞軍通常會(huì)撤回到比下一個(gè)最佳買價(jià)或賣價(jià)差一個(gè)報(bào)價(jià)單位的位置。如果你沒獲得成交優(yōu)先權(quán),你還可以獲得第二成交優(yōu)先權(quán),并且只需支付剛剛夠的費(fèi)用。這將導(dǎo)致一個(gè)回歸,即冠軍退回到亞軍前面的最近報(bào)價(jià)單位,爬樓梯游戲重新開始。你可以在真實(shí)的加密市場(chǎng)數(shù)據(jù)中看到這種爬樓梯游戲。
最后,長(zhǎng)時(shí)段的方向性的信號(hào)可以覆蓋在做市算法上,這樣的話,做市算法的目標(biāo)就不再是保持訂單庫(kù)存的持平或恒定,而是考慮一些長(zhǎng)期目標(biāo)以及相應(yīng)的偏差來促其實(shí)現(xiàn)。
速度
速度很重要,原因有兩點(diǎn)。首先,你可以在訂單取消之前擊中訂單簿中的訂單。其次,你可以在訂單被擊中之前取消訂單簿中的訂單。換句話說,你想要點(diǎn)射陳舊訂單,也希望自己的訂單別被他人點(diǎn)射。套利算法(主動(dòng))和執(zhí)行算法(主動(dòng))更看重前者,而做市算法(被動(dòng))更看重后者。
通常,從速度獲益最多的策略也是最基本的策略。任何復(fù)雜的邏輯都必然減慢往返的時(shí)間。這些類型的算法策略是交易世界的 F1 賽車。為了速度,數(shù)據(jù)驗(yàn)證、安全檢查、儀表監(jiān)測(cè)、編排等都可以被剝掉。跳過 OMS、EMS 和 PMS (資產(chǎn)組合管理系統(tǒng)),直接將你 GPU 上的計(jì)算邏輯連接到同一地點(diǎn)交易所的二進(jìn)制 API 上。這是一個(gè)快速而危險(xiǎn)的游戲。
另一類速度敏感策略,即相對(duì)統(tǒng)計(jì)套利策略,要求服務(wù)器設(shè)置在多個(gè)交易所之間的物理位置,而不是與某一個(gè)交易所位于同一地點(diǎn)。雖然它們不能最快獲得任何單個(gè)交易所的數(shù)據(jù),但它們將在任何其他策略之前獲得數(shù)據(jù),并可在相關(guān)性和協(xié)整數(shù)據(jù)的基礎(chǔ)上采取行動(dòng)。
在速度游戲中,獲勝者拿走絕大多數(shù)所得。在最簡(jiǎn)單的例子中,如果存在套利機(jī)會(huì),誰(shuí)先獲得套利機(jī)會(huì),誰(shuí)就搶得利潤(rùn)。第二名會(huì)得到面包屑,第三名則一無所有。收益很可能是冪律分布的。
速度游戲也是一場(chǎng)打到底線的競(jìng)爭(zhēng)(race to the bottom)。一旦所有人都從光纖升級(jí)到微波或是激光網(wǎng)絡(luò),每個(gè)人都會(huì)回到同一起跑線,任何此前的優(yōu)勢(shì)都會(huì)被磨平。
最小報(bào)價(jià)單位、填單優(yōu)先權(quán)和隊(duì)列位置
大多數(shù)匹配引擎遵循價(jià)格-時(shí)間的優(yōu)先級(jí)(按比例匹配是一種不太常見的替代方案,但我們先不考慮這些)。價(jià)位更好的限價(jià)單比價(jià)位更差的限價(jià)單成交得早。如果多個(gè)限價(jià)單的價(jià)格相同,那么早提交的訂單將比晚提交的訂單更早成交。
幣安將訂單簿切分至最小 8 位小數(shù)。如果某個(gè)資產(chǎn)代碼的價(jià)格為 .000001,則 .00000001 的報(bào)價(jià)就是這一價(jià)格的 1% 。如果某資產(chǎn)的價(jià)格為 .0001,則 .00000001 的報(bào)價(jià)則是這一價(jià)格的 0.01%,即 1 個(gè)基點(diǎn) (1 bps[ bps (basis points):即 0.01%,用于描述金融工具價(jià)值或利率變化百分比的計(jì)量單位])。兩者差異巨大。在前一種情況下,跑到一個(gè)大訂單前面需要花費(fèi)整整一個(gè)點(diǎn),因此時(shí)間優(yōu)先更重要,而在后一種情況下,資金成本要便宜 100 倍,因此價(jià)格優(yōu)先更重要。
換句話說,如果你必須支付整整 1% 來獲得成交優(yōu)先權(quán),那它可能并不值得,因?yàn)槟阒Ц读讼鄬?duì)來說過高的費(fèi)用,同時(shí)只是相對(duì)較小地增加了成交的可能性。這種情況下,也許排隊(duì)等候更好。但如果你只需要支付 0.01% 就能獲得成交優(yōu)先權(quán),那你最好這樣做,因?yàn)槟阒皇呛馁M(fèi)了一點(diǎn)點(diǎn)成本,卻相對(duì)較大地增加了成交的概率。較小的成交單位,有利于價(jià)格優(yōu)先策略,而較大的成交單位則有利于時(shí)間優(yōu)先策略。
這自然引出了下一個(gè)問題:你的隊(duì)列位置值多少錢?
訂單簿增量
在訂單簿的某一價(jià)格水平,量的消減只有兩種方式:要么是交叉盤交易(trade crossed),要么是未決限價(jià)單被取消。如果是交叉盤交易,那么比此價(jià)格更好的所有其他價(jià)格水平,也會(huì)是交叉盤交易,量也會(huì)降低。我們可以在行情表上把開啟和取消的訂單一筆一筆的排列出來,并將每一個(gè)縮減記為一筆交易或一次取消。直觀地講,一筆交易意味著雙方同意以某一特定價(jià)格進(jìn)行買賣,而一次取消則意味著,某一方?jīng)Q定不再以某特定價(jià)格買賣某資產(chǎn)。因此,從表面上看,我們可以說,如果某一筆最佳買價(jià)的訂單被取消,而不是被成交,那就是一個(gè)強(qiáng)烈的信號(hào),表明市場(chǎng)將在短期內(nèi)向下。
另一方面,在訂單簿的某一價(jià)格水平,只有一種方式可以增加量:即一筆未決限價(jià)單被提交了。
訂單簿中的量增和量減都揭示了市場(chǎng)參與者的私密信息,從而提供了短期的價(jià)格信號(hào)。
更好的價(jià)格指數(shù)和最優(yōu)交易所費(fèi)用
目前,大多數(shù)價(jià)格指數(shù)都是從多個(gè)交易所獲取交易數(shù)據(jù)并將它們匯總在一起以獲得成交量加權(quán)的平均價(jià)格。Tradeblock 指數(shù)尤其特別,它會(huì)對(duì)不活躍和價(jià)格與同儕有偏差的交易所的權(quán)重加以處罰。而我們還能做什么呢?
在 GDAX 上,做市手續(xù)費(fèi)為 0 bps,而市價(jià)接受方手續(xù)費(fèi)為 30 個(gè)基點(diǎn)(即萬(wàn)分之 30),如果一筆公布交易 [發(fā)布價(jià)格:指當(dāng)交易出現(xiàn)在自動(dòng)收?qǐng)?bào)機(jī)上或以其他方式公開記錄時(shí)的價(jià)格] 的價(jià)格為 $4000/BTC、且是賣價(jià)側(cè)被命中,則意味著賣家以 $4000/BTC 的價(jià)格賣出,而買家則以 $4012/BTC 價(jià)格買入。這筆交易的「合理價(jià)格」應(yīng)該接近 $4006/BTC,而不是實(shí)際的發(fā)布價(jià)格。
如果換到 Bittrex 交易所,由于有 25 基點(diǎn)的費(fèi)用同時(shí)適用于做市商和接受方,因此合理價(jià)格就是發(fā)布價(jià)格。換句話說,一筆 $4000/BTC 的發(fā)布成交,實(shí)際上是買家以 $4010/BTC 的價(jià)格購(gòu)買,而賣家以 $3990/BTC 的價(jià)格賣出,兩者平均就得到此單的價(jià)格。
因此,從價(jià)格發(fā)現(xiàn) [價(jià)格發(fā)現(xiàn):指買賣雙方在給定的時(shí)間和地方對(duì)一種商品的質(zhì)量和數(shù)量達(dá)成交易價(jià)格的過程] 的角度來看,各交易所的行情表格不具有直接可比性,所以在構(gòu)建價(jià)格指數(shù)時(shí),應(yīng)該刨去費(fèi)用并標(biāo)準(zhǔn)化。
當(dāng)然,這里還存在另一種復(fù)雜性,來自基于交易量的費(fèi)用階梯,這可能會(huì)增加或減少做市商-接受方費(fèi)用的不對(duì)稱性,因?yàn)橘M(fèi)用是階梯型跳躍的,所以我們無法確定,買家買入以及賣家售出的準(zhǔn)確價(jià)格。這也暗示了兩個(gè)有趣的推論。
首先,價(jià)格發(fā)現(xiàn)是有限的,并且有點(diǎn)精神分裂[精神分裂:此處類比「公平價(jià)格」在這兩極之間迅速震蕩的狀態(tài)],尤其是碰到那些在做市商-接受方費(fèi)用方面極不對(duì)稱的交易所。
假設(shè) GDAX 的大多數(shù)賬戶都處于 0/30 bps 的做市商-接受方費(fèi)用等級(jí),并且我們留意到 GDAX 在其 BTCUSD 的訂單簿上常有 1 分錢的價(jià)差,那么,每一筆在買價(jià)側(cè)發(fā)布的交易,其合理價(jià)格大概會(huì)低于此價(jià)格 15 bps,而每一筆在賣價(jià)側(cè)發(fā)布的交易,其合理價(jià)格大概會(huì)高于此價(jià)格 15 bps。因此,在平靜時(shí)期,「合理價(jià)格」就會(huì)在這兩點(diǎn)之間快速震蕩,兩者之間不會(huì)有顆粒度更細(xì)的價(jià)格發(fā)現(xiàn)。
其次,與生產(chǎn)者和消費(fèi)者之間的稅收關(guān)聯(lián)一樣,做市商和接受方在費(fèi)用分擔(dān)方面也存在類似的關(guān)聯(lián)。
如果你向做市商收取相對(duì)較多的費(fèi)用,他們會(huì)拉大訂單簿的間隙,并將一些費(fèi)用轉(zhuǎn)嫁給接受方。如果你向接受方收取相對(duì)較多的費(fèi)用,那么做市商就會(huì)將訂單簿的間隙壓緊,并吸收掉接受方的一些費(fèi)用。
極端案例是,如果你過度取悅做市商,那么訂單簿的價(jià)差就會(huì)縮小到最小報(bào)價(jià)單位(就像我們經(jīng)常在 GDAX 上看到的那樣),訂單簿也就無法進(jìn)一步縮緊了。再往前一步,任何額外的費(fèi)用都會(huì)以收入損失的形式落到交易所身上。通過這個(gè)極端案例,我們可以看到,費(fèi)用落在哪一方的頭上并不重要,重要的是做市商和接受方費(fèi)用的總和。
最終,就和稅收政策中的拉弗曲線一樣,交易所也面臨收費(fèi)政策的收入優(yōu)化問題。我們可以看到,極端情況與稅收政策的情形相同。如果交易所不收取任何費(fèi)用,他們就不會(huì)有收入。如果交易所收取 100% 的費(fèi)用,就不會(huì)有交易,所以他們也沒有收入。如果增加另一些理論,很明顯,交易所的收入與總費(fèi)用水平的坐標(biāo)圖是一個(gè)具有唯一最大值的凸函數(shù)。
專有數(shù)據(jù)
每個(gè) OTC (場(chǎng)外交易)機(jī)構(gòu)都有其交易對(duì)手地址的半唯一標(biāo)記的圖形數(shù)據(jù),以及這些地址和已知的交易所地址之間的貨幣流。這些被標(biāo)記的數(shù)據(jù)為許多機(jī)器學(xué)習(xí)算法提供了一個(gè)良好的起點(diǎn)。
每個(gè)礦工都有關(guān)于挖幣(工作量證明類型的加密幣)的邊際成本的專有數(shù)據(jù)。如果他們能感知在挖礦效率方面自己在全球礦工界的位置,他們就能獲得一份獨(dú)特的洞察力,明了短期供應(yīng)過度或短缺的態(tài)勢(shì)。
黑箱
每個(gè)人都知道黑箱不好。人們很難,雖然不是不可能,辨別發(fā)生了什么,當(dāng)出現(xiàn)某些故障時(shí),極難診斷原因所在。
然而,許多最好的對(duì)沖基金和自營(yíng)交易公司最終還是會(huì)制造出黑箱。有幾個(gè)很好的理由可以解釋這一點(diǎn)。
首先,公司中人來人往,那些文檔記錄不佳的遺留代碼,新手接手后很難理解。其次,市場(chǎng)競(jìng)爭(zhēng)意味著,任何某一個(gè)人就能完全理解的戰(zhàn)略最終都會(huì)輸給那些由專家和行家在其狹小領(lǐng)域中合作制定的戰(zhàn)略。最后一點(diǎn),合并的策略通常比單獨(dú)運(yùn)行的策略更好。例如,假設(shè)你有一個(gè)長(zhǎng)期動(dòng)量策略(S1)以及一個(gè)短期均值回歸策略(S2)。當(dāng)然,S1 可以從 S2 的短期執(zhí)行優(yōu)勢(shì)中受益,S2 顯然也可以受益于 S1 的長(zhǎng)期趨勢(shì)預(yù)測(cè)。所以很自然地,我們會(huì)把它們組合成一種合并策略,該策略比任何一個(gè)組成部分都更有效。最終,這個(gè)策略變成了黑箱,不是因?yàn)槲覀兿胍谙?,而是不用考慮黑箱不受歡迎這種事。
解開混淆因素
假設(shè)我們有一個(gè)模型,它用地面是否潮濕的二元指標(biāo)來預(yù)測(cè)優(yōu)步的出行率,而且這一模型運(yùn)行效果非常好。顯然,地面潮濕和優(yōu)步打車無直接聯(lián)系,但間接地,下雨會(huì)使地面潮濕,下雨也會(huì)讓人們想要更多地使用優(yōu)步。即便我們的偽模型表現(xiàn)良好,它也容易受到尾部風(fēng)險(xiǎn)的影響。如果有條水管在城市的某地爆裂導(dǎo)致地面潮濕,或是發(fā)生自然洪水,我們都會(huì)做出錯(cuò)誤預(yù)測(cè),認(rèn)為優(yōu)步在此地的乘車率會(huì)提高。
一般來說,當(dāng) A 意味著 B (A =》 B)而且 A 意味著 C (A =》 C)時(shí),B =》 C 這個(gè)模型可能有效,但只是偶然情況。因此必須認(rèn)識(shí)到,預(yù)測(cè)關(guān)系應(yīng)符合直覺和常識(shí)。盲目挖掘數(shù)據(jù)并發(fā)現(xiàn)強(qiáng)預(yù)測(cè)信號(hào),這是不夠的。我們應(yīng)該在信號(hào)匯成一個(gè)黑箱之前把其中的混淆因素剝離,因?yàn)橐坏┬纬珊谙?,這些因素將越來越難以解開。
舉另外一個(gè)例子,假設(shè) A =》 B 且 B =》 C。那么,A =》 C 這個(gè)模型將起作用,但級(jí)別低于 B =》 C 這個(gè)模型。首先,A =》 C 可能會(huì)讓你利益受損,因?yàn)?A 可能不是導(dǎo)致(在格蘭杰因果關(guān)系上) B 的唯一因素;也許 A‘ 也會(huì)導(dǎo)致 B。其次,如果 A =》 B 的關(guān)系不成立了,那么 A =》 C 模型也會(huì)崩潰,但 B =》 C 模型仍然有效。
特征選擇
讓我們轉(zhuǎn)向多因素模型,理想情況下各特征應(yīng)盡可能統(tǒng)計(jì)上不相干。舉個(gè)例子,假設(shè)我們正在研究冰淇淋價(jià)格,將它設(shè)計(jì)為糖價(jià)和牛奶價(jià)格的一個(gè)函數(shù)。也許,更好的模型是使用糖價(jià)和季節(jié)(春季、夏季、秋季、冬季)。前一個(gè)模型里,各特征和通脹相關(guān)連,都是既屬于「食品原料/投入」又屬于「消費(fèi)品」,而且都來自冰淇淋生產(chǎn)的供給側(cè),而后一個(gè)模型則不同,兩個(gè)特征具備統(tǒng)計(jì)不相關(guān)性(一個(gè)來自供給側(cè),另一個(gè)來自需求側(cè))。當(dāng)然,如果使用糖價(jià)、牛奶價(jià)格和季節(jié)這 3 個(gè)特征,可以產(chǎn)生一個(gè)更準(zhǔn)確的模型。不過,隨著模型維度的增加,調(diào)校時(shí)間如果不是指數(shù)級(jí)增長(zhǎng),至少也會(huì)超線性延長(zhǎng)。當(dāng)你有 20 個(gè)特征時(shí),運(yùn)行某些優(yōu)化方法(如梯度下降)會(huì)變得非常棘手,因此特征選擇是關(guān)鍵。我們應(yīng)該放棄相互關(guān)連的特征,而選擇那些更具統(tǒng)計(jì)不相干性的特征。
認(rèn)識(shí)論
在設(shè)計(jì)量化模型時(shí),實(shí)證主義和演繹推理都很有價(jià)值。
純實(shí)證方法的一個(gè)缺陷是,我們無法在市場(chǎng)中進(jìn)行受控實(shí)驗(yàn)。我們無法在某一時(shí)間點(diǎn)同時(shí)嘗試兩種不同的操作來查看哪個(gè)表現(xiàn)更好。換句話說,與硬科學(xué)不同,軟/社會(huì)科學(xué)中沒有真正的反事實(shí)。尤其在交易中,我們無法精確衡量我們自己的行為對(duì)市場(chǎng)的影響。換句話說,在歷史的時(shí)間流中,當(dāng)我們沒有交易時(shí),我們無法知道,如果我們做了交易,訂單簿和訂單流會(huì)如何變動(dòng);在歷史的時(shí)間流里,當(dāng)我們作了交易時(shí),我們也無法知道,如果我們不做交易,訂單簿和訂單流會(huì)如何變化。
實(shí)證主義的另一個(gè)缺陷是,對(duì)于任何給定的歷史模式,存在無限多的模型,每個(gè)模型將符合這一歷史模式,但每個(gè)模型可以對(duì)未來做出一個(gè)完全不同的預(yù)測(cè)(比如黑天鵝問題的一個(gè)版本)。休謨、維特根斯坦、克里普克、奎因、波普爾和塔勒布都有許多關(guān)于邏輯實(shí)證主義和歸納問題的批判和辯護(hù),以及對(duì)這些觀點(diǎn)的進(jìn)一步闡述。
純演繹推理的一個(gè)問題是,作為人類的我們?nèi)菀壮鲥e(cuò)。推理鏈條上的任何一個(gè)邏輯錯(cuò)誤都會(huì)立即使結(jié)果無效。此外,結(jié)論的可靠性不僅要求沿途的每個(gè)邏輯步驟都是有效的,而且也要求我們假設(shè)的前提本身也是真的并符合現(xiàn)實(shí)。由于模型必須易于使用,因此它們通常是對(duì)世界的簡(jiǎn)化,并且其做出的預(yù)設(shè)不能和現(xiàn)實(shí)相違背。
我們來看一個(gè)例子。假設(shè)你希望針對(duì)一項(xiàng)資產(chǎn)的價(jià)格軌跡運(yùn)行一次蒙特卡羅模擬。如果你獲得了該資產(chǎn)回報(bào)的歷史數(shù)據(jù)并從中直接取樣來模擬路徑,那么你會(huì)遇到以下問題:
1. 在表示極端事件的尾部情形中,數(shù)據(jù)很稀疏;
2. 你在數(shù)據(jù)中發(fā)現(xiàn)一些噪音、遠(yuǎn)離某些未知的真實(shí)回報(bào)的概率分布。現(xiàn)在,假設(shè)你將歷史數(shù)據(jù)擬合到正態(tài)分布,然后從中為你的模擬路徑采樣。現(xiàn)在你遇到了一個(gè)問題,即事實(shí)上回報(bào)并不是正態(tài)分布的(如尖峰的、肥尾的)?;蛘吒纱鄵Q一條路,你把歷史回報(bào)擬合到柯西分布或列維分布,更常見地是擬合到列維阿爾法穩(wěn)定分布。到這一點(diǎn)時(shí),模型變得越來越復(fù)雜,而你又不小心在代碼中寫了一個(gè) bug。經(jīng)過幾天的辛勞,你找出問題并解決了它。代碼被推向生產(chǎn),你擁有了一個(gè)工作模型……花了兩年時(shí)間。2 年后,事實(shí)證明第 5 矩(moments,是對(duì)變量分布和形態(tài)特點(diǎn)的一組度量)才是關(guān)鍵,而你的列維阿爾法穩(wěn)定分布并沒有捕捉到現(xiàn)實(shí)的這一特征。基本上你參與的游戲就是這么一個(gè)過程。
最后,我通常使用兩種啟發(fā)式方法:1)當(dāng)有疑問時(shí),默認(rèn)使用常識(shí)。2)如果其他方面都相同,簡(jiǎn)單和節(jié)制優(yōu)于復(fù)雜和臃腫。
真實(shí)世界的摩擦
擁有一個(gè)理論上有利可圖的算法是一回事,但處理現(xiàn)實(shí)的摩擦是另一回事。
假設(shè)你向交易所發(fā)送一個(gè)請(qǐng)求來發(fā)布訂單,通常你會(huì)收到一個(gè)回復(fù),確認(rèn)訂單已發(fā)布,或是發(fā)生錯(cuò)誤,訂單未被發(fā)布。假如有一天,你的發(fā)布請(qǐng)求沒有收到任何回復(fù)。你會(huì)認(rèn)為這個(gè)薛定諤訂單是發(fā)布了還是失敗了?你容易犯兩種錯(cuò)誤:類型 1 (假正 [假正:指測(cè)試結(jié)果呈正的反應(yīng),但是事實(shí)上卻是負(fù)]),類型 2 (假負(fù) [假負(fù):指測(cè)試結(jié)果呈負(fù)的反應(yīng),但是事實(shí)上卻是正]),都是把訂單做了錯(cuò)誤分類。一種錯(cuò)誤類型會(huì)比另一種錯(cuò)誤的損失更低嗎?
假設(shè)你在兩個(gè)不同的交易所之間運(yùn)行套利策略。如果在兩個(gè)交易所之間做一對(duì)交易時(shí),其中一家的 API 出問題了,你會(huì)怎么做?其中一家的交易可能已通過,而另一家的交易可能已失敗。現(xiàn)在你有了不想要的持倉(cāng)敞口。處理這個(gè)問題的最佳方法是什么?
當(dāng)交易所被 DDoS 攻擊或匹配引擎在負(fù)載下受壓時(shí),你如何處理發(fā)布延遲和取消延遲?
當(dāng)交易所對(duì)其 API 進(jìn)行未證實(shí)、未公布的更改時(shí),你該怎么辦?
假設(shè)交易所確實(shí)對(duì)其客戶的余額進(jìn)行更新,而其執(zhí)行交易的匹配引擎也在并行工作,這樣的話,在同一毫秒或微秒為交易成功而查詢出的余額,可能和向客戶報(bào)告的余額相沖突態(tài),看起來就像一筆交易執(zhí)行了,但余額還沒有發(fā)生改變。你該如何設(shè)計(jì)自己的系統(tǒng),來與這個(gè)持續(xù)變化的世界狀態(tài)同步,而不顧交易所報(bào)告的狀態(tài)和你自己的發(fā)生沖突呢?
假設(shè)交易所的費(fèi)用太高,你無法以模型推論的最優(yōu)價(jià)格下達(dá)限價(jià)訂單。或者更糟,你的某些競(jìng)爭(zhēng)對(duì)手與交易所在費(fèi)用方面進(jìn)行了私下交易 [ 私下交易(sweetheart deal):指雙方以非正式或非法方式私下達(dá)成的安排或協(xié)議。]。這會(huì)如何改變你的行為?
如果你的銀行周末不上班而加密交易是 24/7 運(yùn)行,你如何處理法幣的再平衡 [ 再平衡:指重新調(diào)整資產(chǎn)組合權(quán)重的過程。]?
可以說,同一筆資產(chǎn)在不同交易所并不能完全等值可互換。首先,每個(gè)交易所的交易對(duì)手風(fēng)險(xiǎn)都不同,這意味著這筆資產(chǎn)應(yīng)該刨掉不同的負(fù)利率。其次,由于大多數(shù)交易所都有存 / 取限制,因此當(dāng)達(dá)到限額,就意味著在一段時(shí)間內(nèi)你無法在交易所之間物理地重新平衡資產(chǎn)。
在你的會(huì)計(jì)系統(tǒng)中,你如何處理分叉、空投、粉塵攻擊以及其他你無法控制和避免的情況?
以下是我們通常遵循的一些啟發(fā)式方法:
· 任何可能出錯(cuò)的東西,一定會(huì)出錯(cuò),甚至是你目前無法想到的東西,所以要把事情構(gòu)建得失敗時(shí)也失敗得優(yōu)雅。
· 你和你所連接的所有第三方(如交易所)都會(huì)犯錯(cuò)。
· 與面向消費(fèi)者的技術(shù)不同,不要打碎事物后再快速迭代;如果你損失太多錢,你將沒有第二次機(jī)會(huì)。
· 盡可能到處創(chuàng)建系統(tǒng)和做數(shù)據(jù)備份,并在操作流程中創(chuàng)建冗余以防人為錯(cuò)誤
· 不要使用浮點(diǎn)類型,因?yàn)榕龅絻r(jià)格非常低的資產(chǎn)類別(如 KINBTC)時(shí),精度損失可能非常嚴(yán)重。
· 從 API 速率限制中保留足夠的 API 調(diào)用,以準(zhǔn)備突然取消所有未結(jié)訂單。
最后的想法
交易是世界上唯一的直接目標(biāo)是將資本轉(zhuǎn)化為更多資本的工作之一。再加上加密業(yè)狂野西部的性質(zhì),你得到一個(gè)快速致富的污水池。每個(gè)人都想要簡(jiǎn)單的答案,但沒有人想學(xué)習(xí)手藝。人們希望電視里的達(dá)人告訴他們價(jià)格目標(biāo)、何時(shí)購(gòu)買以及何時(shí)售出。他們希望以 99.99 美元的價(jià)格購(gòu)買在線交易課程,或者以每月 19.99 美元的價(jià)格購(gòu)買基于 TA 的算法策略。但實(shí)際上沒有人會(huì)賣給你一個(gè)能印錢的魔盒;他們會(huì)為自己保留它。沒有什么關(guān)于盈利和損失的神奇公式。市場(chǎng)不斷發(fā)展,游戲隨著時(shí)間的推移變得越來越難。
保持領(lǐng)先優(yōu)勢(shì)的唯一方法是聘請(qǐng)最優(yōu)秀的人才,他們可以適應(yīng)生態(tài)并不斷超越自我。
市場(chǎng)是一個(gè)巨大的撲克牌桌,數(shù)百萬(wàn)玩家坐下來,每個(gè)人都相信他/她可以超越他/她的鄰居。坐在這張桌子旁的人,其實(shí)已經(jīng)是一種自我選擇。獲勝意味著你要比牌桌上一半多一點(diǎn)的資本玩得好,這反過來意味著,你需要比 90%的玩家更優(yōu)秀,因?yàn)橘Y本以冪律的方式匯總到贏家手里。
在文化上,交易游戲與風(fēng)險(xiǎn)投資不同。在硅谷,成為彼得·泰爾所謂的明確的樂觀主義者是值得的。你需要相信新技術(shù)將改變世界,你能夠并且將會(huì)制定實(shí)現(xiàn)這一目標(biāo)的方法。
在遍布自營(yíng)交易公司的芝加哥,文化差異很大。在芝加哥,成為一個(gè)有極高對(duì)抗性思維的人是值得的。每個(gè)人都像你一樣如此渴望成為贏家,而且每次你進(jìn)行交易時(shí),你的腦海中都會(huì)出現(xiàn)那個(gè)嘮叨的想法:也許對(duì)面的人知道你不知道的事情。
在面對(duì)市場(chǎng)中的任何真正競(jìng)爭(zhēng)之前,硅谷的創(chuàng)業(yè)公司必須首先與世界的冷漠作斗爭(zhēng)。而交易類公司則不同,盡管沒有需要打交道的顧客,他們從一開始就無法避免競(jìng)爭(zhēng)。最強(qiáng)的交易公司,把自己包裹在秘密之中。
加密貨幣交易是這兩個(gè)世界的交匯點(diǎn),在這個(gè)新生的領(lǐng)域目前還沒有明確的贏家。我們 Galois Capital 渴望實(shí)現(xiàn)這一目標(biāo)。
評(píng)論
查看更多