跳至主要內容
台股研究 約 1 分鐘閱讀

Python 股票 5 分鐘超簡單選股與回測 - 讓你投資股票少繳學費!

本文用 finlab 套件示範 Python 量化選股與回測流程,只需 5 分鐘就能用 10 日均線篩出市場前 20% 強勢股,並以月頻調倉建立等權重 portfolio。完整程式碼可直接複製執行,並附上回測績效圖,幫助新手快速踏入 Python 回測與股票策略開發。

5 分鐘上手 finlab,用 10 日均線挑出市場前 20% 強勢股並完成月頻回測

在這篇文章中,我們將介紹如何使用 Python 的 finlab 套件進行選股與回測。只需 5 分鐘,你將學會如何用 Python 挑選股票以及進行簡單的回測,讓你在投資股票時能減少賠錢付學費。最近在看一些比較古典而學術的策略文章,雖然已經眾所皆知,但是好像很少人用,這篇文章將介紹,如何利用 Python 實做建構股票的 portfolio 來實現股票持有的報酬率。

Portfolio Trading 就是選擇一籃子股票,並照著一定的比例買入持有一段時間,這篇文章先用最簡單的篩選法,選出一些股票,並觀察買入後一段時間的變化。

內容目錄

  1. 安裝 finlab 套件
  2. 匯入套件
  3. 取得股票數據
  4. 選擇投資策略
  5. 回測投資策略
    • 5.1 完整的範例

安裝 finlab 套件

首先,你需要安裝 finlab 套件。在終端機或命令提示字元中輸入以下指令:

顯示程式碼
pip install finlab

匯入套件

在 Python 程式中,我們將匯入 finlab 套件的 databacktest 模組,以取得股票數據和進行回測。

顯示程式碼
from finlab import data, backtest

取得股票數據

使用 data.get() 函數取得股票數據,方法如下:

顯示程式碼
price_data = data.get('price:收盤價')

你可以根據需要替換成其他股票數據,例如:price:開盤價price:最高價 等。

選擇投資策略

在本教程中,我們將使用簡單的投資策略:選擇市場中 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')

Python finlab 簡單選股與回測績效圖

近年來獲利普普,感覺還得加入其它的條件吧? 大家可以新增一些指標,並且用類似的方法做回測喔!

另外,假如想要實做更多有用的指標,可以參考:超簡單108種技術指標,找一個你喜歡的吧!

除了開高低收,想要有更多數據做回測嗎?也歡迎到 財報爬蟲 月營收爬蟲 來找找喔!

FinLab AI

想建立自己的策略?

用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案

免費開始