尋找策略組合vs參數最佳化

一個好的邏輯,要如何與其他邏輯搭配呢,就是不斷的嘗試,try error try ... 怎麼做比較有效率呢?

使用套裝軟體建構策略的方法,大家可能都是找到一個基礎的策略,接著用參數最佳化去找到一個好的參數,如果有好的績效,代表這個策略參數某個層面上符合了某些市場特性,我們因此得到投資上的優勢,這也是量化分析最常見的做法。

接著一個好的邏輯,要如何與其他邏輯搭配呢,就是不斷的嘗試,try error try …。

不過這件事情對於一個懶人回測來說,真的太辛苦了(長嘆),所以我一直在想,有沒有可能把不同的策略邏輯組合在一起回測,試圖找出不同策略邏輯之間的關聯、互補性,而不是一個交易邏輯用參數最佳化幹到底,再去與其他邏輯硬湊在一起,舉例來講:我如果想知道「價量」、「籌碼」之間有沒有特定關係,而不是單純拿價量或是籌碼去做交易策略。那如果照剛剛所說的,每個交易邏輯一個個嘗試,如果總共有3個交易邏輯,那會有7種組合,數量就依此類推,如果邏輯一多,這根本是測不完的坑阿。

因此,我才會介紹資料特徵,資料特徵在資料分析領域很常見,但在投資軟體上並不常見到這樣的概念,而資料特徵也可以應用於交易策略,有興趣的人可以翻翻前幾篇文章。

而當我們把交易特徵做了一些排列組合以後,就可以比較快的去找一些特徵關聯性,舉例來講,我把特定股票的月營收制定一些指標,大概如下。

每檔商品,都有不同的特徵反應!有些人可能覺得這檔股票主力色彩濃厚,或是因為疫情大漲等等,但這不是本文重點,因為不同股票會有不同反應,這邊就單純看資料做分析而以。

接著我用股價跟月營收去產生一些特徵,例如突破、月營收季平均>年平均、年增率>10%,這三個特徵有沒有什麼關聯性呢?那如果我們是100個特徵(交易邏輯)呢?所以我這邊希望用最快的方法把所有排列組合跑一次,操作上我們會透過群組化,去將不同的特徵排列組合全部測試一次,會得到這張表:

裡面將不同的特徵排列組合都測過一次了,然而最大的總報酬是最好嗎,沒有一定,要看你怎麼衡量風險以及報酬,不過本文的重點在於,如果可以跳出不同與以往的回測框架,或許會看到一些以前沒看過的風景吧(飄髮)~

我也不確定概念介紹這樣寫大家是不是可以理解,想知道如何撰寫這些Python code的人幫我留個言+1,有人想看我再試著寫看看Python code介紹的文章。

7 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *