精明管家-實戰之理論驗證:因子模型

更新 發佈閱讀 14 分鐘

戰場歸來,存活者發聲

實戰之理論驗證!或「理論之實戰驗證」?沒寫錯,我的實戰是跑在前面的,在我沒讀過什麼金融理論的狀況下,就摸索並實作出關於 Beta 的許多功能。在個人策略轉向 Beta 中立的初期,遇到持續半年以上的強勁多頭!(可能是歷史上屬一屬二的)

raw-image

驚奇,誇張,扯,沒有最,只有更,...,無數日子就這樣度過。近期稍作回檔,終於讓空頭喘口氣。整整半年期間,每天看著盤跟鬼一樣沒有止境的一直向上爬,千百個聲音在笑自己是白癡!但策略轉向有其持續性,不可能輕易就棄械投降,因此就這樣持續被碾壓著。在嚴控 Beta 風險的大方向下,稍微增加曝險到正的 0.2 左右,還是堅持多空配置。在逆境的苦思中,從本質與原理出發,激發出更進一步的風險分散方法,就是將原始的日報酬資料向量化,降維並視覺化成美麗泡泡的「風險分布圖」。然後終於逐漸享受到淨值「不動如山」的穩健感,在大漲大跌的風浪中,悠遊自在於一葉輕舟,從從容容,取得我該得的一瓢飲。如以下不專業 ai 圖。

raw-image

Beta,原來這只是一個特例!

然後我去找,市場上有沒有人這樣做,竟然....找不到!有些市場中性策略的論述,但都不鼓勵,難度高,勸退。我所尊敬的財經博主們,也沒有一個這樣做,是怎樣?只有兩種可能:我可能產生了一點點的原創價值喔!或者,也可能是異想天開。但交易有趣之處就是,市場會直接驗證有效性,不需要經過權威機構認證,哈哈。

回到量化分析的基本功,分析,探勘,檢定,預測,均圍繞在「因子」。靜心研讀後發現,我的 Beta 只是一個特例,可以稱為「市場因子的曝險 Beta」,市場是一個因子。直接以 Beta 稱呼之也是沒有問題的,因為市場這個因子,是最大最重要的,探討個股與市場因子的關係,是基本且重要的工作。要獲得市場平均報酬,本來也是不簡單的工作,但得益於指數公司已經為我們完成了複雜的統計工作,即時性更新大盤指數,再加上指數期貨與 ETF 工具的興盛,要取得市場平均報酬,已經不是難事了。想到以前,也許一個基金經理,大費周章的辛勤工作,只為了幫客戶分散風險,報酬率可以跟上大盤,這種工作在現在,已經徹底被 ETF 取代了。對經理人的要求,轉而更嚴苛更艱難的 Alpha!必須對抗的是「系統性風險」。

因此,定期定額買 0050,就可以取得市場平均報酬,一句話講完。一堆書和論文,講來講去只是在證明此事有效而已,有必要一直研究嗎?哈哈。大盤崩跌時有解嗎?這才是重點。若有錢繼續扣款就沒事,不然若因生活所需,一樣要割肉,這才是真相。要維持定期定額的系統持續運作,本業收入是必要的,不然就要有夠大的「現金蓄水池」!若兩者都沒有,必須潛心研究,尋找 Alpha,且要「夠純粹」的 Alpha。誤把 Beta 當 Alpha 的是大有人在。

若相信大盤長期向上,專業術語就是「Market Factor」有效。因此進行因子曝險,實現方法就是做多指數期貨或是買進 0050 等市值型 ETF。若 All In 0050,就是 Market Factor Beta Exposure 接近 1 的投資組合。以下是我自行開發,初試啼聲的「精明管家」系統,顯示 0050 在今年多頭氛圍旺盛的狀況下,年化報酬率達到大約 30%,但注意 highlight 處,也必須承受 25% 的波動喔,和最大 30% 的回撤。

raw-image

只要願意承受風險,得這些報酬,應該,合理。但是,我不願意。因為我屬於上面兩者皆無的人,無所謂的本業收入,也無夠大的現金蓄水池,因此「擴大資金效益」就是必要的行為。做事業的人少有不借錢的,做產品者少有不廣告的,台北到台中也少有步行的,這就是「槓桿」,其實是很自然的事。在金融工具便利的現在,曝險 200% 大概就是一種日常。但當 30% 回撤來臨之時,我的資產將減損六成!這就很難接受了。朋友們,當你定期定額到退休,金額創新高之時,減損 30% 能否接受?也許少有人提醒你過。那怎麼辦?不一定要如我搞這些避險玩意兒,但注意保留夠多的現金水位,不要失去風險意識,這是理財最重要的事。

更多因子,但有效嗎?

真正有效的因子是稀有且珍貴的,太多所謂的因子,只活躍於歷史資料中,真實未來資料一驗證就破功了,或是只有短暫時間有效。據說現在的量化交易公司,運用爆量算力提取爆量因子,合成有效的因子;但都免不了要不斷探勘,不斷驗證,也不斷丟棄失效的因子,這些過程是大量消耗成本的。過去短暫研究後,就興趣缺缺了,因為這不是小散戶玩得起的。這次從市場因子再度介入,肯定量化分析還是存有一定希望,因為在交易工作中,不可能用單純的「質化」分析來涵蓋一切,最終的數字總是要面對的。無論如何,各種因子是存在的,只是要如何運用,驗證或檢定,在交易策略中要扮演何種角色,這就可以有相當多樣的應對方式。

以最大的市場因子而論,在策略中可以有意地去「放大 Beta」,也可以有意地去「抵銷 Beta」,其底層邏輯差異何在?基本上我是站在「抵銷」這邊。

先想想站在放大那邊,在享受獲利的同時該付出的有哪些?首先必須確實「驗證」因子的有效性。即使像市場因子這樣有多數共識的因子,都可能存在持續一兩年的熊市折磨,更何況一大堆動能,價值,規模,基本面,經濟面等五花八門的因子,那更是變幻莫測,有效性的存續期間飄忽不定,要一直追逐和驗證,實在太累了;擁有巨量算力的量化公司,就好好吃你們的餅吧。我相信市場很大,不是只有這種餅可吃的,無需像媒體吹噓的,過度神化這些公司。

那站在抵銷這邊呢?我們致力於抵銷所有已知的風險。而如果該因子其實是無效呢?那也無傷大雅,這就是明顯的好處。漲時不賺,跌時也不賺,那就賺波動啊。會花時間去管理和抵銷,表示並非認定因子無用,反而是認定因子有用,但拒絕去回答「何時有用」這個問題,只知不同的因子會在市場中不斷地「輪動」。

比如說,市場可能在某段時間流行「成長股」,卻在另一段時間「殺估值」,成長股被殺爆的同時,又慢慢推崇「價值股」。或是在某段時間對央行的利率預期極為敏感,又在另一段時間完全不管總體經濟怎麼樣,只管熱炒某個主題如 ai data center 之類的等等。市場時而瘋狂時而冷靜,總有許多故事在流傳著,或有些匯聚成輿論洪流,於是無堅不摧,碾壓所有次等敘事。如此觀察,承認因子在流竄是顯而易見的事實,但要抓到每一股浪潮的始末,真是難上加難!基本上我已經放棄了,所以偏向於採取抵銷策略。

不斷的抵銷和對沖,卻絕不擔心市場會歸於寂靜和單調,唯一可確定的,就是市場永遠都在波動,若能利用波動獲利,那才是長長久久的活水泉源。深諳此道甚至利用 tick trade 累積小小的價差,就能匯聚成巨大的財富,這是「微觀世界」的奧妙之處。極致玩家就是「造市商」,在使用者全無知覺的情況下,默默的為自己輸入財富的水流。當然要玩到那等級也是門檻太高了,但此 know-how 是可以借用的。身為小散戶,在工具發達的今日,追求正負 2% 的機會,是很合理的期望。此策略的門檻可說有點高,卻不會太高,剛剛好我可以勝任。雖沒有海量 GPU 算力,卻可以靈活串連交易資料,市場報價資料,期現貨整合資料等等;沒有嚴謹的因子檢定方法,但可以對沖並抵銷幾個重要並顯著的因子。

更多 Beta,更多分散,從 market beta 開始

到了該實作的時候了,我希望用現有的知識,泛化到其他因子,所以先來複習 Market Factor 的算法,這次想用詳細的說明,搭配優美的數學符號來描述。首先市場 (或稱大盤) 每天都有一個報酬率,記為:

raw-image

蒐集一段歷史資料,比如說 125 個交易日,就成為 125 維的向量,是個時間序列,記為大寫的 R,為了與個股的 R 做區分,所以給下標 mkt,成為:

raw-image

這可以說就是「因子的值」或「因子溢酬」。然後要來衡量因子對個股報酬率的影響,因股票有很多支,第 i 支的個股報酬也是一個時間序列,記為:

raw-image

以上兩者作回歸分析,就會得到係數 Beta,和一個截距項 alpha (原來這個 alpha 就是所謂超額報酬的最初形式,即使所有的 beta 都抵銷,它依然存在!),和一個誤差項 Epsilon,數學式表達為:

raw-image

而我們關心的就是回歸係數 Beta (i),每一隻股票擁有自己的 Beta。此值可以用 python 程式,運用套件輕易取得:

import statsmodels.api as sm

def calc_market_beta(stock_returns, market_returns):
X = sm.add_constant(market_returns)
model = sm.OLS(stock_returns, X).fit()
return model.params[1]

也可以用以下公式,直接計算 Beta:

raw-image

動能因子 (Momentum)

此因子的基本邏輯是,過去漲的未來也容易漲。在此先不討論此因子有沒有效,或何時有效,因為我們是站在對沖方,只要確認此因子「有時候」會有效,那就有對沖價值。通常的算法是,過去一段時間的報酬率 (預設是一年),但排除最近一段時間 (預設是一個月)。為了謹慎使用計算資源,我先用半年和兩周,以 python code 表達如下:

# prices is a DataFrame with dimension (Date x Stock)
# hence, momentum also is (Date x Stock)
momentum = prices.pct_change(125).shift(10)

不同於市場因子,其他的因子還有一個稱呼「風格因子」,被定義來反映股票屬性,對時間的敏感度比較低。之後要探討的基本面相關的或經濟指標相關的,大部分都是每月甚至每季才變動的,所以不對報酬的時間序列作回歸分析,反而是對「所有股票」的值和報酬,在一個時間點的橫切面,作回歸分析。(請謹慎閱讀,這裡有點繞,哈哈)

因此首要解決的問題是資料的尺度問題 (Scale),必須先標準化,因此就成為 z-score,直接用 python code 精簡表達:

def zscore(series):
return (series - series.mean()) / series.std()

# momentum.iloc[-1] is a series which contains
# the last values of momentum of all stocks
# zscore() also returns a series
momentum_factor = zscore(momentum.iloc[-1])

然後,以上這個 momentum_factor 就是 Beta!怎樣,轉得過來嗎?市場因子的 Beta 是用回歸模型估計而得的,為何這種風格因子,是直接用 z-score 算的?這是由 z-score 的定義直接解釋的。假設 momentum_factor = 0.5,表示該股票相對於所有股票的平均 momentun 高出半個標準差,近似於「在 memmentum 的因子上,曝險 50%」。對應到市場因子的敘事,Beta = 0.5 可以描述為「該股票將反映大盤 50% 的漲跌福」或「在市場因子上,曝險 50%」,是不是很像?的確可以對應的。

那各種因子對報酬率的影響程度,應該有差別吧?的確是的,所以還是需要進行「時間點橫斷面的回歸」。所取得回歸係數,意義就是因子對報酬率的影響程度,正名為「因子的風險溢酬」,以 Lambda 來表示,所以在時間 t 的 i 股票的日報酬率就是:

raw-image

但以上方程式表示,股票的報酬率完全由該因子決定?顯然是錯的。研究因子可以一個一個來嗎?很可惜的,不行!不然算出來的 Lambda 都被嚴重污染而失去意義了。依照目前被研究和討論的因子,最少必須涵蓋以下幾項:動能,價值,和波動。這沒得談的,是基本且必須,所以回歸方程式變成以下,這是一個多元回歸模型:

raw-image

這三個因子是相對比較獨立的,之後行有餘力,再加入一些進階的因子,難免必須承受一些相關性,所以不能分開作回歸,各因子的 Lambda 表示對報酬率的影響程度。進階因子還有:流動性,市值,行業;更進階的還有:品質,成長性,預估修訂,...。那些還非常遙遠,先專注最小集合:動能,價值,和波動。

價值因子 (Value)

取用財報之淨值,除以最新價格,成為「淨值/股價」比,取 z-score 為之。

波動因子 (Volatility)

取用股票過去 60 天的日報酬,計算標準差,再年化,成為年化波動率。一樣要取 z-score 才是因子值。

returns = np.log(prices / prices.shift(1)).dropna()
vol_60 = returns.rolling(60).std().iloc[-1] * np.sqrt(252)
vol_factor = (vol_60 - vol_60.mean()) / vol_60.std()

觀念徹底打通,實作吧

敬請關注拙作,即將灌注所有學習 know-how 於其中,理論與實戰總是相輔相成的。

一個可運行的系統:https://newman-portfolio.azurewebsites.net/

Newman 2025/12/4




留言
avatar-img
newman的沙龍
31會員
150內容數
漫步是一種境界。
newman的沙龍的其他內容
2025/11/25
雲端的幸福年代 自從 azure 服務於 2010 年正式推出,或可追朔到 2002 年的 aws 服務,雲端服務至今蓬勃發展,從基礎架構,平台,和軟體,多樣化幾乎無所不包。對一個軟體工程師而言,像小孩子的玩具箱中,裝滿了瘋狂爆量的玩具,怎不欣喜若狂。一台電腦加上網路線 (現在變成 Noteboo
Thumbnail
2025/11/25
雲端的幸福年代 自從 azure 服務於 2010 年正式推出,或可追朔到 2002 年的 aws 服務,雲端服務至今蓬勃發展,從基礎架構,平台,和軟體,多樣化幾乎無所不包。對一個軟體工程師而言,像小孩子的玩具箱中,裝滿了瘋狂爆量的玩具,怎不欣喜若狂。一台電腦加上網路線 (現在變成 Noteboo
Thumbnail
2025/08/20
說我在炒股?Low 掉了啦;若說我在作「風險管理」,不就好像就比叫高尚一點!這就是語言工具的限制。總是要看事物的本質,雖然包裝有其必要性,但包裝能吃嗎?本質的探討是無止境的。比如說有某種食品,你可以說包裝很漂亮很吸引人,但不若好吃重要;而好吃美味也不是全部,營養與食安呢?更重要,不是嗎。甚至好吃,營
Thumbnail
2025/08/20
說我在炒股?Low 掉了啦;若說我在作「風險管理」,不就好像就比叫高尚一點!這就是語言工具的限制。總是要看事物的本質,雖然包裝有其必要性,但包裝能吃嗎?本質的探討是無止境的。比如說有某種食品,你可以說包裝很漂亮很吸引人,但不若好吃重要;而好吃美味也不是全部,營養與食安呢?更重要,不是嗎。甚至好吃,營
Thumbnail
2025/08/16
感謝他們用行動告訴我這個重要事實:「連這樣都可以喔!」當我一一想通後,他們就成為我自信心的來源。 這些割韭菜的老師,都是我的養分,但我不會感謝他們...,嗯,還是要感謝一下好了。就像「三人行」的概念,擇其善者而從之,其不善者而改之。只是回想起來,竟然找不到一個真的佩服的老師!只有「改之」的份。難道
Thumbnail
2025/08/16
感謝他們用行動告訴我這個重要事實:「連這樣都可以喔!」當我一一想通後,他們就成為我自信心的來源。 這些割韭菜的老師,都是我的養分,但我不會感謝他們...,嗯,還是要感謝一下好了。就像「三人行」的概念,擇其善者而從之,其不善者而改之。只是回想起來,竟然找不到一個真的佩服的老師!只有「改之」的份。難道
Thumbnail
看更多
你可能也想看
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
彼得林區的經典智慧,像是「了解持股」,在實務中總讓我覺得有點窒礙難行。一個凡人,要如何理解一家高科技公司的護城河?這個疑問,推動了羊羹我打造一套屬於自己的投資系統。這是一段從質化哲學到量化紀律的探索,試圖在兩者之間,找到一條能讓自己安心持有、穿越市場多空的路。
Thumbnail
彼得林區的經典智慧,像是「了解持股」,在實務中總讓我覺得有點窒礙難行。一個凡人,要如何理解一家高科技公司的護城河?這個疑問,推動了羊羹我打造一套屬於自己的投資系統。這是一段從質化哲學到量化紀律的探索,試圖在兩者之間,找到一條能讓自己安心持有、穿越市場多空的路。
Thumbnail
​投資理財內容聲明 文內如有投資理財相關經驗、知識、資訊等內容,皆為作者個人分享行為。 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。 希望您能從這些分享內容汲取投資養份,養成獨
Thumbnail
​投資理財內容聲明 文內如有投資理財相關經驗、知識、資訊等內容,皆為作者個人分享行為。 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。 希望您能從這些分享內容汲取投資養份,養成獨
Thumbnail
本文探討五因子模型對臺灣是否有效並且參考相關論文與資訊進行彙整摘要與探討。透過分析臺灣股票市場,探討不同特性的投資組合的報酬趨勢,並檢測三因子模型及五因子模型的解釋能力。
Thumbnail
本文探討五因子模型對臺灣是否有效並且參考相關論文與資訊進行彙整摘要與探討。透過分析臺灣股票市場,探討不同特性的投資組合的報酬趨勢,並檢測三因子模型及五因子模型的解釋能力。
Thumbnail
前言 這篇會拿Finlab上的策略與機器學習預測線圖的因子進行結合。由於模型是透過2007-2011年的線圖作為訓練資料,回測的時候會從2012年開始以示公平。 還沒看過前面兩篇的可以點下面連結,會比較看得懂接下來的內容。 第一篇: 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲
Thumbnail
前言 這篇會拿Finlab上的策略與機器學習預測線圖的因子進行結合。由於模型是透過2007-2011年的線圖作為訓練資料,回測的時候會從2012年開始以示公平。 還沒看過前面兩篇的可以點下面連結,會比較看得懂接下來的內容。 第一篇: 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News