懶惰之最|GitHub 實測

想自己用 Python 算 KD、MACD?stockstats 實測:欄位名稱一取就有

📌 數據僅限本工具現階段參考用。本文只示範工具怎麼安裝、設定、執行,不是投資建議,也不推薦任何股票。

重點摘要

  • stockstats 0.6.10 在全新虛擬環境連同建環境用 pip 安裝約 8 秒。
  • 讀入證交所 2330 九至十一月共 43 天(最後一天 2026-11-05),用欄位名稱直接取得 5 日均線、KD、MACD。
  • 5 日均線與 pandas 的 rolling 平均 39 筆全部相符;KD(9)的 K 值與手寫公式 43 筆最大差異 0.0000。
  • 20 日均線前幾天不足 20 天也會給數字;打錯欄位名稱只跳出 UserWarning。
  • 結論: 想快速算常見指標的人,用欄位名稱一取就有,但前幾天的數字不是完整窗口。
  • 適合: 想用 Python 算均線、KD、MACD 又不想從頭寫公式的人
  • 不適合: 需要即時報價、分鐘線或大量資料效能數據的人(本次未測)
實測項目 結果
安裝時間 約 8 秒
讀入天數(2330,9/1~11/5) 43
5 日均線與 pandas 比對 39 筆相符
KD 的 K 值與手寫公式 43 筆相符、最大差異 0.0000
打錯欄位名稱 UserWarning

看盤軟體上有 KD、MACD、均線,想自己用 Python 算一遍,卻發現每個指標的公式都要寫一大串,還要處理前幾天資料不夠的問題。有沒有一個套件,讓你直接用欄位名稱就拿到指標?算出來的數字,跟自己照公式算的又一不一樣?這篇用 stockstats 實際跑一遍。測試設備:Mac mini M4 Pro(12 核、64GB)。本文示範資料是證交所公開資料(2330 九月到十一月),資料日期到 2026-11-05(最近一個交易日)。

下載

stockstats 是開源的 Python 套件(BSD 授權),建在 pandas 上。我測的是 0.6.10,用 Python 3.12,在全新的虛擬環境裡連同建立環境一起安裝約 8 秒(pandas 3.1.1、numpy 2.5.4)。

python3 -m venv v && v/bin/pip install stockstats

設定

套件本身不抓資料,要自己準備一份有 open、high、low、close、volume 欄位的日資料。我照讀者自己也拿得到的方式,向證交所公開的日成交資訊(STOCK_DAY)取得 2330 九、十、十一月三個月,共 43 天,存成 2330.csv。證交所的日期是民國年,要先換成西元;數字帶千分位逗號,要先去掉。示範代號 2330 只是輸入示範。

curl -s "https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20261101&stockNo=2330"

跑起來

用 wrap 把 pandas 資料表包起來,之後直接用欄位名稱取指標:

import pandas as pd
from stockstats import wrap
df = wrap(pd.read_csv('2330.csv', index_col='date'))
cols = ['close', 'close_5_sma', 'kdjk', 'kdjd', 'macd', 'macds']
df[cols]
print(df[cols].tail(5).round(2).to_string())

讀入 2330 日資料並取指標欄位

欄位名稱就是指標名稱加參數,例如 close_5_sma 是收盤價的 5 日均線,kdjk、kdjd 是 KD 的 K 與 D,macd、macds 是 MACD 與訊號線。實測讀入 43 天,最後一天是 2026-11-05。

算出來的數字對不對?

我另外自己寫了一遍來比對:5 日均線用 pandas 的 rolling(5).mean();KD 用常見的算法(9 日的最高最低算出 RSV,K 與 D 各以 2/3 加 1/3 平滑,起始值 50)。

項目 結果
5 日均線,stockstats 與 pandas 39 筆全部相符(前 4 天不足 5 天,無值)
KD(9)的 K 值,與手寫公式 43 筆全部在 0.01 內,最大差異 0.0000
最後一天 K 值 stockstats 11.08、手寫 11.08

自己照公式算一遍

這次只驗了 5 日均線與 KD 的 K 值;MACD 與其他指標我沒有逐筆驗證,使用前建議照同樣方式抽查。

常見問題

結論

想快速算常見指標、又不想自己從頭寫公式,stockstats 用欄位名稱就能取:安裝約 8 秒,5 日均線與 KD 的 K 值跟自己照公式算的逐筆一致。要留意的是前幾天不足窗口時的數字不是完整窗口,打錯欄名只會跳警告。

測試設備:Mac mini M4 Pro(12 核、64GB)。內容依實際執行結果撰寫,數據為撰寫當時的實測值。

← 金融工具區|所有實測