台股量化回測平台

用人話寫策略
用數據驗證績效

Quantech 提供完整的台股量化回測系統——從因子選股、策略撰寫到歷史回測, 一站式計算 CAGR、最大回撤、夏普比率等關鍵績效指標。

backtest_demo.py
# 定義策略 → 執行回測 → 取得績效
from quantech.backtest import sim
from quantech.strategy import MACrossover

# 產生持股部位 (Position DataFrame)
strategy = MACrossover(short=5, long=20)
position = strategy.generate_position()

# 一行啟動回測
report = sim(position, stop_loss=0.1, take_profit=0.3)

print(f"CAGR: {report.cagr:.1%}")        # → CAGR: 18.7%
print(f"Max Drawdown: {report.mdd:.1%}") # → Max Drawdown: -12.3%
print(f"Sharpe: {report.sharpe:.2f}")    # → Sharpe: 1.42
1,800+
上市櫃股票涵蓋
10 年
歷史資料回測
50+
內建技術因子
<3s
單次回測速度

專為台股回測打造

從策略開發到績效驗證,提供完整的量化回測工具鏈

Position DataFrame 格式

採用與 FinLab 對齊的持股部位格式,index 為日期、columns 為股票代號、values 為持股權重。直覺且強大。

一行啟動回測

透過 sim() 函式一行觸發完整回測流程,包含停損停利、輪動策略、績效指標計算。

完整績效指標

自動計算 CAGR、最大回撤 (MDD)、夏普比率、勝率、MAE/MFE 等專業回測指標,支援 JSON 匯出。

多源資料整合

整合證交所、櫃買中心、期交所爬蟲,支援 FinLab API 與 FinMind API 雙資料源,還原除權息後的調整股價。

策略模板系統

內建均線交叉、動量策略、價值因子等模板。支援技術面、基本面、籌碼面因子組合,快速驗證投資假說。

互動式績效報表

權益曲線、回撤圖、K 線圖、因子熱力圖。支援 Web 儀表板即時檢視,報表可匯出 JSON 或渲染 HTML。

回測引擎核心架構

以 Position DataFrame 為核心的回測流程,簡潔而強大

回測執行流程

1

策略產生 Position

透過因子引擎與訊號產生器,建構 Position DataFrame:日期 x 股票 → 權重矩陣

2

sim() 模擬交易

逐日模擬進出場,計算持股損益。支援收盤價 / 開盤價成交模式。

3

停損停利檢查

每日檢查個股 PnL 是否觸發 stop_loss / take_profit 門檻,自動執行出場。

4

績效指標計算

計算 CAGR、MDD、Sharpe Ratio、Win Rate、MAE/MFE,生成完整回測報告。

5

報告輸出

輸出 BacktestReport 物件,支援 display() 渲染 HTML、to_json() 匯出資料、推送至 Web 儀表板。

Position DataFrame 格式

position_format.py
# Position DataFrame — 回測引擎的核心輸入
# index: 交易日期 (DatetimeIndex)
# columns: 股票代號
# values: 持股權重 (0~1)

            2330   2454   2603
2024-01-02  0.3    0.3    0.4
2024-01-03  0.3    0.3    0.4
2024-01-15  0.5    0.5    0.0
#                               ↑ 換股:賣出 2603

績效指標一覽

年化報酬率
CAGR
Compound Annual Growth Rate
最大回撤
MDD
Maximum Drawdown
夏普比率
Sharpe
Risk-Adjusted Return
勝率
Win%
Profitable Trade Ratio

回測 API 端點

POST
/api/backtest

觸發回測任務(非同步)

GET
/api/backtest/{id}

取得回測結果

GET
/api/backtest/{id}/trades

取得交易明細

GET
/api/backtest/{id}/report

取得完整績效報表(JSON)

六層系統架構

前後端分離、模組化設計,從資料工程到自動化交易的完整解決方案

Layer 1

Frontend — Bun + Astro

SSR/SSG 報表儀表板、策略展示、互動式圖表

Layer 2

API Gateway — FastAPI

RESTful API — 資料查詢、回測觸發、結果回傳、Swagger 文件

Layer 3 — 核心

Backtest Engine — sim()

回測核心邏輯 — 停損停利、輪動、績效指標 (CAGR / MDD / Sharpe / Win Rate)

Layer 4

Strategy Layer — 因子引擎

因子引擎、訊號產生器、Position Builder — 技術面 / 基本面 / 籌碼面

Layer 5

Data Layer — ETL Pipeline

爬蟲 (TWSE / TPEx / TAIFEX) + FinLab API + FinMind API → 清洗 → 儲存

Layer 6

Infrastructure

Docker / GCP Cloud Run / PostgreSQL / Redis / RabbitMQ / GitHub Actions CI/CD

技術棧

精選現代化工具鏈,兼顧開發效率與系統效能

Backend

  • Python 3.11+ / uv
  • FastAPI + Swagger
  • Pandas / NumPy
  • 自建 quantech-backtest
  • pytest + ATDD

Frontend

  • Bun Runtime
  • Astro SSR/SSG
  • Vue 3 Islands
  • Plotly.js / Lightweight Charts
  • Tailwind CSS

Infrastructure

  • Docker + Compose
  • PostgreSQL / Redis
  • RabbitMQ + Celery
  • GCP Cloud Run
  • GitHub Actions CI/CD

準備好開始量化回測了嗎?

用 Python 撰寫你的第一個策略,讓數據告訴你答案。

# 快速開始
$ pip install quantech-backtest
$ quantech init my-strategy
$ quantech backtest run
查看 GitHub