View on GitHub

TA-Lib 中文文档

TA-Lib 中文文档:用于 TA-Lib 的 Python 封装(https://ta-lib.org/),每天定时更新。

下载 .zip 文件 下载 tar.gz 文件

关于

这是一个基于 Cython 而非 SWIG 的 TA-LIB Python 封装。摘自其官网:

TA-Lib 被交易软件开发者广泛使用,用于对金融市场数据进行技术分析。

  • 包含150多个指标,如 ADX、MACD、RSI、随机指标、布林带等。
  • 支持蜡烛图模式识别
  • 提供 C/C++、Java、Perl、Python 和 100% 托管 .NET 的开源 API

原始的 Python 绑定使用 SWIG,但其安装困难且效率不高。因此,本项目使用 Cython 和 Numpy 来高效而简洁地绑定到 TA-Lib —— 产生的结果比 SWIG 接口快 2-4 倍。

安装 TA-Lib阅读文档

示例

与 TA-Lib 类似,函数接口为公开的 TA-Lib 指标提供了一个轻量级封装。

每个函数返回一个输出数组,并对其参数具有默认值,除非指定为关键字参数。通常,这些函数会有一个初始的“回望”期(在生成输出之前所需的观察数),该值被设置为 NaN

以下所有示例都使用函数 API:

import numpy
import talib

close = numpy.random.random(100)

计算收盘价的简单移动平均:

output = talib.SMA(close)

使用三重指数移动平均计算布林带:

from talib import MA_Type

upper, middle, lower = talib.BBANDS(close, matype=MA_Type.T3)

计算收盘价的动量,时间周期为 5:

output = talib.MOM(close, timeperiod=5)

抽象 API 快速入门

如果您已经熟悉使用函数 API,那么使用抽象 API 也会感到很熟悉。每个函数接受相同的输入,作为 Numpy 数组的字典传递:

import numpy as np
# 注意:所有的 ndarray 必须长度相同!
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)
}

函数可以直接导入或通过名称实例化:

from talib import abstract
sma = abstract.SMA
sma = abstract.Function('sma')

从那之后,调用函数与函数 API 基本相同:

from talib.abstract import *
output = SMA(input_arrays, timeperiod=25) # 默认计算收盘价
output = SMA(input_arrays, timeperiod=25, price='open') # 计算开盘价
upper, middle, lower = BBANDS(input_arrays, 20, 2, 2)
slowk, slowd = STOCH(input_arrays, 5, 3, 0, 3, 0) # 默认使用 high, low, close
slowk, slowd = STOCH(input_arrays, 5, 3, 0, 3, 0, prices=['high', 'low', 'open'])

了解更多关于 TA-Lib 的高级用法 点击此处

支持的指标

我们可以列出 TA-Lib 支持的所有 TA 函数,可以是 list 或按组(例如 "Overlap Studies"、"Momentum Indicators" 等)排序的 dict

import talib

print talib.get_functions()
print talib.get_function_groups()

函数组

重叠研究

BBANDS               布林带
DEMA                 双重指数移动平均
EMA                  指数移动平均
HT_TRENDLINE         希尔伯特变换 - 即时趋势线
KAMA                 考夫曼自适应移动平均
MA                   移动平均
MAMA                 MESA 自适应移动平均
MAVP                 可变周期移动平均
MIDPOINT             周期内中点
MIDPRICE             周期内中位价格
SAR                  抛物线转向指标
SAREXT               抛物线转向指标扩展版
SMA                  简单移动平均
T3                   三重指数移动平均 (T3)
TEMA                 三重指数移动平均
TRIMA                三角移动平均
WMA                  加权移动平均

动量指标

ADX                  平均趋向指数
ADXR                 平均趋向指数评级
APO                  绝对价格震荡器
AROON                阿隆
AROONOSC             阿隆震荡器
BOP                  力度指标
CCI                  商品通道指数
CMO                  查德动量震荡器
DX                   方向性运动指数
MACD                 移动平均收敛/发散
MACDEXT              具有可控移动平均类型的 MACD
MACDFIX              固定移动平均收敛/发散 (12/26)
MFI                  资金流量指数
MINUS_DI             负方向指标
MINUS_DM             负方向变动
MOM                  动量
PLUS_DI              正方向指标
PLUS_DM              正方向变动
PPO                  百分比价格震荡器
ROC                  变化率:((价格/前一价格)-1)*100
ROCP                 变化率百分比:(价格-前一价格)/前一价格
ROCR                 变化率比率:(价格/前一价格)
ROCR100              变化率比率 100 比例:(价格/前一价格)*100
RSI                  相对强弱指数
STOCH                随机指标
STOCHF               快速随机指标
STOCHRSI             随机相对强弱指数
TRIX                 三重平滑 EMA 的 1 天变化率 (ROC)
ULTOSC               终极震荡器
WILLR                威廉指标 %R

成交量指标

AD                   嘉路兰 A/D 线
ADOSC                嘉路兰 A/D 震荡器
OBV                  平衡成交量

波动率指标

ATR                  平均真实波幅
NATR                 标准化平均真实波幅
TRANGE               真实波幅范围

价格转换

AVGPRICE             平均价格
MEDPRICE             中间价格
TYPPRICE             典型价格
WCLPRICE             加权收盘价

周期指标

HT_DCPERIOD          希尔伯特变换 - 主导周期期数
HT_DCPHASE           希尔伯特变换 - 主导周期相位
HT_PHASOR            希尔伯特变换 - 相量组件
HT_SINE              希尔伯特变换 - 正弦波
HT_TRENDMODE         希尔伯特变换 - 趋势与周期模式

形态识别

CDL2CROWS            两只乌鸦
CDL3BLACKCROWS       三只乌鸦
CDL3INSIDE           三内部上涨/下跌
CDL3LINESTRIKE       三线打击
CDL3OUTSIDE          三外部上涨/下跌
CDL3STARSINSOUTH     南方三星
CDL3WHITESOLDIERS    三白兵
CDLABANDONEDBABY     弃婴形态
CDLADVANCEBLOCK      前进受阻形态
CDLBELTHOLD          腰带形态
CDLBREAKAWAY         脱离形态
CDLCLOSINGMARUBOZU   收盘光头光脚
CDLCONCEALBABYSWALL  隐藏的吞没形态
CDLCOUNTERATTACK     反击形态
CDLDARKCLOUDCOVER    乌云盖顶
CDLDOJI              十字星
CDLDOJISTAR          十字星形态
CDLDRAGONFLYDOJI     蜻蜓十字星
CDLENGULFING         吞没形态
CDLEVENINGDOJISTAR   暮星十字星
CDLEVENINGSTAR       暮星
CDLGAPSIDESIDEWHITE  上/下跳空并列阳线
CDLGRAVESTONEDOJI    墓碑十字星
CDLHAMMER            锤头
CDLHANGINGMAN        上吊线
CDLHARAMI            孕线形态
CDLHARAMICROSS       十字孕线形态
CDLHIGHWAVE          高波烛形态
CDLHIKKAKE           反转型态
CDLHIKKAKEMOD        改进型反转型态
CDLHOMINGPIGEON      归巢鸽形态
CDLIDENTICAL3CROWS   相同三只乌鸦
CDLINNECK            颈内形态
CDLINVERTEDHAMMER    倒锤头
CDLKICKING           跳空并列阳线
CDLKICKINGBYLENGTH   根据较长光头光脚确定多空的跳空并列形态
CDLLADDERBOTTOM      梯底形态
CDLLONGLEGGEDDOJI    长腿十字星
CDLLONGLINE          长线烛形态
CDLMARUBOZU          光头光脚
CDLMATCHINGLOW       匹配低点形态
CDLMATHOLD           持有形态
CDLMORNINGDOJISTAR   晨星十字星
CDLMORNINGSTAR       晨星
CDLONNECK            颈上形态
CDLPIERCING          刺透形态
CDLRICKSHAWMAN       推车夫形态
CDLRISEFALL3METHODS  上升/下降三法
CDLSEPARATINGLINES   分离线形态
CDLSHOOTINGSTAR      射击之星
CDLSHORTLINE         短线烛形态
CDLSPINNINGTOP       纺锤形态
CDLSTALLEDPATTERN    停滞形态
CDLSTICKSANDWICH     棒形三明治
CDLTAKURI            探水形态(带有极长下影线的蜻蜓十字星)
CDLTASUKIGAP         跳空缺口
CDLTHRUSTING         插入形态
CDLTRISTAR           三星形态
CDLUNIQUE3RIVER      独特三河形态
CDLUPSIDEGAP2CROWS   向上跳空双乌鸦
CDLXSIDEGAP3METHODS  向上/向下跳空三法

统计函数

BETA                 贝塔系数
CORREL               皮尔逊相关系数 (r)
LINEARREG            线性回归
LINEARREG_ANGLE      线性回归角度
LINEARREG_INTERCEPT  线性回归截距
LINEARREG_SLOPE      线性回归斜率
STDDEV               标准差
TSF                  时间序列预测
VAR                  方差