【量化干貨】如何運用AI搭建算法交易程序
算法交易是使用計算機算法自動做出交易決策,提交訂單並在提交後管理這些訂單。使用簡單的概念體系結構最好地理解算法交易系統,該體系結構由處理算法交易系統不同方面的三個組件組成,即數據處理程序,策略處理程序和交易執行處理程序。這些組件與上述算法交易定義一一對應。在本文中,我們將擴展該體系結構,以描述如何構建更智能的算法交易系統。
概念算法交易系統
系統變得更智能意味著什麼?在算法交易的背景下,我們將通過系統既具有自適應能力又具有自我意識的程度來衡量智能。但是在開始之前,我們先詳細介紹算法交易系統的概念架構中的三個組件。
數據要素
算法交易系統可以使用結構化數據和/或非結構化數據。如果數據是按照某種預定的結構組織的,則數據是結構化的。示例包括電子表格,CSV文件,JSON文件,XML,數據庫和數據結構。市場相關數據(例如日間價格,日末價格和交易量)通常以結構化格式提供。經濟和公司財務數據也以結構化格式提供。 Quandl和Morningstar是結構化財務數據的兩個很好的來源。
如果數據不是根據任何預定的結構來組織的,則數據是非結構化的。示例包括新聞,社交媒體,視頻和音頻。這種類型的數據從本質上來說處理起來更為複雜,並且通常需要數據分析和數據挖掘技術來對其進行分析。來自諸如Twitter和Facebook之類的社交網絡的新聞和數據在交易中的主流使用已經產生了更強大的工具,這些工具能夠理解非結構化數據。其中許多工具都利用了人工智能,尤其是神經網絡。
AI量化模型的組成要素
模型是算法交易系統所看到的外部世界的表示。金融模型通常代表算法交易系統如何相信市場運作。任何模型的最終目標都是使用它來推斷世界,或者在這種情況下就是市場。這裡要記住的最重要的一點是George E.P Box的話:“所有模型本質上都是錯誤的,但有些模型是有用的”。
可以使用多種不同的方法和技術來構建模型,但是從根本上講,它們基本上都是在做一件事:將復雜的系統簡化為可描述的,可量化的規則集,以描述該系統在不同情況下的行為。一些方法包括但不限於數學模型,符號和模糊邏輯系統,決策樹,歸納規則集和神經網絡。
提出數學模型
用數學模型描述市場行為被稱為量化金融。大多數量化金融模型都基於以下固有假設,即市場價格(和回報)根據隨機過程隨時間變化,換句話說,市場是隨機的。這是一個非常有用的假設,它是幾乎所有衍生產品定價模型和某些其他證券估值模型的核心。
本質上,大多數定量模型都認為,任何給定證券的收益都是由一個或多個隨機市場風險因素驅動的。收益受這些風險因素影響的程度稱為敏感性。例如,一個多樣化的投資組合的回報可能受到短期利率,各種外匯匯率以及整個股票市場回報的變動的驅動。這些因素可以進行歷史測量,並用於校準一個模型,該模型可以模擬這些風險因素的作用,並由此擴展投資組合的收益。有關更多信息,請參閱《華爾街隨機漫步》。
蒙特卡洛模擬基礎資產的價格路徑
符號和模糊邏輯模型
符號邏輯是推理的一種形式,本質上涉及對謂詞(由AND,OR和XOR等邏輯運算符構造的邏輯語句)的評估為真或假。模糊邏輯放寬了對正確或錯誤的二進制約束,並允許任何給定謂詞在不同程度上屬於正確或錯誤謂詞集合。這是根據集合成員函數定義的。
在金融市場的背景下,這些系統的輸入可能包括指標,這些指標有望與任何給定證券的收益相關聯。這些指標可能是定量的,技術的,基本的或其他性質的。例如,模糊邏輯系統可能會根據歷史數據推斷出,如果五天指數加權移動平均值大於或等於十天指數加權移動平均值,那麼股票價格上漲的可能性就為百分之六十五。在接下來的五天內。
從給定的數據集中識別這些規則的數據挖掘方法稱為規則歸納。這與決策樹的歸納非常相似,除了結果通常更易於閱讀。
決策樹模型
決策樹類似於歸納規則,除了規則是(通常是二進制)樹形式的結構。在計算機科學中,二叉樹是一種樹數據結構,其中每個節點最多具有兩個子代,分別稱為左子代和右子代。在這種情況下,每個節點代表一個決策規則(或決策邊界),每個子節點要么是另一個決策邊界,要么是指示輸出的終端節點。
決策樹有兩種類型:分類樹和回歸樹。分類樹在其輸出中包含類(例如,購買,持有或出售),而回歸樹包含特定變量的結果值(例如-2.5%,0%,+ 2.5%等)。用於訓練決策樹的數據的性質將確定生成哪種類型的決策樹。用於產生決策樹的算法包括C4.5和遺傳編程。
如同規則歸納法一樣,決策樹模型的輸入可能包括一組給定的基本,技術或統計因素的數量,這些數量被認為會推動證券收益。
神經網絡模型
神經網絡幾乎可以肯定是算法交易者可以使用的最流行的機器學習模型。神經網絡由輸入和輸出之間的互連節點層組成。各個節點稱為感知器,類似於多元線性回歸,不同之處在於它們會饋入稱為激活函數的東西,該函數可能是非線性的,也可能不是非線性的。
在非遞歸神經網絡中,感知器排列成層,並且層之間相互連接。共有三種類型的層,即輸入層,隱藏層和輸出層。輸入層將接收歸一化的輸入,這將是推動證券收益的預期因素,而輸出層則可能包含買入,持有,賣出分類或實際價值的可能結果,例如合併收益。隱藏層實質上會調整這些輸入的權重,直到將神經網絡的誤差(其在回測中的執行方式)最小化為止。對此的一種解釋是,隱藏層提取了數據中的顯著特徵,這些顯著特徵相對於輸出具有預測能力。
組建多層感知器
除了這些模型外,還有許多其他決策模型可用於算法交易(以及一般而言的市場)中,以進行有關證券價格方向的預測,或者對於定量讀者而言,可進行有關證券價格方向的預測。證券價格任何給定變動的可能性。
模型的選擇直接影響算法交易系統的性能。已經證明使用多個模型(集合)可以提高預測精度,但是會增加實現的複雜性。該模型是算法交易系統的大腦。為了使算法交易系統更加智能,系統應存儲有關歷史上所有錯誤的數據,並應根據這些變化調整其內部模型。從某種意義上說,這將構成自我意識(錯誤)和自我適應能力(連續模型校準)。也就是說,這當然不是終結者!
執行組件
執行組件負責處理模型識別的交易。該組件需要滿足算法交易系統的功能和非功能要求。例如,執行速度,進行交易的頻率,舉行交易的時間以及將交易訂單發送到交易所的方法需要足夠。算法交易系統的任何實現都應該能夠滿足那些要求。在本文中,我提出了一種算法交易系統的開放體系結構,我相信它可以滿足許多要求。
監控組件
人工智能使用目標函數進行學習。目標函數通常是數學函數,可量化算法交易系統的性能。在金融方面,風險調整後收益的度量包括Treynor比率,Sharpe比率和Sortino比率。算法交易系統中的模型組件將被“詢問”以最大化這些數量中的一個或多個。挑戰在於市場是動態的。換句話說,之前運行的模型,邏輯或神經網絡可能會隨著時間的推移而停止運行。為了解決這個問題,算法交易系統應使用有關模型本身的信息來訓練模型。這種自我意識使模型能夠適應不斷變化的環境。我認為這種自我適應是應對市場製度變化的連續模型校準的一種形式。
結論
在過去的十年中,算法交易變得非常流行。現在,它佔全球通過交易所進行的交易的大部分,並且歸因於一些世界上表現最佳的對沖基金的成功,其中最引人注目的是Renaissance Technologies。話雖如此,關於什麼是算法交易及其如何影響現實世界中的人們,仍然存在很多困惑和誤解。在某種程度上,人工智能也可以這樣說。
對這些主題的研究常常只專注於性能,而我們卻忘記了,研究人員和從業人員建立更強大,更嚴格的概念和理論模型同等重要,我們可以在此基礎上進一步發展該領域。無論我們是否喜歡,算法都會塑造我們的現代世界,而我們對它們的依賴使我們有道義上的義務,不斷尋求對它們的理解並對其進行改進。我為您提供由凱文·斯拉文(Kevin Slavin)製作的名為“算法如何塑造世界”的視頻。