淺談策略失效的原因與因應之道(三)

前面我們提到的是機器學習的基本概念跟架構(步驟),那我們可以怎麼樣把我們的傳統量化交易來跟機器學習做結合
由於時間與篇章的問題,太複雜太細節的部份我們只能先行忽略,先討論看看我們可以怎樣先快速的去做一個簡單的對應跟套用
商品很顯然就是我們要辨識或分析的物件,
而我們所研發的各種不同屬性的指標或是策略其實代表的就是機器學習中感知器官sensor的腳色,如果你把各種策略掛上商品後就會產生各種不同走勢的權益曲線特徵(代表該商品在不同屬性的狀態下所展現的性質,例如在當沖狀態下的表現、或是在波段狀態下的表現)
而透過評價函數,我們就可以知道每個權益曲線的品質可信賴度或是穩定度。其結果就對應到機器學習中的神經元權重的腳色,透過隨時重新評價的動作也有偏差修正的效果
而商品與策略結合之後所做的操作損益就代表著目前的誤差值或偏差值,我們可以透過這個偏差值來進行一些修正的動作(像是加碼或減碼)
基本上我們可以把機器學習架構當成是一種系統概念或是解決問題的思考方式,上面的對應方法不一定是唯一的對應方法。把概念弄懂了,你再依照你覺得更合理的方式來做套用或建立新的邏輯架構亦可。

上面這張圖是我實際上運作的系統架構的細部模塊,其實只是看起來很嚇人而已,原則上概念大致就如同前面所描述的那樣
這邊主要要特別提出來的是,實際上的運行架構如圖上分成了兩大層級,
前面第一個層級 Level – 1 主要在做的就是我們這兩頁所講的,對多策略或多商品進行特徵評價的動作。透過評價的結果,我們可以來對我們的策略進行品質篩選,把品質好的篩選出來,並且可以進一步利用評價結果進行策略部位的加權配置,每個tick或是每次交易後皆動態重新計算最新的權重與偏差修正(weight/bias)。(Dynamic Tracking)
那為什麼還需要有 Level – 2 ,基本上 Level – 1 專注處理的是以策略或商品為基本單位在做品質處理或是偏差修正。而Level – 2簡單講就是在處理 Level – 1 輸出後的總合或總體。以總體為單位,處理一些針對主要是針對整個投資組合的演算法或是策略間的交握分配。
關於什麼叫做針對整個投資組合的演算法,我們後面會再提到

這邊我們要先介紹一個名詞<投顧式操作>
投顧式操作,其實就是大家常聽到的 Equity Trading,不管是 Level-1 以策略或是商品為單位,還是 Level-2 以總體為單位,都是 Equity Trading,也就是我們不會直接去干擾策略內部的操作,所有策略內部的操作我們都把它當作是黑盒子,是虛擬的。用比較容易理解的概念來講,就像是我們在操作股票一樣,不論是 Level1或Level2,我們可以像操作股票一樣,我們不會去干預也沒有辦法去干預股票的走勢,但我們隨時可以進行持股跟出清的動作。
這樣我們就可以很靈活地即時在發現策略失效的時候去進行即時下架,把籌碼拿回來,也可以很靈活地在發現策略覺醒的時候,把本來當作是垃圾的策略重新上架。(這裡所說的即時真的就是任何時刻皆可對某個策略圖表的隨時開始與隨時截斷,而不是以策略中的”一筆交易”為單位,不需要真的等到策略出場才進行部位的出清)
有的人是將風險控制直接寫在策略裡,而不是用 equity trading 的方式做管理,這樣的做法在出場的時候很容易,但是要重新進場卻會出問題,像是在策略裡面寫著在某個 drawdown 產生之後把策略停下來,然後你會發現你很難寫模型重新開始運作的條件,因為原本的權益曲線已經因為你的條件干預而失真。失真的權益曲線會造成管理上很大的問題。

這邊列出來的是一些常見的 Level 2 針對整個投資組合總體操作演算法可以規畫的一些例子
例子蠻多的,如果大家有興趣的話可以上我的粉絲專頁看一下比較完整的介紹
通常因為每個人的習慣或是對風險與複利設計演算法的需求不同,到了這一層就會有很多種”創新”或是專屬設計,以第一項平均DD% 再投資法為例,你可能曾經想過或觀察到市場有時候會有一些循環特性可以利用,例如從歷史上你也許有過這樣的觀察,市場好操作跟不好操作常常是一種循環,痛苦的盤整過後總是特別容易出現大又持久的行情,大又持久的行情過後容易出現瞬間的回檔與巴巴盤,因此當你的投資組合有獲利之後,你可能會想,如果馬上將獲利再投入的話,部位大可能反而容易瞬間把獲利回吐甚至倒賠,因此你想將獲利先放在一旁存著,等市場經過若干的盤整之後再轉換成可利用資金投入。
又或者你想把你的總體曲線作為一個大商品,重新進行分析或在上面撰寫一個總體策略亦可,例如對總體曲線畫上一個均線或布林通道,在均線上進行正常槓桿的運作,在均線之下整體走勢趨弱的時候把總體資金先 hold住(實際上的資金hold住,但虛擬的仍在運作)。
這樣的一個<針對整體組合的風險與複利演算法>就可以在這一層進行實作。

這裡我覺得有一個比較值得特別提出的,就是機器學習評價跟加權的概念,透過加權的觀念,不只讓部位控制變得比較精確,也可以讓操作變得比較靈活
我們前面說過機器學習式架構是很純正的 equity trading
因此我們管理策略就像在買賣股票一樣,他的走勢只是一種參考,我們可以很靈活地隨時去對他下注、或是把它出清、甚至我們還可以放空他,什麼叫做放空你的策略,簡單講就是把它倒過來做
透過機器學習權值的觀念,如果權值評價出來是負的,我們就可以直接跟我們的策略對做,把部位反過來做,多單變空單、空單變多單、停損變停利,然後你會發現順勢波段策略就變成逆勢區間操作策略了。
也就是你完全不用浪費時間去研發什麼逆勢策略,只需要透過機器學習式架構的觀念,你原本只是寫了一隻順勢策略,等於系統就順便多送你一個逆勢策略了。
機器學習裏頭的權值(動能)概念,其實就是博弈論或機率裏頭的我們所說的期望值的概念,對負動能進行部位的反向操作,其實就是負期望值進行反向操作的觀念。

以上,我們透過機器學習的架構,每次交易甚至每個tick都會對我們的策略或是商品進行重新評價跟偏差修正,這樣就可以確保我們的系統在策略失效或是策略覺醒的時候,可以馬上發現,也可以迅速來進行一些應對的機制
然後我們再回頭看看最開頭那些累積的問題
透過評價的結果,配上權重跟回饋機制,上面的問題算是大致上都有一個基本的解決了。
我們前面在聊為什麼開始看機器學習的時候,其實還有提到兩個命題
- 1. 是否有可能直接告訴電腦我要做什麼商品,給電腦一個基本的資料(history),他就可以自己學習自己訓練或是自己分析這個商品該怎麼進行操作? (智能 AI) (策略庫的可再利用性提高)
- 2. 如何維持資金的高效率配置(延伸: 低風險配置/XOXO配置)
而另一個我們常聽到的主題<策略管理>或<部位管理>其實只是機器學習架構的一個”副作用”,透過這樣的架構我們可以將管理再往上提升為”發現”與”創新”,因為有評價的機制進行篩選,我們可以大幅提升策略庫的可再利用性,甚至免掉研發的步驟,直接將我們想要操作的商品配上原有的策略庫直接掛入機器學習架構中就可以了,不合格的操作方式(策略)會自動被系統捨棄,而合適的操作屬性(策略)會自動被系統篩選出來,這就是AI 的概念。
而因為動態評價與權重的概念,資金也可以快速自動被加值配置在更有效率的位置