策略範例
乖離率與 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':每月換股與台股月營收公布節奏吻合,也能控制交易成本;部位有時間發酵,並在新的財報資料進入後重新篩選組合。
下一步
這一頁有幫到你嗎?