近日,谷歌人工智能學者Denny Britz發表了一篇文章《Building AI Trading Systems》,對其使用強化學習技術,學習如何構建有利可圖的算法交易系統的經驗進行了總結。
Denny表示,人工智能的優勢顯而易見,但是也不能忽視良好的基礎設施:市場、數據、延遲、模型、執行,必不可少;同時,強化學習比監督學習難度要小些。
原文如下:
人工智能已經相當商品化了,它比優秀的基礎設施工程、數據收集或領域知識的歸納偏差更商品化。現在,你可以輕松下載最先進的模型,并在你的數據上運行它們。除非你處于相關研究的前沿,否則不太可能僅僅通過訓練一個好的模型就獲得顯著優勢。
當人們意識到他們的花哨的人工智能模型是建立在蹩腳的基礎設施上,用蹩腳的數據(同時也被其他人使用)訓練不起作用時,他們就會放棄。
人工智能可以給你一些優勢,但這些優勢沒有好到讓你忽略其他因素。你仍然需要構建良好的基礎設施、獲取良好的數據、適當的延遲等等。
很少有人愿意花時間在這些事情上。每一個因素都是乘數,如果某一個因素為零,那你的AI模型多好都沒有用。
那么,其他的因素是什么呢?
市場——選擇正確的市場進行交易。不要隨大流,選擇每個人都默認選擇的。從法律上和技術上進入市場越難,發現機會的可能性就越大。流動性較弱的市場可能無法被成熟的基金所忽視,因為它們無法適應其資產管理規模。同樣,這對于追求“優質API”的工程師通常是違反直覺的——優質API通常意味著受歡迎,流行通常意味著商品化。
數據——考慮其他人無法訪問或不愿使用的數據源。例如,由于復雜的速率限制和IP禁令,可能存在難以抓取的數據。大多數人會在這里放棄,但這是你的一個機會,要對流行的API和開源軟件持懷疑態度,所有人使用的數據都是一樣的。
延遲——你可能不打算與HFT交易員競爭,但這并不意味著你可以完全忽略延遲。好的延遲能使執行更容易以及更少的滑點。要注意在何處托管系統、如何發送數據、如何序列化數據等等。
模型——一般來說,好的數據比好的模型更重要,但是更好的模型也能給你帶來優勢。注意,你經常在模型復雜性和延遲之間進行權衡。
執行力——如果不能執行,好的模型就沒有多大意義。你收集的歷史數據可能和交易所實際發生的情況看起來很不一樣,直到開始交易,你才會知道實際發生的情況。
強化學習
在上一篇文章發表兩年之后,我還認為強化學習是市場交易的正確方法。然而,我承認,在工作時很多技巧工也是必要的。
強化學習的主要好處是您不需要設置可區分的損失函數。相反,你可以在某個時間范圍內直接優化盈虧。通過建立良好的仿真,模型可以學習到對延遲、抖動、滑點以及實際市場中可能發生的其他情況的魯棒性。
在監督學習中,這就困難多了。你需要獲得許多超參數才能得到“剛剛好”——什么時間范圍優化?要優化什么?如何處理由于延遲、被拒絕的訂單、API問題等引起的隨機情況?如何處理非iid數據等等。
我相信如果你努力的話可以做到,但是依靠基于仿真的方法似乎是更有原則的解決方案。
我也相信市場模擬是一個很好的強化學習算法的測試平臺。它有著今天許多技術都難以克服的特性:
稀疏的積極反饋。在隨機探索和獎勵的情況下,你很難發現發現好的政策。
需要歸納到未來的日期。在RL中,研究者“對訓練集進行測試”時,往往忽略了泛化。
有了一個好的模擬器,環境就可以以延遲、抖動、API問題、滑點等形式提供許多隨機性。
非平穩性。市場數據分布隨時間變化,agent必須學會處理它。
觀察到的低信噪比。
優化迭代速度
由于其他agent會適應你的策略,因此大多數效率低下的問題都會轉瞬即逝,這些問題會根據你交易的地點和方式,可能持續幾毫秒、幾秒、幾分鐘、幾小時、幾天、幾周或幾個月。
持續盈利的方法就是始終善于發現稍縱即逝的機會。這基本上就是元學習。
訓練模型時優化外循環速度,在發現新策略和調整模型和基礎設施方面,迭代的速度越快,效果就越好。圍繞這一點構建基礎設施。
查詢和加載批量歷史數據來處理要盡可能快一點。要特別注意反序列化的成本。在使用匹配引擎構建市場模擬器時,要對其進行廣泛的基準測試。
最小化RPC和網絡往返。我們這里討論的是數量級。我最近的一個模擬器比第一個模擬器快了約50倍。
由于模型是在仿真中訓練的,這意味著在訓練時迭代速度快了50倍。
自動化數據可視化,這樣當您得到意想不到的結果時,就可以很容易地查看它們。
當市場下跌時你無法賺錢
我從不太了解交易的人那里聽到一個常見的論點和誤解——我很幸運,因為市場上漲而獲利。
實際上,好幾個月以來,我的PnL圖表看起來是這樣的:
那么,我是否只是做空資產?不,我沒有做空任何事情,因為在我所交易的市場中不可能做空。市場很少會一直下跌。當人們說市場下跌時,他們說的是一個特定的時間范圍。市場可能在每日或每小時的范圍內上呈下降趨勢。
這并不意味著在更短的時間尺度上只有向下的運動。它可能會有相當大的波動。一旦你開始放大到秒和毫秒,總是會有上升和下降,仍然有可能從中獲利,而無需做空任何東西。
就個人而言,在下降趨勢(按小時或每天的比例)期間,我總是賺得更多。我仍然不知道為什么會這樣。可能是因為市場那邊有更多的流動性,或者是因為當價格開始下跌時,有很多不知情的交易員提交幼稚的指令進入市場。
了解交易
如果向來自不同背景的十幾個交易員提出相同的問題,那你會得到十幾個不同的意見。
請注意,我使用的是“意見”一詞,而不是答案或事實。由于交易是一個秘密領域,因此很少有被廣泛接受的真理。
人們沒有相同的背景知識,他們在不同的地方使用不同的術語。如果你想學習交易,這很難。我不知道有什么在線資源能很好地教授算法交易。
你在網上找到的大多數課程和教程都是大師們寫的——他們通過教學賺錢,但自己從來沒有建立過一個盈利的系統。他們可能會向你推銷他們的SaaS產品。
研究論文也是如此。我訂閱了arXiv的q-fin,但與機器學習等領域相比,其質量比較低。偶爾也會有一些有趣的點子,但絕大多數都是人們為了找工作和把一些東西寫進簡歷而做的實驗——這些想法在現實世界中都站不住腳。
顯然,運行一個盈利系統的人是不會發表與它有關的論文。《交易與交易所:從業者的市場微觀結構》(Trading and Exchanges: Market微觀結構)和《金融機器學習的進步》(Advances in Financial Machine Learning)等書是一個不錯的起點,但我的經驗是,沒有什么比邊做邊學或找導師更好的了。
-
AI
+關注
關注
87文章
31135瀏覽量
269471 -
人工智能
+關注
關注
1792文章
47426瀏覽量
238969 -
智能系統
+關注
關注
2文章
394瀏覽量
72481
發布評論請先 登錄
相關推薦
評論