如何在演算法交易中使用AI?摩根大通釋出新版指南
JPM(摩根大通) 一直是銀行金融行業中積極應用大資料和人工智慧技術的典範和先行者。今年五月,他們在 NIPS 上提交了一份題目為 Idiosyncrasies and challenges of data driven learning in electronic trading 的報告(其實是一篇小論文)。不過直至最近,內容才得以對外公佈。這篇並不長的文章中,他們探討了演算法交易中機器學習等技術的應用情況,也分享了摩根大通的最新經驗。
如果你對銀行與金融領域的 AI 應用有興趣的話,你肯定了解 JPM(摩根大通)最近十年對大資料和人工智慧的出色運用,也會對他們最新發布的一份報告感興趣。在這份報告中,他們探討了如何將「資料驅動下的機器學習」應用於演算法交易。
去年那份巨長的報告出自 Marko Kolanovic 之手,素有「半人半神」之稱的 Marko Kolanovic 是 JPM 巨集觀量化研究團隊負責人。另外一位合作者是去年四月剛從美林銀行離職的量化策略師 Rajesh Krishnamachari。
不過,這篇報告並沒那麼長,共由五位 JPM 員工共同完成。他們分別是 Vacslav Glukhov(EMEA 電子交易量化研究中心負責人)、Vangelis Bacoyannis(電子交易定量研究中心副總裁)、Tom Jin(量化分析師)、Jonathan Kochems(量化研究員)及 Doo Re Song(量化研究員)。
2018 年 5 月,我們就在神經資訊處理系統大會(NIPS conference)上提交過這份報告,不過直到最近才得以公開。想知道如何將「資料驅動的機器學習」用於演算法交易的朋友們請注意了,報告概要如下:
如今演算法控制關鍵交易決策,客戶設定部分引數
演算法在金融業務中控制「微觀層」的交易,如股票和電子期貨合約:「演算法決定交易的波段、價格及數量。」然而,演算法並不會完全按照人們的預期工作。JPM 提醒客戶,「演算法通常只是把具體約束及偏好下的交易指令告訴經紀人。」
例如,客戶可能想在投資組合時保持貨幣中立,以實現買賣數量大體相等。客戶也可能會指定某組交易證券的主題、國家或行業。
客戶下單交易時,他們也許想控制交易執行對市場價格影響的方式(操控市場影響)、或控制市場波動影響交易的方式(控制風險)、或指定一個能夠平衡市場影響與風險的緊急程度。
交易委託賬本包含的資料十分複雜
編寫電子交易演算法是一件讓人抓狂且十分複雜的任務。
舉個例子。JPM 分析師指出,一局國際象棋每人大約要走 40 步,一局圍棋大約走 200 步。然而,即便是中等交易頻率的電子交易演算法(每秒都需要重新考慮交易選擇)每小時大約要完成 3600 次交易選擇。
問題遠不止於此。當繪製國際象棋與圍棋資料時,如何在所有可選項中選擇走哪一步、下一步又該如何應對,這都是需要解決的問題。然而,一次電子交易行為包括了許多步驟。JPM 分析師認為「這就是一個子訂單(child order)集合。」
什麼是子訂單(child order)?JPM 解釋道,係指可能會「提交被動買入訂單和主動買入訂單」的單次(single)交易。被動子訂單是交易委託賬本中指定價位水平的交易,因此,能為其它市場參與者提供流動性。提供流動性可能最終通過抓住區域性上漲趨勢,在交易時獲得回報:更好的交易價格,或者更好的交易物件。另一方面,主動子訂單會被用來基於預期的價格變動,捕捉交易良機。上述兩種情況都會產生單次(single)交易行為。最終,交易行為範圍被無限擴大,根據瞬時交易特徵的組合數量呈指數增長。
誠然如是。
人工編寫的交易演算法容易變得龐大而笨拙
人工編寫電子交易演算法時,情況會迅速變得複雜。
過去,JPM 分析師認為:電子交易演算法融合了許多科學的量化模型;量化模型是「從定量角度描述世界的執行機制」;演算法包含著「代表交易員和演算法使用者的實踐經驗、觀察結論和風險偏好的規則和啟發式方法。」
想把演算法的方方面面都說清楚是十分困難的。「多數人編寫的演算法程式碼冗長至極且難於維護及修改。」JPM 認為,每當客戶目標及市場條件變化時,人工演算法都深感「功能拓展」之難。
隨著時間的推移,演算法將學會「積累多層邏輯、引數及微調,以處理特殊情況。」
監管讓人工編寫的演算法再次變得更加複雜
此外,交易演算法還必須應對諸如 MiFID II(新版歐盟金融工具市場指導)的監管及「最優執行」的理念。因此,演算法編寫必須考慮「變化發展的市場條件與結構、監管約束及客戶的多重目標與不同偏好。」
如果演算法編寫實現自動化且滿足各類約束,一切都將變得簡單。
編寫交易演算法時,使用資料的三種文化手段 (cultural approaches)
機器學習文化嘗試運用更多複雜且有時晦澀的函式表達觀測結果,不要求函式能揭示潛在流程的本質。
演算法決策文化更關注於決策,而非建模。演算法決策文化嘗試訓練電子代理(譬如演算法)以區分決策好壞,而不是試圖映射出世界執行機制。如此一來,理解演算法為何做出決策,及如何利用規則、價值及約束確保決策可被接受就成為新的問題。
演算法必須實現最優執行率與最優執行計劃之間的平衡
演算法一旦寫完,首先需要解決平衡問題:快速交易,其風險是影響市場價格;慢速交易,其風險是成交價格變化或將引起交易損失(升了,買家賺錢;跌了,賣家賺錢)。
是什麼構成了成功交易?並非總是清晰可見
演算法交易成功與否很難界定,因為這與如何權衡快速交易(效率)與固定價格交易(最優)有關──而這又取決於客戶如何設定他的優先等級。
例如,演算法的目標可能是與市場其他部分融合(blend with the rest of the market)。這意味著,需要平衡極速交易與價格變動引起的市場影響、或是通過慢速交易確保價格與交易反向。演算法編寫人員需要尋找一種表達資訊和行為的方式,該方式能與模型與機器學習方法相匹配。儘管「市場龐大、多變,規模和訂單狀態經常變化,父訂單與子訂單數還不夠作為模型輸入。」,市場狀態都需要能被總結和概括出來。
不過,這也無助於抓住瞬即逝的絕佳機會。而且,JPM 認為,演算法交易執行或取消後,就無法判斷交易的好壞,但這一點並非總是那麼顯而易見。「區域性最優並不需要轉變成全域性最優。現在失敗的交易也許以後某天又會賺的盆滿缽滿。」
即便可能出現問題,JPM 已經開始使用強化學習演算法處理交易
JPM 正急於掌握運用動態規劃及獎懲機制的各種強化學習演算法。
JPM 交易員說,「我們目前使用第二代基於強化演算法的限價委託引擎,於有界行為空間內訓練演算法,選擇具備差異化獎勵、步長及時程特徵的短期目標。」然而,訓練演算法十分複雜──如果你嘗試通過在多重處理裝置上同時執行演算法以實現演算法的平行訓練,會得到錯誤結果。原因是演算法與環境之間的閉環反饋。但如果你不這麼做,而嘗試基於梯度的演算法訓練,最終會得到大量無關經驗,無法記住好的交易行為。
JPM 嘗試應用超引數優化技術避免此問題。這代表每次訓練都有多個抽樣事件,並會盡早停止無意義的優化路徑。銀行應用超引數優化技術,通過執行平行訓練專案訓練演算法。
JPM 表示,研究的主要目標已轉變為「策略學習演算法」,通過在固定引數條件下匹配特定商業目標以最大化累積報酬。分層強化學習可用於要求必須「生成可預測、可控制及可解釋行為」的交易演算法。在分層方法中,根據抽樣頻率和粒度水平將演算法決策劃分為不同組別,使得演算法能夠模組化,其求解效果也容易甄別。
JPM 已開發具備「某種特徵」的強化學習演算法,以應對長尾效應
在多數強化學習情況中,JPM 強調演算法學習行為通常會產生更好的結果。然而,在金融業,過度關注平均結果是錯誤的──想想長尾效應。基於此原因,銀行的量化專家始終基於多維度與不確定結果評價構建演算法。
為實現該目標,銀行會基於期望效用的未來分佈對比結果,對不確定結果(長尾)排序──即 CERL(確定等值強化學習)。
通過 CERL,JPM 注意到演算法能夠有效獲得基於風險偏好的特性。「如果客戶是風險厭惡,結果的不確定增加會降低行為的確定等值獎勵。」演算法很自然的需要折扣因素 γ──代表結果分佈,分佈範圍與風險正相關。演算法將更加關注遠期目標。
還有許多非常有用的開源強化學習框架
如果你也想構建自己的交易演算法,JPM 研究人員推薦了許多學習網站。他們給出了許多有益的早期開源強化學習框架,包括 OpenAI baselines、 dopamine、deepmind/trfl 及 Ray RLlib。
原文連結:
ofollow,noindex" target="_blank">https://news.efinancialcareers.com/nl-en/329751/jpmorgans-new-guide-to-machine-learning-in-algorithmic-trading
長按小程式 識別二維碼 ,檢視 報告全文 。