ta-lib 技術指標完整指南

ta-lib 是 C 語言編寫的技術分析庫,Python wrapper 提供 200+ 指標。 安裝:pip install ta-lib(需先裝 C 語言底層 libta-lib)


1. Overlap Studies(均線重疊指標)

計算價格均線,用於判斷趨勢方向與支撐/阻力位。

指標全名用途
SMASimple Moving Average簡單移動平均線,最基礎的趨勢指標
EMAExponential Moving Average指數移動平均,對近期價格更敏感
WMAWeighted Moving Average加權移動平均,線性加權近期數據
DEMADouble Exponential MA雙倍指數移動平均,減少 SMA 滯後
TEMATriple Exponential MA三倍指數移動平均,更平滑且滯後更低
T3Triple Exponential MA (T3)T3 自適應均線,可調平滑係數
KAMAKaufman Adaptive MA自適應均線,根據市場波動自動調整速度
MAMAMESA Adaptive MAMESA 自適應均線,基於 Hilbert Transform
TRIMATriangular MA三角形移動平均(SMA 的 SMA)
MAMoving Average通用移動平均(可選擇類型)
MAVPMoving Average with Variable Period可變週期移動平均
MIDPOINTMidPoint over period週期內最高最低的中點
MIDPRICEMidpoint Price over period週期內最高最低價的平均
BBANDSBollinger Bands布林通道:中線(SMA) + 上下 2σ 軌道
SARParabolic SAR拋物線 SAR,用於停損與反轉判斷
SAREXTParabolic SAR Extended擴展版 SAR,支援更多參數
HT_TRENDLINEHilbert Transform TrendlineHilbert 轉換即時趨勢線

2. Momentum Indicators(動量指標)

衡量價格變動的速度與力度,用於判斷超買超賣與趨勢反轉。

指標全名用途
RSIRelative Strength Index相對強弱指數(0-100),>70 超買、<30 超賣
MACDMoving Average Convergence/DivergenceMACD = EMA12 - EMA26,Signal = EMA9(MACD)
MACDEXTMACD with controllable MA type可自選 MACD 的 MA 類型
MACDFIXMACD Fix 12/26固定 12/26 參數的 MACD
MOMMomentum動量 = close[t] - close[t-n]
ROCRate of Change變動率 = (close[t] - close[t-n]) / close[t-n] × 100
ROCPRate of Change Percentage變動率百分比(小數形式)
ROCRRate of Change Ratio變動比率 = close[t] / close[t-n]
ROCR100Rate of Change Ratio 100變動比率 × 100(如 RSI 格式)
PPOPercentage Price Oscillator價格震盪百分比 = (EMA_short - EMA_long) / EMA_long × 100
APOAbsolute Price Oscillator絕對價格震盪 = EMA_short - EMA_long
TRIX1-day Rate-Of-Change of Triple Smooth EMA三重平滑 EMA 的變動率,過濾短期噪音
CCICommodity Channel Index商品通道指數,判斷超買超賣與趨勢強度
CMOChande Momentum OscillatorChande 動量震盪(-100 到 +100)
DXDirectional Movement Index方向性運動指數,衡量趨勢強度
ADXAverage Directional Movement IndexADX 的移動平均,趨勢強度指標
ADXRAverage Directional Movement Index RatingADX 的平滑版
MINUS_DIMinus Directional Indicator負方向指標(-DI)
PLUS_DIPlus Directional Indicator正方向指標(+DI)
MINUS_DMMinus Directional Movement負方向運動
PLUS_DMPlus Directional Movement正方向運動
AROONAroon顯示趨勢強度與方向(Aroon Up/Down)
AROONOSCAroon OscillatorAroon 震盪 = AroonUp - AroonDown
BOPBalance Of Power力量平衡 = (close - open) / (high - low)
MFIMoney Flow Index資金流量指數(含成交量,類似 RSI 但加權成交量)
STOCHStochastic隨機指標 %K/%D,判斷超買超賣
STOCHFStochastic Fast快速隨機指標(較少平滑)
STOCHRSIStochastic RSIRSI 的隨機振盪,更敏感
ULTOSCUltimate Oscillator終極震盪(加權三個不同週期的動量)
WILLRWilliams %R威廉指標(-100 到 0),超買超賣

3. Volume Indicators(成交量指標)

結合價格與成交量,確認趨勢可靠性。

指標全名用途
OBVOn Balance Volume能量潮,成交量累加判斷趨勢方向
ADChaikin A/D Line累積/派發線,量價背離判斷
ADOSCChaikin A/D OscillatorA/D 線的 MACD 式震盪
FIForce Index力量指數 = (close[t] - close[t-1]) × volume

4. Volatility Indicators(波動率指標)

衡量價格波動幅度,用於風險評估與停損。

指標全名用途
ATRAverage True Range平均真實波幅,最常用的波動率指標
NATRNormalized ATR標準化 ATR = ATR / close × 100,跨價格比較
TRANGETrue Range真實波幅 = max(high-low, |high-prev_close|, |low-prev_close|)

5. Cycle Indicators(週期指標)

識別價格的週期性波動。

指標全名用途
HT_DCPERIODHilbert Transform Dominant Cycle Period主週期長度
HT_DCPHASEHilbert Transform Dominant Cycle Phase週期的當前相位
HT_PHASORHilbert Transform Phasor ComponentsHilbert 相位分量(In-Phase / Quadrature)
HT_SINEHilbert Transform SineWaveHilbert 正弦波(Sine / LeadSine)
HT_TRENDMODEHilbert Transform Trend vs Cycle Mode趨勢模式 vs 週期模式判斷

6. Pattern Recognition(K 線形態識別)

自動識別常見的 K 線反轉與持續形態。

指標全名用途
CDL2CROWSTwo Crows兩隻烏鴉(看空反轉)
CDL3BLACKCROWSThree Black Crows三隻黑烏鴉(看空反轉)
CDL3INSIDEThree Inside Up/Down三內上升/下降(反轉)
CDL3LINESTRIKEThree-Line Strike三線打擊
CDL3OUTSIDEThree Outside Up/Down三外上升/下降
CDL3STARSINSOUTHThree Stars In The South南方三星(看多)
CDL3WHITESOLDIERSThree White Soldiers三白兵(看多)
CDLABANDONEDBABYAbandoned Baby棄嬰(反轉)
CDLADVANCEBLOCKAdvance Block推進塊(看空)
CDLBELTHOLDBelt-hold腰帶抱線
CDLBREAKAWAYBreakaway突破
CDLCLOSINGMARUBOZUClosing Marubozu收盤一字線
CDLCONCEALBABYSWALLConcealing Baby Swallow吞沒棄嬰
CDLCOUNTERATTACKCounterattack反擊
CDLDARKCLOUDCOVERDark Cloud Cover烏雲蓋頂(看空)
CDLDOJIDoji十字線(猶豫)
CDLDOJISTARDoji Star十字星(反轉)
CDLDRAGONFLYDOJIDragonfly Doji蜻蜓十字(看多反轉)
CDLENGULFINGEngulfing吞沒形態
CDLEVENINGDOJISTAREvening Doji Star黃昏十字星(看空)
CDLEVENINGSTAREvening Star黃昏星(看空反轉)
CDLGAPSIDESIDEWHITEGap Side-by-Side White並列白線(缺口)
CDLGRAVESTONEDOJIGravestone Doji墓碑十字(看空)
CDLHAMMERHammer錘子線(看多反轉)
CDLHANGINGMANHanging Man吊人線(看空反轉)
CDLHARAMIHarami母子線
CDLHARAMICROSSHarami Cross十字母子
CDLHIGHWAVEHigh-Wave高波線
CDLHIKKAKEHikkake陷阱形態
CDLHIKKAKEMODModified Hikkake改良陷阱
CDLHOMINGPIGEONHoming Pigeon歸巢鴿
CDLIDENTICAL3CROWSIdentical Three Crows三同黑烏鴉
CDLINNECKIn-Neck頸線
CDLINVERTEDHAMMERInverted Hammer倒錘(看多)
CDLKICKINGKicking踢腿線
CDLKICKINGBYLENGTHKicking By Length長踢腿
CDLLADDERBOTTOMLadder Bottom梯底(看多)
CDLLONGLEGGEDDOJILong Legged Doji長腿十字
CDLLONGLINELong Line長線
CDLMARUBOZUMarubozu一字線(強勢)
CDLMATCHINGLOWMatching Low同低
CDLMATHOLDMat Hold墊高
CDLMORNINGDOJISTARMorning Doji Star早晨十字星(看多)
CDLMORNINGSTARMorning Star早晨星(看多反轉)
CDLONNECKOn-Neck頸線
CDLPIERCINGPiercing穿刺線(看多)
CDLRICKSHAWMANRickshaw Man黃包車夫
CDLRISEFALL3METHODSRising/Falling Three Methods上升/下降三法
CDLSEPARATINGLINESSeparating Lines分離線
CDLSHOOTINGSTARShooting Star流星線(看空)
CDLSHORTLINEShort Line短線
CDLSPINNINGTOPSpinning Top紡錘線
CDLSTALLEDPATTERNStalled Pattern停滯形態
CDLSTICKSANDWICHStick Sandwich三明治
CDLTAKURITakuri探水竿
CDLTASUKIGAPTasuki Gap祐光缺口
CDLTHRUSTINGThrusting推力
CDLTRISTARTristar三星
CDLUNIQUE3RIVERUnique 3 River三河
CDLUPSIDEGAP2CROWSUpside Gap Two Crows上升缺口兩烏鴉
CDLXSIDEGAP3METHODSUpside/Downside Gap Three Methods上升/下降缺口三法

7. Statistic Functions(統計指標)

統計分析指標,用於量化價格分佈與相關性。

指標全名用途
BETABeta衡量個股與市場的相關性/敏感度
CORRELPearson Correlation皮爾森相關係數
LINEARREGLinear Regression線性回歸
LINEARREG_ANGLELinear Regression Angle回歸線角度
LINEARREG_INTERCEPTLinear Regression Intercept回歸截距
LINEARREG_SLOPELinear Regression Slope回歸斜率
STDDEVStandard Deviation標準差
TSFTime Series Forecast時間序列預測
VARVariance變異數

8. Price Transform(價格轉換)

指標全名用途
AVGPRICEAverage Price均價 = (open+high+low+close)/4
MEDPRICEMedian Price中位價 = (high+low)/2
TYPPRICETypical Price典型價 = (high+low+close)/3
WCLPRICEWeighted Close Price加權收盤 = (high+low+close+close)/4

Python 快速範例

import numpy as np
import talib
 
close = np.random.random(100)
high = np.random.random(100)
low = np.random.random(100)
volume = np.random.random(100)
 
# 均線
sma20 = talib.SMA(close, timeperiod=20)
ema12 = talib.EMA(close, timeperiod=12)
 
# 動量
rsi = talib.RSI(close, timeperiod=14)
macd, signal, hist = talib.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)
 
# 波動率
atr = talib.ATR(high, low, close, timeperiod=14)
 
# 成交量
obv = talib.OBV(close, volume)
 
# 形態識別
doji = talib.CDLDOJI(np.zeros(100), high, low, close)
hammer = talib.CDLHAMMER(np.zeros(100), high, low, close)
 
# 統計
beta = talib.BETA(close, close, timeperiod=5)

與我們系統的關聯

系統使用方式
quant-trading skill目前用自訂 scoring 因子(PE/PB/殖利率/ROE),尚未用 ta-lib
daily_stock_pick.py可加入 ta-lib 指標作為選股因子
backtest.py可用 ta-lib 指標做回測策略

未來擴充建議

  1. 安裝 ta-lib C 底層 + Python wrapper
  2. daily_stock_pick.py 加入 RSI、MACD、布林通道等因子
  3. 用 ATR 做動態停損
  4. 用 MFI 做成交量加權選股