用 yfinance 抓取台股日線資料,快速計算量、價、均線、RSI、乖離率等量化指標,並依條件自動分類,協助從大批股票中篩出候選標的。
pip install yfinance pandas腳本內建 13 檔預設股票,直接執行即可:
python 台股yfinance篩選.pypython 台股yfinance篩選.py --tickers "3189.TW,2454.TW,6187.TWO"支援純文字(一行一代號)或 CSV(自動偵測 ticker 欄或取第一欄):
python 台股yfinance篩選.py --input 台股清單範例.txt# 5 日均量 > 5000 張、5 日漲幅 > 10%
python 台股yfinance篩選.py --min-volume-lots 5000 --min-return-5d 10python 台股yfinance篩選.py --output 輸出/我的篩選結果.csv| 參數 | 預設值 | 說明 |
|---|---|---|
--tickers |
內建清單 | 逗號分隔的股票代號 |
--input |
無 | 股票清單檔案路徑(.txt 或 .csv) |
--period |
3mo |
yfinance 下載區間(3mo、6mo、1y 等) |
--default-market |
TW |
純數字代號自動加的後綴(TW=上市、TWO=上櫃) |
--min-volume-lots |
10000 |
最小 5 日均量(約張) |
--min-return-5d |
10 |
最小 5 日漲幅(%) |
--output |
自動產生 | CSV 輸出路徑 |
| 市場 | 格式 | 範例 |
|---|---|---|
| 上市(TWSE) | 代號.TW |
2330.TW、2454.TW |
| 上櫃(TPEX) | 代號.TWO |
6187.TWO、6167.TWO |
| 純數字 | 自動加後綴 | 3189 → 3189.TW(由 --default-market 決定) |
CSV 以 utf-8-sig 編碼(Excel 可直接開啟),主要欄位:
| 欄位 | 說明 |
|---|---|
ticker |
股票代號 |
date |
最新交易日 |
close |
收盤價 |
daily_return_pct |
日漲跌幅(%) |
return_5d_pct |
5 日漲跌幅(%) |
return_10d_pct |
10 日漲跌幅(%) |
return_20d_pct |
20 日漲跌幅(%) |
volume_lots |
最新成交量(約張) |
avg_volume_5d_lots |
5 日均量(約張) |
avg_volume_20d_lots |
20 日均量(約張) |
volume_ratio_5d_vs_20d |
5 日 / 20 日量比 |
ma5 / ma10 / ma20 / ma60 |
移動平均線 |
above_ma5 / above_ma20 |
是否站上均線 |
rsi14 |
14 日 RSI |
distance_ma20_pct |
距 20 日線乖離率(%) |
distance_from_20d_high_pct |
距 20 日高點幅度(%) |
is_20d_high |
是否為 20 日新高 |
category |
分類(見下表) |
成交量單位為
volume / 1000,約等於台股「張」數,僅供篩選參考,可能與證交所公告略有差異。
依量、漲幅、均線、RSI、乖離綜合判斷,由上而下命中:
| 分類 | 條件 | 建議 |
|---|---|---|
too_hot_or_pullback_only |
RSI≥75 或 乖離≥20% 或 5日漲幅≥25%,且量足、漲幅達標 | 過熱,等拉回,不宜追價 |
momentum_candidate |
量足、漲幅達標、站上 MA5+MA20 | 動能股,可進一步深入分析 |
pullback_watch |
漲幅為正、站上 MA20 | 有動能但不強,偏向等拉回 |
track_only |
其餘 | 條件不足,先追蹤 |
- 大量篩選:用本工具跑完清單,取得分類結果。
- 挑出候選:關注
momentum_candidate與pullback_watch。 - 深入分析:將候選代號帶入其他分析工具,補上題材、基本面、籌碼面等 yfinance 沒有的資訊。
- yfinance 台股資料可能有延遲或缺漏。
- 單一股票抓取失敗會跳過(印出
Skip),不影響整批結果。 - 若未指定
--output,CSV 預設寫至C:/台錢/工具/輸出/(腳本會自動建目錄)。
本專案供個人投資篩選參考使用,不構成任何投資建議。