跳轉到

FinLab 的指令列介面(CLI)

FinLab CLI 目前透過 python -m finlab 使用,支援帳號登入、憑證匯出、登入狀態檢查、舊 token 遷移,以及雲端策略部署與排程。

尚在測試

目前此功能為 Alpha 階段,可能會有錯誤或不穩定的情況。請小心使用。 如有任何問題,請至 Discord 上提出問題,我們將盡快來修正。

快速設定

安裝或更新 FinLab:

pip install -U finlab

登入 FinLab 帳號:

python -m finlab login

查看登入狀態:

python -m finlab status

身份驗證與憑證

登入

開啟瀏覽器完成登入,並把登入憑證儲存在本機。

python -m finlab login

登出

清除本機憑證,並嘗試移除伺服器端 session。

python -m finlab logout

查看狀態

顯示目前本機 session、API key 是否設定、方案名稱,以及伺服器端 active sessions。

python -m finlab status

匯出憑證

在 headless 或雲端環境使用時,可以匯出目前登入憑證。

python -m finlab token

輸出 shell export 指令:

python -m finlab token --env

遷移舊 token

查看從舊版 FINLAB_API_TOKEN 遷移到新版登入系統的指引。

python -m finlab migrate

自動更新雲端策略

使用 FinLab CLI 可以把策略部署到雲端,設定每日自動執行時間,也可以手動觸發執行、查看執行紀錄與本月用量。

使用前準備

請先登入 FinLab 帳號:

python -m finlab login

雲端策略程式碼會在獨立容器中執行,容器內已預裝 FinLab SDK。策略 ID 必須以英文字母或數字開頭,只能包含英文字母、數字、._-,最長 64 個字元。排程時間使用 HH:MM 格式,時區為 Asia/Taipei。

方案、額度與 tier

雲端策略執行會依方案限制可用 tier 與策略數量。可以用 python -m finlab cloud status 查看目前帳號允許使用的 tier 與本月執行次數。

方案限制

方案 可部署策略數 預設 tier 可用 tier
Free 0
VIP 3 s s
AI 5 m m, l
AI MAX 10 s s, m, l, xl

如果部署時沒有指定 --tier,新策略會使用帳號方案的預設 tier;更新既有策略時,若該策略已經有 tier,則會保留原本設定。Free 使用者不能部署雲端策略。

Tier 規格

Tier CPU 記憶體 最長執行時間 併發
s 1 2 GiB 120 秒 30
m 2 4 GiB 180 秒 1
l 4 16 GiB 300 秒 1
xl 8 32 GiB 600 秒 1

查看策略清單

列出目前登入帳號的雲端策略:

python -m finlab cloud list

最多列出 500 策略:

python -m finlab cloud list --limit 500

查看策略內容

取得單一策略的中繼資料。Inline 策略會顯示程式碼;zip 策略只會顯示中繼資料和進入點檔案,原始碼仍保存在雲端儲存空間。

python -m finlab cloud get my-strategy

只輸出 inline 策略程式碼,適合重新導向到檔案或搭配其他工具處理:

python -m finlab cloud get my-strategy --code-only

部署策略

可以部署單一 Python 檔,也可以部署 zip 壓縮檔形式的多檔案策略。

部署單一 Python 檔:

python -m finlab cloud deploy my-strategy --code strategy.py

部署並設定每日自動執行時間:

python -m finlab cloud deploy my-strategy --code strategy.py --time 09:30 --tier s

部署並加入參賽:

python -m finlab cloud deploy my-strategy --code strategy.py --time 09:30 --contest --contest-alias TeamA

部署多檔案策略:

python -m finlab cloud deploy zip-strategy --zip strategy.zip --entry-script main.py --tier m

--code--zip 只能擇一使用。Inline 程式碼上限為 256 KiB;zip 壓縮檔上限為 5 MiB,解壓後上限為 50 MiB,最多 100 個檔案。

可用選項:

名稱 描述 預設
--code 要部署的單一 Python 策略檔 None
--zip 要部署的 zip 壓縮檔,適合多檔案策略 None
--entry-script zip 內的 Python 進入點,例如 main.py;使用 --zip 時必填 None
--time 每日自動執行時間,格式為 HH:MM;省略時保留既有排程 None
--tier 執行規格,可用 smlxl,依方案權限限制 帳號預設
--contest 將策略加入參賽;只有排程執行會被納入參賽計算 None
--no-contest 將策略退出參賽;後端目前不支援退出後重新加入 None
--contest-alias 公開排行榜顯示名稱,最長 64 個字元 None

參賽策略需要在排程執行時產生並上傳回測報告,例如使用 sim(..., upload=True)。手動執行 cloud run 不會納入參賽計算。

手動執行

立即觸發一次執行。策略必須已部署;同一策略的手動觸發限制為每小時 5 次。

python -m finlab cloud run my-strategy

也可以只針對這次手動執行覆寫規格:

python -m finlab cloud run my-strategy --tier m

查看執行紀錄

查看策略近期執行紀錄,包含狀態、執行時間和費用。狀態可能為 queuedrunningsuccesserrortimeoutquota_exceeded

python -m finlab cloud logs my-strategy

限制列出的紀錄數量,並顯示後端保留的 stdoutstderr 和錯誤訊息:

python -m finlab cloud logs my-strategy --limit 5 --show-output

設定每日排程

設定每日自動執行時間:

python -m finlab cloud schedule set my-strategy 14:30

移除每日排程:

python -m finlab cloud schedule delete my-strategy

查看本月額度

查看本月雲端執行使用量、允許使用的 tier 和執行次數:

python -m finlab cloud status

查詢指定月份:

python -m finlab cloud status --month 2026-04

刪除策略

刪除策略、中繼資料、程式碼和排程。執行紀錄會保留。

python -m finlab cloud delete my-strategy

略過刪除確認提示:

python -m finlab cloud delete my-strategy -y