文件
開啟 Studio

開始使用

快速上手

本頁內容4

這一頁帶你從零跑出第一個回測:安裝 → 下載資料 → 寫條件 → 回測,大約 5 分鐘。每段程式都能直接複製執行。

  1. 1 取得資料
    data.get('price:收盤價')

    日期 × 股票的一張表

  2. 2 寫條件
    close > close.average(60)

    True=那天要持有

  3. 3 回測
    sim(position, resample='M')

    報酬、回撤、每筆交易

  4. 4 上線
    PortfolioSyncManager

    每天更新、自動下單

選一個地方執行

第一次用建議選 Google Colab:打開瀏覽器就能寫,不用在電腦上安裝 Python。

到 Google Colab 開一個新的筆記本,在第一格執行:

!pip install finlab

跑出第一個回測

下載收盤價

data.get() 用「資料表:欄位」的名稱下載資料。第一次執行會打開瀏覽器請你登入 FinLab,免費註冊即可。

from finlab import data

close = data.get('price:收盤價')
close.tail()
date2330231724540050
2026-10-272400247.53960106.6
2026-10-282425251.54235108.65
2026-10-2924152484045107.25
2026-10-302370245.53915104.95
2026-11-0223302513970104.1

回傳的是一張表:每一列是一個交易日,每一欄是一檔股票(上表只列出其中幾檔)。FinLab 的所有資料都長這樣,財報、月營收、法人買賣超也是。

免費帳號的台股資料到 2023 年底,VIP 每天更新到最新,上面的表是 VIP 帳號的結果。

寫一個選股條件

用 Pandas 的語法比較整張表。下面這行的意思是「收盤價創 300 個交易日新高」:

position = close >= close.rolling(300).max()

結果是同樣形狀的表,每一格是 True 或 False,True 代表那一天要持有那一檔股票。比較運算一次算完整張表,下圖用「收盤價高於 60 日均線」說明:

close 收盤價
233023172454
10/279851120
10/2810150118
10/2910449121
10/3010352117
close.average(60) 60 日均線
233023172454
10/2710052115
10/2810051116
10/2910151117
10/3010151118
position 要持有的股票
233023172454
10/27FalseFalseTrue
10/28TrueFalseTrue
10/29TrueFalseTrue
10/30TrueTrueFalse
每一格是一檔股票在一天的值。比較運算一次算完整張表,日期與股票會自動對齊;True 就是那天要持有的股票。數字為示意。

回測

把條件交給 backtest.sim()。resample='M' 表示每月底檢查一次條件,在下一個交易日換股:

from finlab import backtest

report = backtest.sim(position, resample='M')
report.display()

report.display() 會畫出完整的回測報告,下面就是這段程式跑出來的結果,可以直接在上面操作:

回測報告・可互動 開新視窗

看懂這份報告

報告最上面是報酬曲線和幾個最常看的數字:

指標意思
年化報酬率把整段回測的報酬換算成平均每年賺多少
最大回撤從最高點到最低點最多跌了多少,代表最難熬的時候
夏普率每承擔一單位波動換到多少報酬,越高越穩
勝率賺錢的交易占所有交易的比例

想在程式裡拿到這些數字,用 report.get_stats();想看每一筆交易,用 report.get_trades()。

下一步

不確定資料表叫什麼?到 資料目錄 搜尋欄位,或在 AI 編程助手(Claude Code、Cursor 等)安裝 FinLab Skill,直接問「營收相關的資料有哪些?」。

↑↓ 選擇 Enter 開啟 Esc 關閉