精華筆記

· @aihub.tw

AI 量化交易

量化交易真相:先潑冷水再上路

量化交易真相:先潑冷水再上路

你決定學量化交易,心裡大概有個畫面:寫好策略、讓電腦自動下單,每天起床看帳戶多了幾個百分比。這個畫面並不完全是謊言——量化交易確實存在,也確實有人靠它穩定獲利。但那個「有人」,指的通常是頂尖對沖基金配置了整層 IT 基礎設施的量化團隊,而不是在個人筆電上跑 Python 腳本的散戶。

2025 年 8 月的調查顯示,84% 的加密幣散戶在第一年虧損,其中 58% 幾乎賠光本金。量化策略不是解藥——它多了一層「過擬合」的風險,讓你在回測時信心滿滿,一上實盤就原形畢露。這堂課就是那杯冷水:把真相搞清楚、把期待校正好,你才能帶著正確的姿勢進入後面七堂課。

風險警語 量化交易涉及真實財務損失風險。本課程全程使用 freqtrade 模擬盤(dry-run)教學,所有範例均不構成投資建議,也不保證策略在實際市場中的獲利能力。加密幣市場 24 小時運作、波動劇烈,策略隨時可能失效。請在充分理解風險後自行判斷是否進行任何實際交易,損益自負。
這堂課適合誰 適合:會 Python 基礎(能看懂函式定義、list comprehension、能跑 pip install)、對交易或金融資料有興趣的工程師。本課程屬工程師專區。需要基礎:Python 3.11+、pip 基本操作;不需要金融背景。前置課:這是第 1 課,直接開始。

這堂學什麼

  • 量化交易是什麼、不是什麼——把「自動賺錢機器」的幻覺打掉
  • 散戶對機構的結構性劣勢:你輸在哪裡、能彌補哪些
  • 統計現實:大多數人虧錢,而且原因通常不是「策略不夠聰明」
  • 用 Python 計算手續費對打平勝率的真實影響,看完會讓你重新審視所有漂亮的回測數字
  • AI(LLM)在量化系統的正確位置,以及業界共識的禁區
  • 本課程路線圖:八堂課從觀念到模擬盤上線的完整脈絡

量化交易是什麼?先拆穿三個常見誤解

「量化交易」這四個字被過度浪漫化了。先下一個工程定義:量化交易是把投資決策轉換成可測試、可回測、可自動執行的規則集合。注意這個定義裡沒有「賺錢」這兩個字——它描述的是方法論,不是結果保證。

誤解一:量化 = 自動印鈔

真相是,大多數散戶量化策略在交易成本面前就已經虧損了。手續費、滑價(slippage)、點差加在一起,很輕易就把紙面上的正期望值策略吃掉。後面實戰步驟會直接用 Python 算給你看。

誤解二:AI 可以預測市場

市場是對手盤的博弈場——每一個可以被 AI 發現的規律,一旦足夠多人知道,套利行為就會讓這個規律消失。LLM 在量化的角色是輔助:情緒分析、市場環境(regime)分類、策略研發加速,而不是「預測下一分鐘漲跌」的神器。讓 LLM 直接下單,是業界的共識禁區。

誤解三:好的策略只要找到就能一直用

市場環境不斷演化。一個在 2021 年牛市有效的動量策略,2022 年熊市可能直接讓你爆倉。量化交易需要持續監控、定期重新評估,比起「找到聖杯」,更接近「維護一台需要定期保養的機器」。

量化交易三大誤解破解對照圖

散戶對機構:誠實的劣勢分析

先說好消息:散戶做量化不是完全沒有勝算。壞消息是,你必須知道自己輸在哪裡才能繞開。

維度 頂尖機構量化 散戶量化現實
延遲 共置伺服器,微秒級 家用網路 / 雲端,毫秒~秒
資料 自購 Level 2 訂單簿、另類資料 交易所公開 API(免費但有限制)
算力 GPU 叢集、專屬 FPGA 個人電腦 / 便宜雲端
手續費 月交易量 VIP 費率(往往低於 0.02%) 散戶費率(0.05%~0.1%+)
監管 合法持牌、有法律護城河 台灣現行法規灰色地帶
人力 數十人研究團隊輪班 下班後兼差、週末 debug

散戶 vs 機構劣勢對比圖

這張表的重點不是要你放棄——而是要你避開機構必然碾壓你的戰場。高頻交易?別想了,這是延遲的遊戲,散戶沒有勝算。中低頻策略(每天幾筆到幾十筆)?有機會。長線趨勢跟隨?有機會。利用機構顧忌的小流動性幣種?有機會,但也帶著相應的流動性風險。

找到散戶能贏的戰場,比試圖全面競爭更實際。這整個課程的策略設計都圍繞著這個原則。

統計現實:大多數人都虧錢

數字先說清楚:84% 的加密幣散戶第一年虧損;長期來看,7090% 的散戶交易者最終虧損;只有 14% 的日內交易者能長期獲利。這些數字在量化策略使用者身上不會更好看。

量化策略虧損解剖圖

原因通常不是「策略不夠聰明」:

  1. 交易成本侵蝕:手續費加滑價,往往讓策略的真實損益比回測差一個等級。後面實戰部分會直接算出你需要多少勝率才能打平
  2. 過擬合(overfitting):策略其實是「記住了歷史資料的雜訊」而非學到真實規律,在新資料上直接崩潰。第 3 課深入討論
  3. 人工干預實盤:策略說賣,人說「再等等」;策略連虧三筆,人把電腦關掉——量化的紀律優勢被自己手動破壞
  4. 市場環境切換:趨勢策略在震盪市大虧,均值回歸策略在趨勢市大虧。很多人在環境切換後很久才意識到策略已經失效

AI 在量化的正確位置

這個課程叫「AI 量化交易」,所以必須說清楚 AI 能做什麼、不能做什麼。業界 2026 年的共識是:LLM 放在訊號層,絕對不放執行層

AI 量化系統分層架構圖

LLM 能做的事(訊號層):

  • 情緒分析:掃描社群媒體、財經新聞,生成情緒分數作為策略的一個輸入特徵
  • 市場環境分類(Regime Detection):請 LLM 描述當前市場狀態(趨勢 / 震盪 / 高波動),作為策略切換的條件判斷
  • 策略研發輔助:用 LLM 幫你寫 freqtrade 策略程式碼草稿、解釋回測報告的指標意義、提供調參建議

LLM 絕對不能碰(執行層):

  • 直接呼叫交易所 API 下單
  • 決定實際倉位大小
  • 任何會產生真實財務後果的動作

為什麼這麼嚴格?因為 LLM 會產生幻覺(hallucination)、輸出不穩定、沒有一致的風控框架。一個有幻覺的 LLM 如果被允許下單,可能在幾分鐘內做出讓你爆倉的決定。多 agent 交易系統目前屬於學術實驗階段,不適合有真實資金的環境。第 5 課會展示 LLM 訊號整合的正確做法。

法律與稅務:你必須意識到的基本線

台灣對加密幣交易的稅務規範持續演進,以下是幾個必須知道的基本事實:

  • 所得稅:加密幣交易獲利目前適用財產交易所得,計入個人綜合所得稅。自動化策略不改變稅務義務——系統幫你賺的錢一樣要申報
  • 外匯申報:使用境外交易所(如 Binance 全球版)涉及外匯申報規定,大額資金進出須注意申報門檻
  • 法律灰色地帶:在台灣以量化策略為他人管理資產,可能涉及未經許可從事投資顧問業務,即使免費也一樣
  • 本課程立場:所有實作均在個人模擬帳戶進行。稅務與法律問題請諮詢專業律師或會計師,本課程不在此範疇提供建議

課程路線圖

這八堂課的邏輯是:先搞懂資料 → 建策略 → 回測 → 加 AI 訊號 → 上模擬盤。每一堂都是下一堂的前置,不建議跳著學。

主題 核心產出
1(本課) 真相與期待校正 認知框架 + 開發環境
2 行情資料的取得與清洗 乾淨的 OHLCV 資料集
3 均線、動量與過擬合陷阱 第一個有自我批判意識的策略
4 freqtrade 回測實戰 跑得起來的完整回測報告
5 AI 的正確位置:訊號層 LLM 情緒分數整合進策略
6 風控:活下來比賺錢重要 倉位計算與停損機制
7 模擬盤到實盤的最小可行上線 完整模擬盤部署
8 綜合實戰覆盤 從想法到模擬盤的完整 pipeline

手把手實戰

這堂課的實戰目標有兩個:把 freqtrade 環境裝好(後面七堂課都要用),以及用 Python 算出「你的策略要贏幾成才能打平交易成本」。第二個計算的結果,會讓你重新審視所有看起來很漂亮的回測報告。

確認並設定 Python 環境

開終端機確認版本:

python --version
# 需要 3.11 以上,freqtrade 對更舊版本的支援有限

pip --version
# 確認 pip 存在

建議用 venv 建立獨立環境,避免和其他專案的套件衝突:

# 建立並啟用 venv
python -m venv freqtrade-env
source freqtrade-env/bin/activate      # macOS / Linux
# Windows: freqtrade-env\Scripts\activate

# 確認進入 venv(提示符前面會出現 (freqtrade-env))
which python    # 應該指向 venv 內的路徑,不是系統路徑

安裝 freqtrade

freqtrade 是本課程的核心工具:免費開源、支援主要交易所、內建回測 / 繪圖 / 資金管理 / Telegram 控制。目前版本為 2026.x(每月發行新版)。

pip install freqtrade
# 會拉 TA-Lib、pandas、numpy 等相依套件,需要幾分鐘

freqtrade --version
# 確認安裝成功,應顯示 2026.x

如果看到 error: command 'gcc' failed,代表缺少 C 編譯器:

# macOS
xcode-select --install

# Ubuntu / Debian
sudo apt-get install build-essential

安裝好後初始化工作目錄:

freqtrade create-userdir --userdir user_data
# 建立 user_data/strategies/、user_data/data/、user_data/logs/ 等資料夾結構

用 Python 計算手續費的真實影響

這是這堂課最重要的一段程式碼。複製到你的 Python 環境跑一遍,數字會讓你印象深刻:

def breakeven_winrate(profit_pct: float, loss_pct: float, fee_rate: float) -> float:
    """
    計算策略打平所需的最低勝率。

    假設:每筆獲利 profit_pct,每筆虧損 loss_pct,
    手續費雙邊(買入 + 賣出)合計 fee_rate * 2。

    推導:
      win * (profit - 2*fee) - (1 - win) * (loss + 2*fee) = 0
      → win = (loss + 2*fee) / (profit + loss)
    """
    total_fee = fee_rate * 2  # 一買一賣,兩次手續費
    net_profit = profit_pct - total_fee
    net_loss = loss_pct + total_fee
    if net_profit <= 0:
        return float('inf')  # 費用比獲利還高,無論如何都虧
    return net_loss / (net_profit + net_loss)


# 常見交易場景(假設:每筆預期獲利 2%,每筆預期虧損 1%)
scenarios = [
    ("幣安合約 maker  (0.02%)",      0.02, 0.01, 0.0002),
    ("幣安合約 taker  (0.05%)",      0.02, 0.01, 0.0005),
    ("幣安現貨       (0.10%)",       0.02, 0.01, 0.001),
    ("台灣期貨(估算  0.20%)",        0.02, 0.01, 0.002),
    ("現貨 + 0.1% 滑價",             0.02, 0.01, 0.002),
]

print(f"{'場景':<32} {'打平需勝率':>10}")
print("-" * 44)
for name, profit, loss, fee in scenarios:
    wr = breakeven_winrate(profit, loss, fee)
    print(f"{name:<32} {wr:>10.1%}")

預期輸出:

場景                             打平需勝率
--------------------------------------------
幣安合約 maker  (0.02%)              34.7%
幣安合約 taker  (0.05%)              36.7%
幣安現貨       (0.10%)               40.0%
台灣期貨(估算  0.20%)                46.7%
現貨 + 0.1% 滑價                     46.7%

各交易場景打平所需最低勝率長條圖

重點在最後兩列:同樣是 0.1% 成本量級,現貨手續費對應 40% 打平勝率,一旦再疊上 0.1% 滑價,打平勝率就跳到將近 47%。實際上「流動性差的幣對」或「下單量較大時」,滑價遠不止 0.1%。把這個數字記起來——後面每次看到漂亮的回測報告,先問自己:「這份報告有沒有把滑價算進去?」

建立 freqtrade 設定檔,確認 dry-run 模式

dry-run 是 freqtrade 的「模擬交易」模式:策略照跑、訊號照產生、假帳戶照扣,但不碰真實資金。整個課程你都在這個模式下操作。

# 互動式建立設定檔
freqtrade new-config --config user_data/config.json

照提示回答,重點設定:

? Do you want to enable Dry-run (simulated trading)?  → Yes   ← 一定要 Yes
? Please insert your stake currency:                  → USDT
? Please insert your stake amount:                    → 100
? What is your exchange?                              → binance
? Do you want to enable Telegram?                     → No    (第 7 課再設定)

完成後打開 user_data/config.json,確認這兩個欄位:

"dry_run": true,
"dry_run_wallet": 1000

dry_run_wallet 是假錢包的初始 USDT,設 1000 即可。在確認 "dry_run": true 之前,不要繼續任何涉及交易所連線的步驟。這不是客套話——後面課程如果你配置錯誤,dry_run: false 加上真實 API 金鑰會產生真實下單。

常見坑

坑 1:ModuleNotFoundError: No module named 'freqtrade'

安裝明明成功了,執行時卻找不到模組。九成是 venv 沒有啟動——你把 freqtrade 裝在 venv 裡,但執行時用的是系統 Python。確認提示符有 (freqtrade-env) 前綴;沒有就跑 source freqtrade-env/bin/activate 再試。在 VS Code 裡還有一個陷阱:右下角的 Python 直譯器要手動切換成 venv 路徑,否則終端機和編輯器用的是不同 Python 環境。

坑 2:安裝時 TA-Lib 編譯失敗

error: command 'gcc' failed: No such file or directory
RuntimeError: TA-Lib cannot be installed: No module named 'TA_Lib'

TA-Lib 是技術指標函式庫,需要 C 底層編譯。macOS 解法:

brew install ta-lib   # 先裝 C library
pip install TA-Lib    # 再裝 Python wrapper

Ubuntu/Debian:

sudo apt-get install -y libta-lib-dev
pip install TA-Lib

Windows 最麻煩,建議直接用 WSL2,或改用 Docker 版省去所有編譯問題:

docker run --rm freqtradeorg/freqtrade:stable freqtrade --version

坑 3:把回測的勝率當作實盤的勝率

回測結果顯示策略勝率 65%、年化報酬 80%——這個數字是在「以精確的歷史收盤價成交」的完美條件下計算的。實盤有三個成本回測預設忽略:滑價(你的下單不會剛好在 K 棒收盤價成交)、未成交率(限價單在快速行情中可能掛不到)、以及訊號到下單之間的時間延遲。

freqtrade 的 --slippage 回測參數可以修正部分問題,第 4 課會完整說明。今天先記住這個原則:看到漂亮回測數字,先對折

坑 4:讓 LLM 直接控制下單

GitHub 上有不少「GPT 自動交易機器人」的 repo,其中 LLM 直接呼叫交易所 API 下單。請不要照做。LLM 的幻覺在生成文字時是小問題,在財務執行上是災難性的——它可能把「賣出 0.01 BTC」解讀成「賣出 0.1 BTC」,或在你沒有預期的條件下觸發交易。2025 年 10 月 10 日的加密幣史上最大單日強平事件,24 小時內超過 190 億美元的槓桿倉位被強制平倉、約 160 萬個交易帳戶遭清算,其中不乏跑著「測試中」自動策略的散戶。

正確做法:LLM 只生成「建議分數」或「市場標注」,最終進出場決策由你設計的規則引擎執行。第 5 課有完整的整合範例。

作業

  1. 安裝 freqtrade,跑完上面的「打平勝率計算」程式碼,把輸出截圖存下來。對照你預期策略的勝率目標,問自己:「我設定的目標勝率有沒有超過打平門檻?超過多少?」
  2. 思考題:你過去有沒有做過任何投資決策(不限量化、不限加密幣)?試著把其中一個決策拆解成三個部分——進場條件、出場條件、倉位大小——寫在筆記本上。如果某個部分你回答不出來,那就是你之前在憑直覺交易的地方。這個練習是第 3 課「把直覺轉換成可測試規則」的前置。
  3. 花 10 分鐘掃過 freqtrade.io 的主選單,對整體功能有個印象。不需要全懂,第 2 課會用到其中的資料下載指令。
  4. 選做:找一份你在網路上看過的「回測截圖」,嘗試辨別:它有沒有扣手續費?有沒有說明回測的時間區間?時間區間是牛市還是熊市?

下一課預告

你已經有了清醒的認知和乾淨的開發環境。第 2 課:行情資料的取得與清洗

光是「拿到資料」就有很多坑:免費 API 的速率限制、不同交易所的 OHLCV 格式差異、缺漏蠟燭(missing candles)如何讓你的回測靜悄悄地出錯。第 2 課會用 freqtrade 內建的資料下載工具繞過大部分陷阱,讓你拿到一份回測可以信任的乾淨資料集——這是後面所有課程的地基。

再次提醒 量化交易不是致富捷徑,也不是穩定收入的保證。本課程所有範例均在 freqtrade dry-run 模擬環境中執行,不涉及真實資金,也不構成任何形式的投資建議。任何基於本課程內容進行的實際交易決策,風險與損益由操作者自行承擔。加密幣市場監管環境持續變動,實際操作前請確認你所在地區的法規要求。

#AI 量化交易#量化交易#新手#風險管理#freqtrade

← 回所有文章