文件
開啟 Studio

策略範例

乖離率與 ROE 濾網

本頁內容4

純動能策略容易追到題材飆股。這個策略在價格動能之外加上 ROE 濾網,只保留獲利為正的公司,確保價格動能背後有實際獲利支撐,適合想做動能、又想避開純題材股的人。

策略邏輯

  • 60 日動能:計算收盤價相對於 60 日前的漲幅,選出漲幅前 30 大的股票。
  • ROE 濾網:只保留 ROE(股東權益報酬率)大於 0 的股票,排除虧損公司。
  • 換股:每月一次。

完整程式碼

strategy.py
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':每月換股與台股月營收公布節奏吻合,也能控制交易成本;部位有時間發酵,並在新的財報資料進入後重新篩選組合。

下一步

↑↓ 選擇 Enter 開啟 Esc 關閉