在這篇文章中,我們將介紹如何使用 Python 的 finlab 套件進行選股與回測。只需 5 分鐘,你將學會如何用 Python 挑選股票以及進行簡單的回測,讓你在投資股票時能減少賠錢付學費。最近在看一些比較古典而學術的策略文章,雖然已經眾所皆知,但是好像很少人用,這篇文章將介紹,如何利用 Python 實做建構股票的 portfolio 來實現股票持有的報酬率。
Portfolio Trading 就是選擇一籃子股票,並照著一定的比例買入持有一段時間,這篇文章先用最簡單的篩選法,選出一些股票,並觀察買入後一段時間的變化。本篇跑通之後,想把它升級成處理過前視偏差、流動性過濾、多因子複合與成本內扣的工程化版本,可以接著讀 Python 量化交易完整教學。
使用 AI 輔助安裝流程
首先,你需要使用 AI 輔助安裝流程。把下面這句提示詞貼給 AI:
顯示程式碼
幫我設定 FinLab,做第一個台股動能策略:https://finlab.finance/setup匯入套件
在 Python 程式中,我們將匯入 finlab 套件的 data 和 backtest 模組,以取得股票數據和進行回測。
顯示程式碼
from finlab import data, backtest取得股票數據
使用 data.get() 函數取得股票數據,方法如下:
顯示程式碼
price_data = data.get('price:收盤價')你可以根據需要替換成其他股票數據,例如:price:開盤價、price:最高價 等。換的是資料表名稱,寫法完全一樣,所以同一行就能切到基本面或籌碼面資料:
顯示程式碼
revenue = data.get('monthly_revenue:去年同月增減(%)') # 月營收年增率
roe = data.get('fundamental_features:ROE稅後') # 稅後股東權益報酬率
trust_buy = data.get('institutional_investors_trading_summary:投信買賣超股數') # 投信買賣超完整台股資料表清單見 Python 台股資料完整指南。
選擇投資策略
在本教程中,我們將使用簡單的投資策略:選擇市場中 10 日均線價格最高的前 20% 股票。首先,計算 10 日均線:
顯示程式碼
moving_average = price_data.rolling(10).mean()接著,找出每天市場中 10 日均線價格最高的前 20% 股票:
顯示程式碼
top_20_percent_stocks = moving_average > moving_average.quantile(0.8, axis=1)回測投資策略
使用 backtest.sim() 函數回測投資策略,方法如下:
顯示程式碼
result = backtest.sim(top_20_percent_stocks, resample='M')在這裡,top_20_percent_stocks 是選擇的投資組合,resample='M' 表示每月調整投資組合。假如你都看不懂,建議你先去看 finlab package 的新手教學。
什麼!回測竟然只要這麼少行!!是的因為我們是平均分散所有要買的股票,所以只要把選出來的股價做平均,買入這個平均指數就可以了。由於有了前面的假設,結果會是一樣的。
完整的範例
顯示程式碼
from finlab import data, backtest
price_data = data.get('price:收盤價')
moving_average = price_data.rolling(10).mean()
top_20_percent_stocks = moving_average > moving_average.quantile(0.8, axis=1)
result = backtest.sim(top_20_percent_stocks, resample='M')
近年來獲利普普,感覺還得加入其它的條件吧? 大家可以新增一些指標,並且用類似的方法做回測喔!
另外,假如想要實做更多有用的指標,可以參考:超簡單108種技術指標,找一個你喜歡的吧!
除了開高低收,想要有更多數據做回測嗎?也歡迎到 財報爬蟲 月營收爬蟲 來找找喔!
延伸閱讀
- 新手必看的 5 個 FinLab 入門選股策略
- Python 台股資料完整指南
- 使用 Python 進行股票分析指南:入門篇(含布林通道)
- 三行程式碼打造創新高動能策略:台股 Python 起手勢
- 為什麼用 Python 投資?MT4、XQ、MultiCharts 與 Python 的選股能力比較
- 選股之後怎麼下單?Python + Selenium 通用券商自動下單教學
- 程式交易是什麼?台股 Python 回測與自動下單教學
- 台股怎麼選股?完整指南
投資警語:本文僅供教學參考,不構成投資建議。過去績效不代表未來表現,投資有風險。
最後更新:2026-06|作者:FinLab 量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始
