給小資族的禮物|低價股量化策略的實戰訣竅

  • Post author:
  • Reading time:11 mins read

不可能的任務?! 小資族 30 歲達到資產 500 萬!

Andy 是我的籃球球友,每到週末,我們都會一同打球。23歲年輕的他是我們隊上的流川楓,然而今天卻手感失常,睡眼惺忪顯得無精打采,大家問他怎麼了?

Andy:「現在剛好是會計簽證忙季,有很多帳務要整理,剛好團隊的同事離職,業務又加重在我身上,連續幾天加班到很晚。上班上到有點厭世啊!然而沒收入就不能過日子,物價又一直高漲,不知道何時才能存到第一桶金?讓日子輕鬆點。」

另一位球友 Ben 問到:「你第一桶金的定義是100萬嗎?」

Andy:「起碼500萬吧!我想在30歲做右買房,覺得100萬太少了,繳買房的頭期款都嫌吃力,500萬繳個頭期款,還可能剩2-300萬好準備成家,還有點資金進行投資,獲利拿些來當旅費。理想上希望在30歲達到這個目標!」

Ben:「哇!感覺是有點難度的目標耶!光靠本業收入很難達成。現在已經存到多少了呢?」

Andy:「現在存到少少的20萬了,月薪大概4萬,每個月大概有1.5萬元結餘。有想學投資,但不知道從何學起?感覺投資很危險,記得小時候家中有長輩投資碰到股災,搞得家裡充滿低氣壓,時常被告誡不要碰投資,定存就好。」

Ben:「這樣要達到財務目標根本是不可能的任務啊!其他人覺得呢?」

財務曲線的理想大夢

「人生就像滾雪球。重要的是要找到夠溼的雪和一道長長的山坡。」 ~ 股神巴菲特。

投資成功的關鍵在找到適合的投資工具與足夠的時間,及早投資享有複利優勢,人人都懂,問題是要如何挑適合自己的工具與知道要等多久?畢竟每個人得的慾望及規劃不同。

「Andy 的春秋大夢能夠實現嗎?我們為了預測 Andy 未來的財務狀況,特別寫了一個程式來模擬他未來的資產變化,讓 Andy 可以看到 30、40、50歲後的資產是多少,如此一來, Andy 就可以知道每個月要存多少?什麼時候達到他短期財務目標?我們把這個工具稱為「財務曲線計算機!」這個計算機的用法非常簡單,只需要打開連結,輸入個人理財條件後,可以模擬在不同年化報酬率(0-50%)、每月定期投資、複利再投入的條件下得知財務曲線的變化,如果連模擬都無法達成,那目標可達性就很低,要考慮調整規劃。

想知道人生財務曲線預測的實作細節,可以參考FinLab在Hahow的線上課程 「Python 理財:打造小資族選股策略」

Andy 說他不是醫牙電資的背景出身,就是個普通上班族,收入不高,經常性每月薪資約4萬,每月開銷大概2.5萬,每月結餘約有1.5萬元可進行投資,現在手上有20萬存款,胸懷大志想在30歲達到500萬資產,將他到條件輸入進程式,得到的結果是…

gBF9TN5mbjiNVt1pbH2nMJtBOr8gPRuxylmvayfPXUpVa foXhAwuyhr58dCequGTQnv M6gPsf7wbs3XpjxWJR1dxjrt qIklQoMaSGVbeEKJb7
c ezpsX6a1iS9hrN5dnwQPsVKuzy8kEUE RrsYZbwORCYMQcpaxBwA32LMsY7f7n3 uTt22qp6PxEm2E1EZFHEjj2ZLqNJr9DqpsLDnb2mo1T27hoe0TZFA3TOnF7HShe1v1CN uoiqy VnhjenYfIM

同表的X軸是年紀,Y軸是模擬資產數值,不同顏色的線代表不同年化報酬率的結果,可以發現投資的前5年看不出明顯效果,但28歲後,複利的差距開始拉大。

如果 Andy 只有活存,到30歲最終有146萬存款,離 500 萬目標甚遠。
從圖表得知,若年化投資報酬率是30%,最終資產是483.45萬,接近他的目標,也就是說要達到他的目標大概要30-35%的報酬率!

0050 ETF 適合嗎?

Andy 天真地問:「要如何達到每年30%的報酬率呢?坊間很多老師和書本 都說 0050 元大台灣50 這類指數型 ETF 很棒!印象前幾年指數大漲,好像有達到年漲30%!穩定性也不差,還可以領股息,只要台灣沒倒,這個標的就不會倒。」

來簡單回測一下,讓Andy了解現實的殘酷,如果策略沒經過空頭的考驗,那很容易會以為年年可發大財,2019-2020 受惠FED大撒幣,台股指數確實達到30-35%,但市場有循環,2008、2011、2015、2018、2022的空頭就會讓投資者虧損,虧損高達20%也是有可能發生的。

10

牛熊輪迴平均下來,年化報酬率 10% 才是合理的期待,要期待 0050 未來每年都上漲,並不太實際。

Andy 的財務曲線模擬在年化報酬率 10% 的情況下,最終只會累積到 217萬。
另外若遇到熊市, 0050 波動風險比你想像中還大,2008年 最大回撤率高達55%,2020、2022也有30%回檔,定力不夠的投資新手不見得能扛住。

MRvQBn4gsyDCYTWaF2EyczMbl4edyWnfMHk0uYdWSFNcvCTUWmacrT0gLVC18WEeSFQHtQyaQRjYzHQYj9zVo8RKxjTkdB

Andy 聽完分析後,有點氣餒,看來他的目標不是無腦投入指數型投資那麼簡單!目前看起來他有幾個選擇

  1. 努力投資自己拉高薪資
  2. 降低慾望或延長達標時間
  3. 研究別的投資發法,ex:主動投資選股技巧

Andy 說他已經放棄靠努力工作拉高薪資了,覺得再怎麼努力也是社畜,只能活在底層。

Andy 截圖一張網路上「台灣人大學志願選填指南」給我看,Andy說:「按我的條件,長相與能力普普,沒特別的興趣,很幸運的家裡沒負債、需要給一點孝親費、有想買房,按圖中路徑,只能電資醫牙/科技業,問題是我對理工沒興趣也沒能力啊!」

聽的有點令人哭笑不得,現實的殘酷是選擇比努力重要,在台灣想在追求高薪的話,除了科技業,選擇不多,如果對數理沒天份,確實很難。

但我想圖上少寫了一條路徑,那就是靠「投資或金融交易」,不管你職涯選哪條路,如果想買房或致富,那必定會接觸到「投資或金融交易」,靠錢去滾錢,而不是只靠勞力與時間去換取有限的報酬。

Z1kyJ2n4E28lsQC5mnNkHZxh4KQbI0O8Ehx5His IAFTj6CX auVZ8H6zlPKL YzztFPBOV21mpyUM9luh13v1UqD6HyKEWjHlb0GpqwkFq DPnLhfhetl0wEKeikC 49ZwOoo996f2zrTQdTYFYdY

資料來源:生活中的程式

當然選擇長期持有 0050 也可能達標,10%年化報酬只要等到36歲就有機會達標,畢竟學習主動投資也是要花心思,不是無腦持有。多等6年好像還好,Andy 你要不要考慮一下?

Andy 沈思了一會兒說:「多6年蠻久的,等於多2倍的時間!剛剛經過延長試算,如果達到年化 30% 報酬率,那在36歲就有機會達到2500萬!會是10%績效的5倍!接近我不敢說的財富自由,或將脫離社畜人生,且 0050 好像沒我想像中的優。人生苦短,生命該恣意浪費在美好的事物上,能花越少時間是越好。有沒有什麼選股策略可以給小資族別的選擇方向?」

V8EHWHeuJq452jidF1T8Ms5li7QVYxrHqo5wk1HB53UnKDIS0IHYimn l5nqT d5 h24dL1LWwvvhcQqoDLqEX8AAziCkeLa34Xbpi wAo LPwYQ NHNnGGhgr1TbfbFYYYHoqT1Azp9fk0e7LCMqVs

Andy 雖然是小資族,但及早有理財意識,已經勝過當年的我,如果再讓我回到23歲的小資時代,會如何規劃呢?

小資族的翻身計畫

資金少該怎麼辦?

像 Andy 這樣的新手小資族最大特點就是資金少。
如果只操作現貨、不開槓桿開始,該如何用少少資金就能參與市場?
首要是將標的限縮在低價股。操作高價股如果買零股,交易比較不方便,與一般市場的價差大。限縮在低價股比較方便交易。

另一個選擇低價股操作的原因是聽說低價股潛在報酬可能比較大,之前有聽說過低價股樂效應,10元的股票要翻倍感覺比100元翻倍容易,真的如此嗎?
我們目標是比較高的報酬率,從飆股多的池子篩選股票比較容易,低價股裡真的有樂透般的股票嗎?

低價股的樂透效應

低價股真的比較會漲嗎?讓我們來看低價股效應的相關研究:

「Weld, W. C., R. Michaely,R. H. Thaler, and S. Benartzi (2009)和林韋伶 (2018)主張投資人對於低價股具一定之幻覺,認為低價股具有較高的上漲空間,因此藉由此特性組成投資策略,能獲取超額報酬,相對高價股而言,反而較不具上漲空間,且會有更高之下跌風險。

Kumar(2009) 提出低價股如同樂透彩票一般,如果投資人正在尋找『便宜的賭注』,低價股將具極大吸引力,因此認為股票市場可能具低價股效應。」

– 摘自(臺灣股票市場之低價股效應探討 蔡承祐)

研究利用每月最後一個交易日的收盤價來組建所需的投資組合,首先,於每月底,依照最後一日收盤價的高低平均分成 5 個股價組合,組合 1 為最低股價之組合,依序組合 5 為最高股價之組合。接著,計算 5 組股價組合次月的等權報酬,並同時買進組合 1 與賣出組合 5 形成淨投資為零的套利組合(zero-investment arbitrage portfolio),進行後續低價股效應之探討。

MPk1Dt c0zy0NmJvDF51EK1X37GwBpDzl6DHAJQ9qXiza9SrdrFLRyfE8xxSk EA o1GdwuME EnkDqNL8zgCr BY1YtGxy40bd9G IZBKB916zMMlqz8poSojQqUSUl82AeLoQYIIRGDHRRdyiXEoo

此篇論文能給我們幾個低價股策略開發的指引:

  1. 低價股效應存在於台股整體市場交易熱絡的時期,簡單說就是低價股在牛市較有機會狂飆,而在熊市或流動性較低的時候則會沈寂很久,這暗示低價股搭配動能因子(追突破、出量)會較容易抓到低價股效應的漲勢。
  2. 1、2 月份春節子期間的低價股效應較為明顯
  3. 非金電類股存在相對顯著之低價股效應,金融類股不具低價股效應(長期低價,大股本、低波動)。

看完低價股研究的論文後,看起來低價股小資族策略可能有搞頭,不過還是要寫成程式來驗證,我們可依此推衍3個策略擬定步驟:

  1. 定義低價股
  2. 定義動能突破
  3. 排除金融股

關鍵策略條件

定義低價股

有兩種方式:

  1. 絕對值定義:比如定義25元以下就算低價股。你以為25元以下標的不多嗎?以近年來說,有超過30%的股票在這價位以下,在熊市時,整體市場可能有超過一半以上的標的低於25元。
  2. 移動式分級比較:用分位數的觀念定義低價股時間序列,跟絕對值比起來,優點是會隨整體市況做調整,取每時期一定比例的標的,定義比較客觀。
    缺點是若在2008的大熊市,許多股票跌爛,有快一半的股票到10元以下,級距縮小到差異不明顯的狀況,如果你只取前10%低價當選股池,那可能會錯過很多標的。
    要解決此問題,可以設定每期前30%低價的條件,加上股價低於25元的條件,如此可以想有依照市況來決定標準,又可避免熊市時錯過許多低價標地的機會。
wUMT23303vUt d YDwjPbJ6tPUtHWHbvA7CpEql31hT9KEASGVITwB178sYrRmLrA94fFwg7zTlEych2kIRoDRcnQZn6b7KnMKTr5yHD7GQimY3NCdwy JiH9VUz2zpBMdVNNw8QBGndeu0t9yAI3LQ
vKIyW7WxtIfO9vPYYxCfoTNxckbLZtqqUBq7Ae5R9cSP6Um D2zfsBAdRQujDkHqYWdPXwyj57VDhQ

定義動能突破

小資金最有效率的方式應該是追突破,買在漲勢的發動點,適合小資金去拚高週轉率,用高效率的方式去滾報酬。如果買到低價的殭屍股,也就是交易冷清的股票,你可能會持有到懷疑人生。

很多散戶害怕追高,但其實股價越來越貴對短線交易者是好事,越買越便宜代表你是虧損的。重點在漲多少就不追?如何判斷剛從底部起漲?

飆股的長相 是我很喜歡的台股投資書籍,給我不少啟發:KygMje63HXKQQPYNamI5LlzhkwYh9u6IvLxSdqHblAehRNNEqgqYJe9JSQP3RtutujlLqtwmo RAXdOgqK4z1RAE gJ6 QXTWo3Xjx1sABlODbdnBCy6g8TwJM Zf

像是作者對起漲點的判斷:「股票飆漲前,必須有一段細長的平穩期,股價波動變小,代表飆漲前的寧靜,不安定籌碼都已出場。一旦突破穩定期,就是新一波浪潮的開始」

如何定義穩定期?書中提供很簡單的做法,ex:120天內股價短期高低區間在30%以下。
公式為「範圍(%) = (1-最低價/最高價」)*100」。


如何定義股價技術面突破?這代表股價突破長期壓力,上空萬里無雲,ex:收盤價創120天新高。

藉由突破穩定期的做法,可以降低追高的風險,儘量買在靠近起漲點的位置。

ZzpW9o1R606 ff9kfvQydM4zbTbUJZkZB3Sreg nGCmvN lGPJxWFWiCVJWifLywuHH6cmNL49ig

排除金融股

金融股很多都是低價股,但也是不太波動的大牛皮股,低價股效應不顯著就將之排除。

策略程式實作

程式很簡單,另外說明一些小細節。

由於小資族不是專業操盤人,不適合太高頻的交易週期,如果每月都有新資金可以投入,那每月換股是較實在的選擇。

由於資金有限及考量操作容易度,我們將每期持股檔數最高設定為5檔,不然若選到20檔,也沒足夠資金買滿標的。我們將符合條件的股票,再選股價最低的前5檔,以更符合低價股效應。

position_limit 參數設定單檔持股上限,因為不是每期都會選滿5檔,如果只有一檔,沒設定position_limit會變成100%重壓,不要不信邪,很多人往往重壓那一次就倒。想知道更多回測細節可以參考 量化平台文件

這樣適當地分散就像我們打籃球,5檔標的就像5個人團結合作,如果有幾個人狀況不好,還可以有其他人互相支援,不會像今天的球賽,你手感不好,沒得分,我們就輸很大。

position_limit 參數設定單檔持股上限,因為不是每期都會選滿5檔,如果只有一檔,沒設定position_limit會變成100%重壓,不要不信邪,很多人往往重壓那一次就倒。

策略統計分析

來開講回測結果啦!

ItzH93C743Med1UlSbtmrnBPkDfZ1g3UQBA9pMaEpc8Bjn13Hh6b4rEmOZZ8JgFlD29Gm7Ot2EKeQNueDDLBlHtIzIrO9fZyGc46L6LLTvIpWMUwyrodFob9Eb3Oz tGfKRHJ28JAKSkPb9biAFtR w
zJ4pYmnynGX1e5 LfHWLKsKnQU8IH9dv2NCMCd8bW8Wr48pJ0laDYZZrsAaULYY8Uewv9dZAXUfLGebAQ7nLJY6v2AHUyyOvmI43kYAMRzza67d6eub9lVO YmPJIuomoAXtUOYO09jBzBjDRPZSwLQ
from finlab.backtest import sim
from finlab import data


df = data.get('security_categories')

# 排除金融股
category_range = [ind for ind in list(set(df['category'])) if '金融' not in ind]


with data.universe(market='TSE_OTC',category=category_range):

    close = data.get("price:收盤價")
    high = data.get("price:最高價")
    low = data.get("price:最低價")
    vol =  data.get("price:成交股數")
    
    # 收盤價近5日至少有1日創收盤價近120日創新
    condition1 = (close == close.rolling(120).max()).sustain(5,1)
    # 近60日股價高低區間在30%內
    condition2 = (1 - low.rolling(60).min()/high.rolling(60).max()) < 0.3
    # 收盤價低於整體市場分級的40%
    condition3 = close <= close.quantile_row(0.4)
    # 收盤價低於25元
    condition4 = close <= 25
    # 5日均大於100張
    condition5 = vol.average(5) > 100*1000

    # 交集所有條件
    position = condition1 & condition2 & condition3 & condition4 & condition5

    # 最後再挑選前5低價的標地
    position = close * (position.astype(int))
    position = position[position > 0].is_smallest(5)
    
    # 每月底產生訊號、隔月第一個交易日進場、開盤價進出、每檔標的持有部位上限為20%、設定交易手續費折扣
    report = sim(position, resample="M", name="低價股策略", upload=True, stop_loss=0.05, trade_at_price='open',position_limit=1/5, fee_ratio=1.425/1000*0.3, mae_mfe_window=40)

Andy 看了都驚呆了!沒想到30% up 的策略這麼快被生成出來了,年化報酬、夏普率、最大下跌都比單純持有0050優秀,2007-2022年共16個年份,只有3年虧損,且有12年(75%)年報酬打敗0050!2007、2012、2015、2016輸給大盤,但空頭年份2008、2011、2018、2022 年皆明顯優於大盤。

當然很少策略是完美的,這隻策略的勝率偏低,未達50%,若投資組合沒買齊全,容易會不如預期的效果。

在輸多勝少的情況下還能大賺,代表獲利的交易有高機率產生爆擊,中到飆股樂透。

另一個明顯缺點是下跌幅度多數時候都比大盤高,所以接下來,我們就必須針對這個策略來優化,適度的增加停損停利點,將風險控制在合理的範圍中。

停損的重要性

散戶有個致命缺點是不執行停損,認為賠錢不賣等於沒賠。
就有論文指出台股散戶投資人習慣賣出強勢股、留下弱勢股,已實現獲利是已實現損失的2.5倍,相比美國投資人則是1.5倍,有較強的處分效應(引自:台灣散戶交易行為探討 黃佳雯 2019年)。在帳面大幅虧損下為了急於翻本而過度交易,反而滿手套牢股。

學會勇敢停損絕對是散戶必學的一課,要懂得汰弱留強!

Andy 疑惑地問:「我也知道停損很重要,可是我很怕我停損後,他就給我繼續漲啊!要怎麼知道何時才該停損呢?」

Andy 這問題問的很好?市面上很多人會用絕對值停損法,例如賠10%就停損,然而這是很粗糙的做法,無法解決停損最佳點的問題

藉由 MAE & MFE 分析去觀察策略波動的規律,讓我們可快速得知停損甜蜜點的區間大概在哪裡,在認識 MAE & MFE 之前,我們先來了解一些基礎概念:

波動分析基礎名詞

G fDCO6O8PhAubzYmvvn 3JHYG3Bm0rUs6MG8Ipu6fuOS5ncqRJA6ID9NsFQZRCKFKLV4W8F44pVIGrIJgDEFZGxqJjIwQChNpeZglfnmEFmZSuH2SYWJYAEEtakGx aXjATQ XZQEt6P 5kN2yR5LI

策略波動分析

藉由 FinLab量化回測模組,我們可以很方便取得策略頗動分析圖。

BFNGw5iqNePikJzBj1ggmC0TGWI5XEnMeIMrTxuQ937LfkbO5nSuB7JA1Lxc uWXaBRZVPrOTyEUqvUwznYnvggSRPFYW JgEGlVgq0C 0mt3jGf9abx9uD6 t7RPAbzYr4DnjHpJwfreJX1a4 9CfU

藍色為獲利的交易、紅色為虧損的交易。

由GMFE/MAE圖表得知,確實很多爆擊獲利(左上角藍點的部分),靠大賺小賠維持獲利。虧損多落於-10~-20%,在未設定停損機制的情況下,這樣算是非常不錯的成果,回檔波動有叢聚性,代表策略有一定規則可循。

再從MAE分佈圖來看,可以發現藍紅雙峰有分離情況,藍色虛線代表獲利交易的75%百分位數 MAE 為3.09%,也就是說多數獲利的交易大部分都很少面臨回檔,幾乎多數就是一買就賺,然而紅色虛線代表虧損交易的75%百分位數,就明顯比較差,達11.76%。

而兩條分佈曲線的交界處就可能是停損甜蜜點,代表過了這個點位後,就大部分都是虧損交易,很難漲回到損益兩平,獲利交易則在持有過程很少會觸及此點。

以策略來說,停損甜蜜點大概是5%,可以保留多數獲利交易,且有機會讓多數虧損的交易及早止血。

這類波動特性可解釋為追創新高突破,有不小的機率會失敗,買入後就虧損超過5%的容易回天乏術,要及早停損,讓剩下獲利的標的去奔跑。

加入停損後的回測結果

BQWgg30wnKClBNBARMvOsV0uI M LQ57W9HxVark9xYAAzuWmJPgbzGWLDUHi0huqUSoZujqCZsjSo0QeU CJOQUjb ralo
dxeq1PG9UqCniy7GpV5ToJx1mnLOWt3686CTIvodFLjdfxR0CtFJl3wGmdRzR qpdOL8fK fyqc8LgvhBeeRYH8cXYfyn6YsmhJuJWauDq5GUFaHLm5HfwyPVKaXMu kQpnPZgryywe 0w3iqVaQIuc

可以發現加入停損機制-5%(停損訊號產生後高一個交易日出場)後,年化報酬率雖然微幅下降,但策略體質變的更穩定了,原先虧損20%以上的紅點,都往內縮,降低損失。

DqcSJg3DRetVXJvYtEf40Vco3W7eVqJRd9q8pi4KjfnjYKun9FOJIeUYLe9Wx FREPNk VCPBWS03vTQW R7XFigWfSYYVy8vB b2L8njjfy6qBknPM3Hy7Fi76xxUWC rt WHjj1ff5JFZbPtW1jaE

最大下跌與下跌幅曲線也被有效縮小,虧最多的年份是2011的-5%,這個幅度 Andy 可以靠工作的積蓄來cover,即使當年績效吃鱉,仍可靠工作收入來讓當年資產成長,是實務上較能接受的回檔標準。

勝率變的更低是正常的,因為為了止血,會有一些獲利的交易被犧牲掉,所以勝率和報酬率下降都是正常的。

Andy:「哇!這樣確實比較清楚在哪個位置該跑掉,有了這個我就不會瞎猜、害怕砍在最低點。」

策略未來優化方向

Andy :「策略模擬結果可以達到年化30%報酬率!想不到光用技術面就能做出不錯的效果,操作低價股來賭樂透比去買彩券實在,感覺人生又有點希望了,但這個策略沒用到企業基本面,感覺持有起來少了安心感,畢竟我是會計人,如果想加入基本面到低價股策略該怎麼做呢?」

可以提供一個方向,再次回到前面提到的參考書籍「標股的長相」,書中提到一個很有道理的觀念,一個乏人問津的低價股票會突然飆漲,通常是基本面產生「關鍵的質變」,像是「轉虧為盈」,低價股之所以會是低價股,通常都是獲利體質不佳,乏人問津,但如果企業開始賺錢、甚至大成長了,比起業績與股價穩定的企業,低價股由於低價優勢,是不是有可能產生倍數獲利的黑馬評價?

如果有100人對此影片按讚,會在做「轉虧為盈」低價股策略的教學。

KygMje63HXKQQPYNamI5LlzhkwYh9u6IvLxSdqHblAehRNNEqgqYJe9JSQP3RtutujlLqtwmo RAXdOgqK4z1RAE gJ6 QXTWo3Xjx1sABlODbdnBCy6g8TwJM Zf

贈送策略小禮物

看完這一系列分析,是不是對台股量化交易與低價股策略有完整的認識呢?

即使是小資族,仍有別的選擇,可藉由低價股效應去打造適合自己的策略,藉由對波動的分析技巧,了解策略風險,進出有據。

策略程式碼放在連結,歡迎大家下載交流,小資族一起來成長,策略可能還可以再進化喔!就等你來挑戰~如果想要有完整資料庫和教學內容權限,記得要加入 FinLab VIP

Ben

Python 軟體工程師與量化策略研究員。 鑽研資料工程、網頁後端、資料視覺化、量化交易策略開發。 投資主力在台股市場,量化策略為主、質化分析為輔,追求人機攜做最佳化。逐步將觸角延伸到總經、美股、加密貨幣,朝更全方位的交易人邁進。