此文章為VIP限定
記得以前看日劇「下町火箭」時,被阿部寬演的火箭研發職人激得熱血沸騰。
劇中呈述一家小型精密機械公司「佃製作所」專注研發的過程,大宗產品的獲利都拿來研發高技術門檻的「火箭門閥」,社長不畏眾人質疑,就算被貸款銀行嘲笑:「沒有利潤的專利就像垃圾一樣。」,仍堅定專注研發的孤獨道路,熬了許久,經歷多次考驗,搶先註冊的專利和品質頂尖的產品,打進帝國重工(現實中的三菱重工)的星鏈計畫,最後享受到獨門專利帶來的高毛利甜美果實。
現實中有這樣的企業嗎?最經典的範例就是Amazion (AWZN),創辦人Bezos一直追求破壞式創新,不斷投入研發經費做個領域的嘗試,但龐大的研發費用也吃掉許多獲利,讓損益表和本益比的數字一直不太好看,Bezos較在乎營收與營運現金流量同步成長,只要這趨勢能維持,為公司帶來研發經費的支撐,那只要在激烈的資訊產業不斷投入資源而脫隱而出,就能囊括藍海市場的份額。木頭姐 (Cathie Wood) 的破壞式創新選股很多都是像AWZN這類經營模式。
台灣之光台積電 (TSM)是另一個經典的例子,不斷投入的研發費用和資本支出最終拉開與競爭者的差距,現在高階製程在對手看不到車尾燈的情況下,還可以在毛利50%的情況下再漲價,且沒有客戶敢抱怨啥,營收持續成長,讓台積電股價持續在緩步上升,就知道研發實力、企業競爭力、股價有所關聯。
先前已開發過財務指標的策略,例如本益成長比,研發費用率能不能也開發出好策略呢?
研發費用相關財務指標
研究發展費
是指公司在研究開發產品/技術的過程產生的各項費用。
研發費用率
算法:研究發展費 / 營業收入淨額
越高代表從營收拿出較高比例的份額繼續投入研發,好的情況是研究發展費與營業收入淨額同步增加,若是營業收入淨額下降而導致研發費用率變高,那可能會對財務體質帶來傷害,代表公司燒錢燒的有點嚴重。
來看看台股上市櫃產業的研發費用率中位數熱力圖,明顯可見半導體、光電、通信網路、生技醫療的比率比別的產業高出一截。半導體許多公司都投入不少經費研發,長年中位數分級在0.83上下,代表多數半導體公司的研發費用率大過全市場83%的公司。傳產相關投入研發的費用明顯少很多。
研發費用佔營業費用比
算法:研究發展費 / 營業費用
營業費用由研究發展費、銷售費用、管理費用所組成,研發費用佔營業費用比可看出一家企業願意在營業費用預算下拿出多少比例投入研發,而不是花到別項如包裝費、運輸費、展覽費、廣告費、服務費,可以看出一家企業願意在有限資源的情況下,有多在意研發。
來看看台股上市櫃產業的研發費用佔營業費用比中位數熱力圖,基本上產業排名和研發費用率一樣。有趣的是生技醫療、文化創意產業的比率逐季呈現下降趨勢,研發費用率高,但是不是花更多錢到行銷等費用 (美妝產業特色)上?資訊服務業、電子零組件的比率有上升趨勢,在有限的收入下,仍願意越來越注重研發。至於傳產的比率都還是偏低或下降趨勢,經營相對保守。
全市場回測
燒錢企業
研發費用率有個問題是若”營業收入淨額”小於”研究發展費”很多,會使比率放到超大,這類通常都是新藥公司,沒啥收入,不斷投入研發燒錢,現金流也常不佳,所以之後的使用研發費用比率回測要過濾這類的狀況。
來測測這類燒錢公司的獲利曲線,果然很差。
from finlab import data
from finlab.backtest import sim
研究發展費 = data.get("financial_statement:研究發展費")
營業收入淨額 = data.get("financial_statement:營業收入淨額")
# 選股條件
position = 研究發展費 > 營業收入淨額
report = sim(position=position, resample='Q', upload=False)
report.display()
研發費用率分群
單因子回測,分10個級距分別做季回測,前10%與後10%表現差距明顯,R2_score 0.48。
研發費用佔營業費用比分群
單因子回測,分10個級距分別做季回測,前10%與後10%表現差距明顯,R2_score 0.56。整體報酬比研發費用率的回測較低。
半導體產業回測
摩爾定律的定義歸納起來,主要有以下三種版本:
積體電路上可容納的電晶體數目,約每隔18個月便增加一倍。
微處理器的效能每隔18個月提高一倍,或價格下降一半。
相同價格所買的電腦,效能每隔18個月增加一倍。
由前述可知半導體產業是火拚研發實力的產業,許多相關公司都投入不少資源,像台積電長期的研發費用率都在8%上下,佔了營業費用的80%,不拚不行啊!若照摩爾定律的假設,不研發推新製程、產品,產品掉價會很快,分群回測出來的結果會不會比全市場更顯著?
結果是沒有比較顯著,相關性低一點,中間分群報酬率也蠻不錯的。
策略範例
策略很簡單,將前面介紹的指標取交集,條件如下:
- 上市櫃標的
- 研究發展費 < 營業收入淨額
- 研發費用率排名前10%
- 研發費用佔營業費用比排名前10%
- 營業現金流大於0,排除一直燒錢的危險體質企業,eps為負數,至少要有現金活水來支撐。
- 每季換股
from finlab import data
from finlab.backtest import sim
import pandas as pd
import numpy as np
data.set_universe(market='TSE_OTC')
研究發展費 = data.get("financial_statement:研究發展費")
營業收入淨額 = data.get("financial_statement:營業收入淨額")
research_ratio= 研究發展費 / 營業收入淨額 * 100
research_ratio_drop=research_ratio[研究發展費 < 營業收入淨額]
research_ratio_drop=research_ratio_drop.dropna(how='all',axis=1).replace(np.inf,np.nan)
research_ratio_rank=research_ratio_drop.rank(pct=True,axis=1)
營業費用 = data.get("financial_statement:營業費用")
research_prop_ratio= 研究發展費 / 營業費用 * 100
research_prop_ratio_drop=research_prop_ratio.dropna(how='all',axis=1).replace(np.inf,np.nan)
research_prop_ratio_rank=research_prop_ratio_drop.rank(pct=True,axis=1)
營運現金流=data.get('fundamental_features:營運現金流')
position = (research_ratio_rank >= 0.9) & (research_prop_ratio_rank >= 0.9) & (營運現金流>0)
report = sim(position=position, resample='Q', upload=False)
report.display()
延伸想想
能否再將策略更優化呢?可以思考怎麼將上述策略優化。
Finlab策略面板上的「研發魔人」選股策略,再加入一點點技術指標、出場條件、基本面條件後又能大幅優化策略,選股清單多是專注研發的top科技公司,財務體質正常乖寶寶。
如果你從此策略延伸出更厲害的策略,可以跟我交流喔!
colab 範例檔