0%

TA-Lib介绍及在backtrader框架中使用

一、TA-Lib介绍

  • TA-Lib – 交易软件开发广泛使用的技术分析lib,包括了200多个技术指标,如MACD, RSI等
  • ta-lib for python – python封装的ta-lib。python封装的ta-lib,使用Cython和Numpy高效实现,比使用SWIG接口的原始版本快2-4倍

二、安装

mac安装方法如下所示:

1
2
$ brew install ta-lib
$ pip install TA-Lib

如果没用brew安装ta-lib,会报如下错误

1
2
3
func.c:256:28: fatal error: ta-lib/ta_libc.h: No such file or directory
compilation terminated.
If you get build errors like this, it typically means that it can't find the underlying TA-Lib library and needs to be installed:

windows、linux参考:https://mrjbq7.github.io/ta-lib/install.html

进python使用import talib没有报错的话,表明安装成功。

三、常用指标使用

  1. SMA:简单移动平均线(Simple Moving Average)
    talib.SMA() 要求数据是numpy.ndarray格式
    talib.abstract.SMA() 要求数据是Numpy数组的字典格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np
import talib

close = np.random.random(100)
output = talib.SMA(close) # 默认是SMA30
output = talib.SMA(close, timeperiod=5) # SMA5

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.abstract import *
output = SMA(input_arrays, timeperiod=25) # 默认对close价格计算
output = SMA(input_arrays, timeperiod=25, price='open') # 对open价格计算
  1. EMA:指数移动平均线(Exponential Moving Average)

    1
    2
    talib.EMA(close)
    talib.abstract.EMA(inputs)
  2. MACD:平滑异同移动平均线(Moving Average Convergence / Divergence)
    通过三种数据的信号(均线的组合 )可以判断趋势的力量和方向并确定趋势的转折点

    1
    2
    talib.MACD(close)
    talib.abstract.MACD(inputs)
  3. 支持的指标列表

  • 均线指标,如EMA、SMA、WMA等
  • 动量指标,如MACD、MOM、RSI等
  • 成交量指标,如AD、OBV等
  • 易变指标,如ATR、NATR等
  • 价格变换,如AVGPRICE、MEDPRICE等
  • 循环指标,如HT_DCPERIOD、HT_SINE等
  • 模式识别,如CDL2CROWS、CDLHAMMER等
  • 统计函数,如VAR,STDDEV, LINEARREG等
  • 数学变换,如ACOS、ASIN、CEIL、COS、EXP、LN、SQRT等
  • 数学操作,如ADD、DIV、MAX、MULT、SUM等

支持的功能及函数列表如下:

1
2
3
4
5
import talib
talib.get_functions()
print(len(talib.get_functions()))
talib.get_function_groups()
print(len(talib.get_function_groups()))

四、在backtrader中调用TA-Lib库

为了满足大家的使用习惯,Backtrader也接入了 TA-Lib 技术指标库,具体信息可以查阅官方 document,文档中对各个函数的输入、输出,以及在 Backtrader 中特有的绘图参数、返回的 lines 属性等信息都做了介绍和说明。TA-Lib 指标函数的调用形式为 bt.talib.xxx,跟直接使用ta-lib区别不大 :

1
2
3
4
5
6
7
8
class TALibStrategy(bt.Strategy):
def __init__(self):
# 计算 5 日均线
bt.talib.SMA(self.data.close, timeperiod=5)
bt.indicators.SMA(self.data, period=5)
# 计算布林带
bt.talib.BBANDS(self.data, timeperiod=25)
bt.indicators.BollingerBands(self.data, period=25)

交流

欢迎关注微信公众号交流,最新的文章会优先发布在微信公众号上。

  • 微信公众号:诸葛说talk

参考

坚持原创分享,您的支持将鼓励我继续创作更多优质内容!
  • 本文作者: Richard Zhu | 微信公众号【诸葛说talk】
  • 本文链接: https://rchardzhu.github.io/2022/04/10/about-talib/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 并保留本声明。感谢您的阅读和支持!