乖離率與 ROE 濾網(台股)
美股版本
本策略的美股版本請見 English page。
策略說明
本策略結合價格動能與基本面篩選:
- 60 日動能:計算收盤價相對於 60 日前的漲幅,選出漲幅前 30 大的股票。
- ROE 濾網:僅保留 ROE(股東權益報酬率)大於 0 的標的,排除虧損公司。
每月調整一次持股。
from finlab import data
from finlab.backtest import sim
# 下載 ROE 跟收盤價
roe = data.get("fundamental_features:ROE稅後")
close = data.get("price:收盤價")
position = ((close / close.shift(60)).is_largest(30) & (roe > 0))
# 回測,每月(M)調整一次
report = sim(position, resample="M", upload=False)
report.display()
關鍵參數
close / close.shift(60):計算 60 個交易日的價格比例(即 60 日的 1 + 報酬率),約等同一季的動能區間,避免太短期的雜訊與太長期的均值回歸。is_largest(30):選出 60 日漲幅最大的 30 檔,集中佈局在強勢股上,偏向動能因子。roe > 0:基本面獲利濾網。排除虧損公司可避開純粹題材炒作或殼股,把動能集中在有獲利支撐的個股。fundamental_features:ROE稅後:台股財報資料集中預先計算好的稅後 ROE 指標。resample='M':每月換股一次,與台股月營收公布節奏吻合,也能控制交易成本。
預期行為
這是一套帶有基本面防護的動能策略。純動能策略容易追到題材飆股,加入 ROE 濾網後,僅保留獲利為正的公司,確保價格動能背後有實際獲利支撐。60 日的回看窗捕捉中期趨勢,避開超短期動能常見的反轉效應;每月換股則讓部位有時間發酵,並在新的財報資料進入後重新篩選組合。