不可能的任務?! 小資族 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萬資產,將他到條件輸入進程式,得到的結果是…
同表的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% 才是合理的期待,要期待 0050 未來每年都上漲,並不太實際。
Andy 的財務曲線模擬在年化報酬率 10% 的情況下,最終只會累積到 217萬。
另外若遇到熊市, 0050 波動風險比你想像中還大,2008年 最大回撤率高達55%,2020、2022也有30%回檔,定力不夠的投資新手不見得能扛住。
Andy 聽完分析後,有點氣餒,看來他的目標不是無腦投入指數型投資那麼簡單!目前看起來他有幾個選擇
- 努力投資自己拉高薪資
- 降低慾望或延長達標時間
- 研究別的投資發法,ex:主動投資選股技巧
Andy 說他已經放棄靠努力工作拉高薪資了,覺得再怎麼努力也是社畜,只能活在底層。
Andy 截圖一張網路上「台灣人大學志願選填指南」給我看,Andy說:「按我的條件,長相與能力普普,沒特別的興趣,很幸運的家裡沒負債、需要給一點孝親費、有想買房,按圖中路徑,只能電資醫牙/科技業,問題是我對理工沒興趣也沒能力啊!」
聽的有點令人哭笑不得,現實的殘酷是選擇比努力重要,在台灣想在追求高薪的話,除了科技業,選擇不多,如果對數理沒天份,確實很難。
但我想圖上少寫了一條路徑,那就是靠「投資或金融交易」,不管你職涯選哪條路,如果想買房或致富,那必定會接觸到「投資或金融交易」,靠錢去滾錢,而不是只靠勞力與時間去換取有限的報酬。
當然選擇長期持有 0050 也可能達標,10%年化報酬只要等到36歲就有機會達標,畢竟學習主動投資也是要花心思,不是無腦持有。多等6年好像還好,Andy 你要不要考慮一下?
Andy 沈思了一會兒說:「多6年蠻久的,等於多2倍的時間!剛剛經過延長試算,如果達到年化 30% 報酬率,那在36歲就有機會達到2500萬!會是10%績效的5倍!接近我不敢說的財富自由,或將脫離社畜人生,且 0050 好像沒我想像中的優。人生苦短,生命該恣意浪費在美好的事物上,能花越少時間是越好。有沒有什麼選股策略可以給小資族別的選擇方向?」
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),進行後續低價股效應之探討。
此篇論文能給我們幾個低價股策略開發的指引:
- 低價股效應存在於台股整體市場交易熱絡的時期,簡單說就是低價股在牛市較有機會狂飆,而在熊市或流動性較低的時候則會沈寂很久,這暗示低價股搭配動能因子(追突破、出量)會較容易抓到低價股效應的漲勢。
- 1、2 月份春節子期間的低價股效應較為明顯
- 非金電類股存在相對顯著之低價股效應,金融類股不具低價股效應(長期低價,大股本、低波動)。
看完低價股研究的論文後,看起來低價股小資族策略可能有搞頭,不過還是要寫成程式來驗證,我們可依此推衍3個策略擬定步驟:
- 定義低價股
- 定義動能突破
- 排除金融股
關鍵策略條件
定義低價股
有兩種方式:
- 絕對值定義:比如定義25元以下就算低價股。你以為25元以下標的不多嗎?以近年來說,有超過30%的股票在這價位以下,在熊市時,整體市場可能有超過一半以上的標的低於25元。
- 移動式分級比較:用分位數的觀念定義低價股時間序列,跟絕對值比起來,優點是會隨整體市況做調整,取每時期一定比例的標的,定義比較客觀。
缺點是若在2008的大熊市,許多股票跌爛,有快一半的股票到10元以下,級距縮小到差異不明顯的狀況,如果你只取前10%低價當選股池,那可能會錯過很多標的。
要解決此問題,可以設定每期前30%低價的條件,加上股價低於25元的條件,如此可以想有依照市況來決定標準,又可避免熊市時錯過許多低價標地的機會。
定義動能突破
小資金最有效率的方式應該是追突破,買在漲勢的發動點,適合小資金去拚高週轉率,用高效率的方式去滾報酬。如果買到低價的殭屍股,也就是交易冷清的股票,你可能會持有到懷疑人生。
很多散戶害怕追高,但其實股價越來越貴對短線交易者是好事,越買越便宜代表你是虧損的。重點在漲多少就不追?如何判斷剛從底部起漲?
飆股的長相 是我很喜歡的台股投資書籍,給我不少啟發:
像是作者對起漲點的判斷:「股票飆漲前,必須有一段細長的平穩期,股價波動變小,代表飆漲前的寧靜,不安定籌碼都已出場。一旦突破穩定期,就是新一波浪潮的開始」
如何定義穩定期?書中提供很簡單的做法,ex:120天內股價短期高低區間在30%以下。
公式為「範圍(%) = (1-最低價/最高價」)*100」。
如何定義股價技術面突破?這代表股價突破長期壓力,上空萬里無雲,ex:收盤價創120天新高。
藉由突破穩定期的做法,可以降低追高的風險,儘量買在靠近起漲點的位置。
排除金融股
金融股很多都是低價股,但也是不太波動的大牛皮股,低價股效應不顯著就將之排除。
策略程式實作
程式很簡單,另外說明一些小細節。
由於小資族不是專業操盤人,不適合太高頻的交易週期,如果每月都有新資金可以投入,那每月換股是較實在的選擇。
由於資金有限及考量操作容易度,我們將每期持股檔數最高設定為5檔,不然若選到20檔,也沒足夠資金買滿標的。我們將符合條件的股票,再選股價最低的前5檔,以更符合低價股效應。
position_limit 參數設定單檔持股上限,因為不是每期都會選滿5檔,如果只有一檔,沒設定position_limit會變成100%重壓,不要不信邪,很多人往往重壓那一次就倒。想知道更多回測細節可以參考 量化平台文件。
這樣適當地分散就像我們打籃球,5檔標的就像5個人團結合作,如果有幾個人狀況不好,還可以有其他人互相支援,不會像今天的球賽,你手感不好,沒得分,我們就輸很大。
position_limit 參數設定單檔持股上限,因為不是每期都會選滿5檔,如果只有一檔,沒設定position_limit會變成100%重壓,不要不信邪,很多人往往重壓那一次就倒。
策略統計分析
來開講回測結果啦!
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 之前,我們先來了解一些基礎概念:
波動分析基礎名詞
策略波動分析
藉由 FinLab量化回測模組,我們可以很方便取得策略頗動分析圖。
藍色為獲利的交易、紅色為虧損的交易。
由GMFE/MAE圖表得知,確實很多爆擊獲利(左上角藍點的部分),靠大賺小賠維持獲利。虧損多落於-10~-20%,在未設定停損機制的情況下,這樣算是非常不錯的成果,回檔波動有叢聚性,代表策略有一定規則可循。
再從MAE分佈圖來看,可以發現藍紅雙峰有分離情況,藍色虛線代表獲利交易的75%百分位數 MAE 為3.09%,也就是說多數獲利的交易大部分都很少面臨回檔,幾乎多數就是一買就賺,然而紅色虛線代表虧損交易的75%百分位數,就明顯比較差,達11.76%。
而兩條分佈曲線的交界處就可能是停損甜蜜點,代表過了這個點位後,就大部分都是虧損交易,很難漲回到損益兩平,獲利交易則在持有過程很少會觸及此點。
以策略來說,停損甜蜜點大概是5%,可以保留多數獲利交易,且有機會讓多數虧損的交易及早止血。
這類波動特性可解釋為追創新高突破,有不小的機率會失敗,買入後就虧損超過5%的容易回天乏術,要及早停損,讓剩下獲利的標的去奔跑。
加入停損後的回測結果
可以發現加入停損機制-5%(停損訊號產生後高一個交易日出場)後,年化報酬率雖然微幅下降,但策略體質變的更穩定了,原先虧損20%以上的紅點,都往內縮,降低損失。
最大下跌與下跌幅曲線也被有效縮小,虧最多的年份是2011的-5%,這個幅度 Andy 可以靠工作的積蓄來cover,即使當年績效吃鱉,仍可靠工作收入來讓當年資產成長,是實務上較能接受的回檔標準。
勝率變的更低是正常的,因為為了止血,會有一些獲利的交易被犧牲掉,所以勝率和報酬率下降都是正常的。
Andy:「哇!這樣確實比較清楚在哪個位置該跑掉,有了這個我就不會瞎猜、害怕砍在最低點。」
策略未來優化方向
Andy :「策略模擬結果可以達到年化30%報酬率!想不到光用技術面就能做出不錯的效果,操作低價股來賭樂透比去買彩券實在,感覺人生又有點希望了,但這個策略沒用到企業基本面,感覺持有起來少了安心感,畢竟我是會計人,如果想加入基本面到低價股策略該怎麼做呢?」
可以提供一個方向,再次回到前面提到的參考書籍「標股的長相」,書中提到一個很有道理的觀念,一個乏人問津的低價股票會突然飆漲,通常是基本面產生「關鍵的質變」,像是「轉虧為盈」,低價股之所以會是低價股,通常都是獲利體質不佳,乏人問津,但如果企業開始賺錢、甚至大成長了,比起業績與股價穩定的企業,低價股由於低價優勢,是不是有可能產生倍數獲利的黑馬評價?
如果有100人對此影片按讚,會在做「轉虧為盈」低價股策略的教學。
贈送策略小禮物
看完這一系列分析,是不是對台股量化交易與低價股策略有完整的認識呢?
即使是小資族,仍有別的選擇,可藉由低價股效應去打造適合自己的策略,藉由對波動的分析技巧,了解策略風險,進出有據。
策略程式碼放在連結,歡迎大家下載交流,小資族一起來成長,策略可能還可以再進化喔!就等你來挑戰~如果想要有完整資料庫和教學內容權限,記得要加入 FinLab VIP。