量化交易採用人工智能與機器學習架構

人工智能與機器學習架構之量化交易

要說到2016年資訊界最令人興奮的新聞,莫過於AlphaGo力戰李世乭圍棋九段吧。這是人工智能首次能夠在圍棋上4:1戰勝人類選手。更甚者在經過數個月的改良與”學習”之後,AlphaGo再度以 ”Master” 之名現身網路,這一次在短短一周之內便以60連勝無敗績橫掃中日韓各大冠軍棋手,穩拿世界職業圍棋第一的寶座,再一次成功地吸引了全球各行各業對人工智能與機器學習的關注。

 

人工智能與機器學習並不是一個新鮮的東西,早在數十年前隨著計算機問世,人們對於機器是否能夠模擬人類一樣思考解決各種問題便有諸多研究,如發展已久的類神經網路到現在更進化的深度學習等等在不同領域都有各種深入的討論與應用。相關研究發展雖然已經有數十年歷史,但拜近幾年資訊相關硬體進步與網路之蓬勃發展,相關領域最重要的一塊大拼圖 ”大數據” 才終於能夠更有效地與人工智能(演算法)做結合,達到前所未有的成就。

 

有人說為期(做期貨)之道如同圍棋之道,做交易的人看圍棋十訣,多半會心有戚戚焉,深感下圍棋與做交易的相似性竟如此之高,如果人工智能已經在圍棋上戰勝人類,或許在交易上也將掀起另一波狂潮。

 

如同人工智能與機器學習的發展一樣,量化交易其實也不是一個太新鮮的東西,同樣拜資訊硬體成本的下降與網路普及所賜,量化交易已經從法人的專利,發展到現在一個大學生在家裡也能夠利用自己的電腦透過自行研發的模型做出各種自動化買賣的行為。然而也可能因為工具的制約,多數人雖然已經在運作所謂的”量化交易”,但在思考架構上卻仍舊停留在石器時代一般,跟著工具所提供的簡單流程(回測/最佳化等等)發展模型,距離所謂的人工智能與演算法交易仍有一些差距。

 

通常一個傳統的技術分析與量化交易框架大致上都有兩個分層:資金管理層與 (商品+策略) 層。

在這樣的框架裡,策略研發者透過研究與觀察,以自身經驗搭配技術分析/商品特性(歷史資料)為主軸,希冀藉由程式交易運算平台所提供的回測與最佳化工具找到最穩健的策略與參數。這樣的策略設計理念多半來自於一個信念 – “ 歷史總是重複發生 ” 。 並透過各種資金管理或投資組合理論來控制整體風險。一般而言,如此的架構設計,主要是將我們自身的直覺與經驗作法由手動的步驟透過計算機所提供的工具轉化成量化與自動化的步驟。

 

而我們今天要討論的機器學習架構其實只是人工智能裡的一個分支,經過數十年的開枝散葉分門別派,機器學習目前在各領域都有很深的討論與應用。不過萬變不離其宗,機器學習最大的宗旨就是讓機器學會人類思考的方式與識別事物的方法,甚至是透過優良的邏輯思維比人類更快找到人類尚未發現的知識(深度學習)。不過礙於篇幅,這小小篇章也只能小小的點到機器學習裡不及百分之一的內容。

 

如上所述,機器學習的流派很多,這裡我們只先簡單地討論一個機器學習裡的簡單架構,以方便我們把量化交易與機器學習做接軌,但這不是唯一的作法,這裡只是拋磚引玉率先提供一個精簡的架構。

 

在<<學了統計、算法,如何正確應用機器學習?>>這篇文章裡,我們可以看到一個很清楚的分類,在此只簡單節錄其中一段話 : ” 李航老師在《統計機器學習》中指出:機器學習=模型+策略+算法。其實機器學習可以表示為:

 

Learning=Representation+Evaluation+Optimization

 

我們就可以將這樣的表示和李航老師的說法對應起來。機器學習主要是由三部分組成,即:表示(模型)、評價(策略)和優化(算法)。”,更詳細的內容請各位看倌自行上網搜尋。

  1. Representation : 表示、數據採集、模型建立、策略網路

這一層主要的工作在大數據的收集,模型的建立(特徵工程),腳色相對於傳統量化交易分層中的 ”策略” ,但在這裡使用”策略”並不算是一個好的說法,一個完整的策略其實包含買賣訊號停利停損等等”動作”,在機器學習中,這一層的腳色比較偏向中性,因此用”感知器、溫度計、狀態”來描述他可能比使用策略這個名詞更加貼近。原則上這一層(大數據)越大越好,規模決定了整體的強度。

 

  1. Evaluation : 評價函數、價值網路

這一層主要的工作在於透過評價函數針對第一層已建立好的模型進行 ”評價、評分、判斷優劣”,原則上這一層的特性也是偏向中性,透過這一層我們可以為整個大數據與模型建立可以互相比較或應用的標準。

 

  1. Optimization: 優化、AI演算法 (人工智能的核心)

第一層與第二層所輸出的資訊將會透過這一層來做處理與應用,這一層所說的”優化”與傳統量化交易中策略層指的優化或最佳化不一定是同一件事情,這一層主要的概念是一種”演算法”,也就是我們該如何來”解決問題”的方法,我們會在這一層透過各種設計來更貼近我們想解決的問題。

 

透過這樣的分層,我們就可以讓計算機模擬人類思考,進行我們所想要解決的問題。甚至改良傳統的量化交易。例如下面的例子

 

傳統量化交易的模型設計步驟:

  1. 建立均線買賣模型,MA(X),如果收盤價如果站上MA(X),則買進,反之則賣出
  2. 透過最佳化(由程式交易平台提供),令X=1~100,評價指標NetProfit,尋找近N年最佳參數,例如 X=10

然後將 MA(10) 模型掛入資金管理演算法(一般只有虧損XX%之後下架)

 

如何將這樣的架構修改成機器學習架構

 

應用1: 讓模型擁有自動調整參數的功能(高相關性模型)

 

  1. 建立模型 MA(1) ~ MA(100)
  2. 建立評價函數 NetProfit (或其他如PF/DD/SHarpeRatio/SQN)
  3. 建立AI演算法範例: 根據評價結果,排序第一名者可分配到資金,每次交易後均重新評價 (動態)

 

當市場特性或活性持續轉變,機器學習系統可自動根據評價結果進行參數調整預測或切換

 

應用2: 自動識別市場最適合的行情模式(低相關性模型)

 

  1. 建立高差異型模型並套用在數十個品種上: 趨勢型態策略區間盤整型態策略 多頭型策略 空頭型策略 當沖型策略 高亂度型(逆勢)策略
  2. 建立評價函數 (勝率/DD/PF/SQN或其他)
  3. 建立 AI演算法 範例: 根據評價結果,給予相應配資
    1. 演算法範例1: 評價前五名可以均分(或按照設計比例)可用配資
    2. 演算法範例2: 根據評價結果 1分者可以分配1%資金曝險,2分者2%,類推,交易中隨時評分 (動態)

 

機器演算法與傳統量化交易最大的優點與區別在於,當可參考的模型庫(大數據)越大,資金越有機會往高效率的位置分配,在思考上亦有更大的彈性與應用。以應用2為例,在交易中隨時透過評價函數自我校正,” 資金曝險 ” 隨時進行動態地運算與修正,不僅更貼近市場活性變化,困擾傳統量化交易的加碼減碼停損上架下架等問題亦不需要另行設計便可直接擁有,而模型只需要專注在判斷狀態,更沒有傳統量化模型過度優化的問題。與傳統投資組合理論方法多為一年(單期)才做一次重新配置相比更顯得彈性許多。

 

以上僅為一些簡單的傳統量化交易轉換為機器學習架構套用,事實上透過不同經驗所建構出的模型,與不同操盤手所設計的AI演算法,機器學習尚有更多無限可能,甚至透過深度學習讓計算機自動建模都是非常有趣的話題,當然這可能不是這小小篇幅能夠繼續探討的。

 

以下為一個以機器學習為概念設計的基本架構

 

格林威治交易團隊 投資總監 林語亭

關注微信公眾號