尋找金融特徵因子排列組合的歷史回測方法

這篇文章不是介紹如何定義特徵,而是從資料分析的角度,怎麼樣找一個比較好的特徵組合

前幾週分享了特徵是什麼,以及常見的突破特徵,資料特徵是無窮無盡的,舉一個均線為例,特徵就可以有無限種,舉例:站上均線、長短均線交叉、均線排列、均線上揚、均線報酬、均線上筆報酬,加上不同的參數、均線種類,特徵根本定義不完,然而,這篇文章不是介紹如何定義特徵,而是從資料分析的角度,怎麼樣找一個比較好的特徵組合。

要先做兩個工作,首先定義一籃子(N個)的特徵,再來思考追求的目標,怎麼樣的目標最好?

以投資、投機來說,每個人的目標都不一樣,有些人追求穩定,有些人追求高報酬,有些人追求期望值,有些人追求勝賠率,多數人可能追求報酬極大化,但同時要承擔的風險可能高一點。

上述講了這麼多目標,都是可以實作的,不過在還沒納入交易成本的考量以前,這篇文章就不提到太複雜的目標,接著我設定一個目標,這個目標就是

特徵篩選過後的累計報酬率 高於 買進並持有報酬率 (不考慮成本)

這邊不考慮成本的原因是將單論這個特徵對於報酬率有沒有趨吉避凶的篩選能力,還是老樣子,隨便挑一檔股票,看一下如果特定時間買進持有至今會是什麼樣子。

2618-2010買進並持有報酬率

最近跌這麼慘(2022/10),如果不考慮擇時近出場的交易成本,一些特徵應該不難找,均線阿,突破特徵阿,波動率指標阿加一加應該可以找到幾個好的單一特徵,把特徵定義起來然後迴圈跑一下應該就可以抓到了,不過單一特徵這邊就不講了,這邊想講的是,如果想找的是多個特徵的搭配呢?

舉例來說:突破特徵跟波動率之間相互搭配有沒有更好?均線特徵跟其他技術指標的特徵有沒有更好?而要怎麼找呢?用下面這個資料集為例,如果有兩個特徵(站上10日均、向下突破60天低點),多特徵之間互相搭配有沒有更好。

接著我們可以用群組的概念,將資料分為以下4類,如圖。

看到這張圖以後,就可以知道,如果將不同的特徵擺在一起,最多會產生(2^特徵數)個組合,如果當資料特徵越多,就會把報酬率的樣本越分散,以我們這個目標來說,如果篩選掉太多報酬率容易無法達成。隔日報酬率大概會被分成下圖4個種類。

直接用權益曲線來檢視一下這些特徵的效果,可以看到兩個特徵的組合會比單特徵來的好,知道這樣的方法以後,就只要努力的找出各特徵的組合,就可以知道那些特徵的組合是有意義的了。

藍線:買進持有
橘線:站上均線
綠線:不向下突破季低點
紅線:組合兩個特徵

發佈留言

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