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