简介
原文地址: TA-LIB document
这是一个Python的封装库,它是对技术分析库TA-LIB封装的,而且基于CPython而不是SWIG。TA-LIB首页里,是这么描述的:
TA-Lib广泛被交易软件开发者用于金融市场数据进行技术分析。
- 包含了150多个指标,包括:ADX, MACD, RSI, Stochastic, Bollinger Bands, 等.
- K线形态识别
- 完全开源,支持 C/C++, Java, Perl, Python and 100% 托管 .NET
原Python绑定使用的是SWIG,不幸的是,SWIG很难安装而且并不高效。因而,此项目使用Cython和Numpy,而且和TA-Lib的绑定很清晰 – 结果是比SWIG接口快2-4倍。
安装TA-Lib或参考中文文档
案例
类似于TA-Lib,函数接口提供了一个暴漏TA-Lib指标的轻量级封装。
每个函数都返回一个输出数组,除非指定关键字参数,否则所有参数都是默认的。通常,这些函数会有一个初步的“lookback”(在生成输出之前,一个用户观测的必选参数),设置为“NaN”。
所有的API函数的使用,都需引入库文件:
1
2
3
4
|
import numpy
import talib
close = numpy.random.random(100)
|
计算收盘价的一个简单移动平均数SMA:
1
|
output = talib.SMA(close)
|
计算布林线,三指数移动平均:
1
2
3
|
from talib import MA_Type
upper, middle, lower = talib.BBANDS(close, matype=MA_Type.T3)
|
计算收盘价的动量,时间为5:
1
|
output = talib.MOM(close, timeperiod=5)
|
抽象 API 快速入门
如果您已经熟悉使用函数API,那么您就应该很自然的使用抽象API。每个函数有相同的输入 – 作为一个包含NumPy数组的字典传参:
1
2
3
4
5
6
7
8
9
|
import numpy as np
# note that all ndarrays must be the same length!
inputs = {
'open': np.random.random(100),
'high': np.random.random(100),
'low': np.random.random(100),
'close': np.random.random(100),
'volume': np.random.random(100)
}
|
函数可以直接导入,也可以用名称实例化:
1
2
3
|
from talib import abstract
sma = abstract.SMA
sma = abstract.Function('sma')
|
调用函数基本上与函数API相同:
1
2
3
4
5
6
|
from talib.abstract import *
output = SMA(input_arrays, timeperiod=25) # SMA均线价格计算收盘价
output = SMA(input_arrays, timeperiod=25, price='open') # SMA均线价格计算收盘价
upper, middle, lower = BBANDS(input_arrays, 20, 2, 2)
slowk, slowd = STOCH(input_arrays, 5, 3, 0, 3, 0) # uses high, low, close by default
slowk, slowd = STOCH(input_arrays, 5, 3, 0, 3, 0, prices=['high', 'low', 'open'])
|
了解更多高级使用TA库 这里.
支持的指标
We can show all the TA functions supported by TA-Lib, either as a list
or
as a dict
sorted by group (e.g. “Overlap Studies”, “Momentum Indicators”,
etc):
我们可以显示Ta lib的所有TA函数, 返回一个分组排序的 list
或者 dict
(如”重叠研究”, “动量指标”等)
1
2
3
4
|
import talib
print talib.get_functions()
print talib.get_function_groups()
|
函数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
BBANDS Bollinger Bands #布林带
DEMA Double Exponential Moving Average #双指数移动平均线
EMA Exponential Moving Average #指数移动平均线
HT_TRENDLINE Hilbert Transform - Instantaneous Trendline #希尔伯特变换瞬时趋势
KAMA Kaufman Adaptive Moving Average #卡玛考夫曼自适应移动平均线
MA Moving average #移动平均线
MAMA MESA Adaptive Moving Average #MESA自适应移动平均
MAVP Moving average with variable period #变周期移动平均线
MIDPOINT MidPoint over period #周期中点
MIDPRICE Midpoint Price over period #周期中点价格
SAR Parabolic SAR #抛物线转向指标
SAREXT Parabolic SAR - Extended #抛物线转向指标 - 扩展
SMA Simple Moving Average #简单移动平均线
T3 Triple Exponential Moving Average (T3) #双指数移动均线改进指标
TEMA Triple Exponential Moving Average #三重指数移动均线指标
TRIMA Triangular Moving Average #三指数移动平均
WMA Weighted Moving Average #加权移动平均线 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
ADX Average Directional Movement Index #平均趋向指数
ADXR Average Directional Movement Index Rating #平均趋向指数评估指标
APO Absolute Price Oscillator 绝对价格震荡指标
AROON Aroon #阿隆指标
AROONOSC Aroon Oscillator #阿隆震荡指标
BOP Balance Of Power #力量均衡指标
CCI Commodity Channel Index #顺势指标
CMO Chande Momentum Oscillator #钱德动量摆动指标
DX Directional Movement Index #动向指数
MACD Moving Average Convergence/Divergence #平滑异同移动平均线
MACDEXT MACD with controllable MA type
MACDFIX Moving Average Convergence/Divergence Fix 12/26
MFI Money Flow Index #资金流量指标
MINUS_DI Minus Directional Indicator #负向指标
MINUS_DM Minus Directional Movement #负向运动指标
MOM Momentum #动量指标
PLUS_DI Plus Directional Indicator #正向指标
PLUS_DM Plus Directional Movement #正向运动指标
PPO Percentage Price Oscillator #价格震荡百分比指标
ROC Rate of change : ((price/prevPrice)-1)*100 #变动速率指标
ROCP Rate of change Percentage: (price-prevPrice)/prevPrice #变动率百分比指标
ROCR Rate of change ratio: (price/prevPrice) #变动比率指标
ROCR100 Rate of change ratio 100 scale: (price/prevPrice)*100 #百倍变动比率指标
RSI Relative Strength Index #百倍变动比率指标
STOCH Stochastic #KDJ指标中的KD指标
STOCHF Stochastic Fast #快速STOCH指标
STOCHRSI Stochastic Relative Strength Index #随机强弱指数
TRIX 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA #三重指数平滑移动均线
ULTOSC Ultimate Oscillator #终极震荡指标
WILLR Williams' %R #%R 威廉指标 |
1
2
3
|
AD Chaikin A/D Line #线随机指标
ADOSC Chaikin A/D Oscillator #佳庆指数
OBV On Balance Volume #能量潮指标 |
1
2
3
|
ATR Average True Range #平均真实波幅指标
NATR Normalized Average True Range #归一化平均真实波幅
TRANGE True Range #真实范围指标 |
1
2
3
4
|
AVGPRICE Average Price #平均价格指标
MEDPRICE Median Price #价格中间值指标
TYPPRICE Typical Price #典型价格指标
WCLPRICE Weighted Close Price #加权收盘价指标 |
1
2
3
4
5
|
HT_DCPERIOD Hilbert Transform - Dominant Cycle Period #希尔伯特变换 - 主周期
HT_DCPHASE Hilbert Transform - Dominant Cycle Phase #希尔伯特变换 - 主阶段
HT_PHASOR Hilbert Transform - Phasor Components #希尔伯特变换 - 相成分
HT_SINE Hilbert Transform - SineWave #希尔伯特变换 - 正弦波
HT_TRENDMODE Hilbert Transform - Trend vs Cycle Mode #希尔伯特变换 - 趋势与周期 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
CDL2CROWS Two Crows #两只乌鸦
CDL3BLACKCROWS Three Black Crows #三只乌鸦
CDL3INSIDE Three Inside Up/Down #三内部上涨和下跌
CDL3LINESTRIKE Three-Line Strike #三线打击
CDL3OUTSIDE Three Outside Up/Down #三外部上涨和下跌
CDL3STARSINSOUTH Three Stars In The South #南方三星
CDL3WHITESOLDIERS Three Advancing White Soldiers #三个白兵
CDLABANDONEDBABY Abandoned Baby #舍子线
CDLADVANCEBLOCK Advance Block #大敌当前
CDLBELTHOLD Belt-hold #捉腰带线
CDLBREAKAWAY Breakaway #脱离
CDLCLOSINGMARUBOZU Closing Marubozu #收盘缺影线
CDLCONCEALBABYSWALL Concealing Baby Swallow #藏婴吞没
CDLCOUNTERATTACK Counterattack #反击线
CDLDARKCLOUDCOVER Dark Cloud Cover #乌云压顶
CDLDOJI Doji #十字
CDLDOJISTAR Doji Star #十字星
CDLDRAGONFLYDOJI Dragonfly Doji #蜻蜓十字/T形十字
CDLENGULFING Engulfing Pattern #吞噬模式
CDLEVENINGDOJISTAR Evening Doji Star #十字暮星
CDLEVENINGSTAR Evening Star #暮星
CDLGAPSIDESIDEWHITE Up/Down-gap side-by-side white lines #向上/下跳空并列阳线
CDLGRAVESTONEDOJI Gravestone Doji #墓碑十字/倒T十字
CDLHAMMER Hammer #锤头
CDLHANGINGMAN Hanging Man #上吊线
CDLHARAMI Harami Pattern #母子线
CDLHARAMICROSS Harami Cross Pattern #十字孕线
CDLHIGHWAVE High-Wave Candle #风高浪大线
CDLHIKKAKE Hikkake Pattern #陷阱
CDLHIKKAKEMOD Modified Hikkake Pattern #修正陷阱
CDLHOMINGPIGEON Homing Pigeon #家鸽
CDLIDENTICAL3CROWS Identical Three Crows #三胞胎乌鸦
CDLINNECK In-Neck Pattern #颈内线
CDLINVERTEDHAMMER Inverted Hammer #倒锤头
CDLKICKING Kicking #反冲形态
CDLKICKINGBYLENGTH Kicking - bull/bear determined by the longer marubozu #较长缺影线反冲形态
CDLLADDERBOTTOM Ladder Bottom #梯底
CDLLONGLEGGEDDOJI Long Legged Doji #长脚十字
CDLLONGLINE Long Line Candle #长蜡烛
CDLMARUBOZU Marubozu #光头光脚/缺影线
CDLMATCHINGLOW Matching Low #相同低价
CDLMATHOLD Mat Hold #铺垫
CDLMORNINGDOJISTAR Morning Doji Star #十字晨星
CDLMORNINGSTAR Morning Star #晨星
CDLONNECK On-Neck Pattern #颈上线
CDLPIERCING Piercing Pattern #刺透形态
CDLRICKSHAWMAN Rickshaw Man #黄包车夫
CDLRISEFALL3METHODS Rising/Falling Three Methods #上升/下降三法
CDLSEPARATINGLINES Separating Lines #分离线
CDLSHOOTINGSTAR Shooting Star #射击之星
CDLSHORTLINE Short Line Candle #短蜡烛
CDLSPINNINGTOP Spinning Top #纺锤
CDLSTALLEDPATTERN Stalled Pattern #停顿形态
CDLSTICKSANDWICH Stick Sandwich #条形三明治
CDLTAKURI Takuri (Dragonfly Doji with very long lower shadow) #探水竿
CDLTASUKIGAP Tasuki Gap #跳空并列阴阳线
CDLTHRUSTING Thrusting Pattern #插入
CDLTRISTAR Tristar Pattern #三星
CDLUNIQUE3RIVER Unique 3 River #奇特三河床
CDLUPSIDEGAP2CROWS Upside Gap Two Crows #向上跳空的两只乌鸦
CDLXSIDEGAP3METHODS Upside/Downside Gap Three Methods #上升/下降跳空三法 |
1
2
3
4
5
6
7
8
9
|
BETA Beta
CORREL Pearson's Correlation Coefficient (r)
LINEARREG Linear Regression
LINEARREG_ANGLE Linear Regression Angle
LINEARREG_INTERCEPT Linear Regression Intercept
LINEARREG_SLOPE Linear Regression Slope
STDDEV Standard Deviation
TSF Time Series Forecast
VAR Variance |