金融大數據分析 巨量資料科學 交易策略建構 量化交易系統 動態槓桿控管
淺談金融特徵因子歷史回測-第一步
這幾個月不斷的在上一些金融資料分析的課程,也從教學當中整理一些部份,自己認為是從是在量化分析金融資料當中,可以持續累積進步的一些步驟,一般來說,如果要建構投資策略,一般人的做法可能是透過某些程式語言的套裝軟體(Multichart、MT4等)去著手,然後每個策略範本都跑跑看,最後找到一個權益曲線還不錯的策略,繼續做下去。
不過以Python去建構交易策略,本身門檻就比較高,也就是從分析資料的底層開始run,所以接觸到策略建構前,我想金融資料本身就有很多部分可以進行分析,這剛好也是用非套裝軟體的優勢與劣勢。
以自己來說,建構交易策略的工作,最主要分為三個部分:
1. 尋找有用的特徵
2. 建構策略
3. 驗證有效性(過度最佳化)
其中最難的應該是第3點,沒有正確答案
今天將會針對第一點來介紹,先介紹一下今天的主角,台灣50(0050)跟長榮航(2618),選擇主角沒有特別原因,只是想在文章中闡述不同類型的商品,所出現的特徵反應大不相同。
下面是0050報酬率曲線圖,報酬率計算透過「隔天開盤/今天開盤」,不是拿收盤價去算,原因很簡單,因為如果要執行策略的話,開盤進場比較方便,收盤進場比較麻煩。此外這邊的報酬率是未來一天的,這樣才可以用特徵去篩選「未來報酬率」。
特徵(feature)這一個名詞,其實是來自於統計學、機器學習,如果在函數內就是x的角色,其中資料又分為幾類:
1. 二分法資料
2. 分類資料
3. 連續型資料
統計學中我們要自訂特徵,機器學習是試圖找出有效特徵。
特徵的樣子就是我們上面所提到的二分法資料,舉例:「股價>過去120日平均」、「波動率>過去20天的兩倍標準差」,接著我們拿「股價>過去120日平均」去篩選未來報酬率,透過特徵當濾網後權益曲線會變成下面這張圖。
最後我們看到,加上特徵的報酬率沒有比原本高,不過好像也閃躲2022年的一部份下跌,整體的報酬、風險是不一樣的樣貌。
接著換到個股的主角,長榮航2618,如果是以均線來看的累進報酬,長期都是虧損的,或許就代表均線不是一個有效的特徵。
不過這邊的報酬曲線只能做為參考,因為實際操作上,還需要考量到交易成本,這部分會之後再分享。
尋找特徵最主要的是了解,未來的報酬率,有沒有特定影響的因素?還是未來的報酬率只能被約束在市場價格隨機理論中呢,還是有效的特徵有沒有辦法讓我們產生投機上的優勢呢。